资金报表数据源初始提交

This commit is contained in:
“wyx12345678” 2024-07-04 17:11:22 +08:00
parent d2ca88bd8f
commit 0249b0c1cd
1 changed files with 702 additions and 0 deletions

View File

@ -0,0 +1,702 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package shkd.fi.cas.report.data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import kd.bos.algo.Algo;
import kd.bos.algo.DataSet;
import kd.bos.algo.DataType;
import kd.bos.algo.Field;
import kd.bos.algo.GroupbyDataSet;
import kd.bos.algo.JoinType;
import kd.bos.algo.Row;
import kd.bos.algo.RowMeta;
import kd.bos.dataentity.entity.DataEntityBase;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.resource.ResManager;
import kd.bos.entity.report.AbstractReportListDataPlugin;
import kd.bos.entity.report.FilterItemInfo;
import kd.bos.entity.report.ReportQueryParam;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.basedata.BaseDataServiceHelper;
import kd.fi.cas.business.facade.CasServiceFacadeFactory;
import kd.fi.cas.business.helper.VisibleVirtualAcctHelper;
import kd.fi.cas.enums.CategoryEnum;
import kd.fi.cas.helper.AccountBankHelper;
import kd.fi.cas.helper.OrgHelper;
import kd.fi.cas.report.helper.ReportFilterParamHelper;
import kd.fi.cas.util.EmptyUtil;
public class CapitalDayDataListShkdPlugin extends AbstractReportListDataPlugin {
private static final Log logger = LogFactory.getLog(CapitalDayDataListShkdPlugin.class);
public CapitalDayDataListShkdPlugin() {
}
public DataSet query(ReportQueryParam param, Object info) throws Throwable {
Map<String, Object> paramMap = this.transQueryParam(param);
Long repCurrency = (Long)paramMap.get("currency");
Date filterDate = (Date)paramMap.get("filter_date");
String currencyUnit = (String)paramMap.get("currencyunit");
String orgType = (String)paramMap.get("queryorgtype");
List<Long> comIist = new ArrayList();
List<Long> comListOpenOrg = new ArrayList();
DynamicObjectCollection companys = (DynamicObjectCollection)paramMap.get("filter_company");
DynamicObjectCollection openorgs = (DynamicObjectCollection)paramMap.get("openorg");
Iterator var12;
DynamicObject openorg;
if (companys != null) {
var12 = companys.iterator();
while(var12.hasNext()) {
openorg = (DynamicObject)var12.next();
comIist.add(openorg.getLong("id"));
}
}
if (openorgs != null) {
var12 = openorgs.iterator();
while(var12.hasNext()) {
openorg = (DynamicObject)var12.next();
comListOpenOrg.add(openorg.getLong("id"));
}
}
QFilter orgIdFilter = ReportFilterParamHelper.initOrgFilter(paramMap);
QFilter openOrgIdFilter = null;
if (!comListOpenOrg.isEmpty()) {
openOrgIdFilter = new QFilter("openorg.id", "in", comListOpenOrg);
}
DataSet bankJournalDayData = null;
List<QFilter> accountFilter = new ArrayList(10);
QFilter bankFilter;
if ("org".equals(orgType)) {
bankFilter = AccountBankHelper.getAccountBankFilterByOrg(OrgHelper.getIdList(companys));
accountFilter.add(bankFilter);
} else {
accountFilter.add(openOrgIdFilter);
}
bankFilter = null;
if (paramMap.get("filter_bankaccountnumber") != null) {
DynamicObjectCollection coll = (DynamicObjectCollection)paramMap.get("filter_bankaccountnumber");
if (EmptyUtil.isNoEmpty(coll)) {
bankFilter = new QFilter("id", "in", coll.stream().map(DataEntityBase::getPkValue).toArray());
}
}
accountFilter.add(bankFilter);
QFilter acctpropertyFilter = null;
if (paramMap.get("accountproperty") != null) {
DynamicObjectCollection coll = (DynamicObjectCollection)paramMap.get("accountproperty");
if (EmptyUtil.isNoEmpty(coll)) {
acctpropertyFilter = new QFilter("acctproperty", "in", coll.stream().map(DataEntityBase::getPkValue).toArray());
}
}
accountFilter.add(acctpropertyFilter);
QFilter bankidFilter = null;
if (paramMap.get("bank") != null) {
DynamicObjectCollection coll = (DynamicObjectCollection)paramMap.get("bank");
if (EmptyUtil.isNoEmpty(coll)) {
bankidFilter = new QFilter("bank", "in", coll.stream().map(DataEntityBase::getPkValue).toArray());
}
}
accountFilter.add(bankidFilter);
if (!Boolean.parseBoolean(String.valueOf(paramMap.get("isshowclose")))) {
accountFilter.add(new QFilter("acctstatus", "<>", "closed"));
}
accountFilter.add(VisibleVirtualAcctHelper.notVirtualAcctQf());
DataSet accountBankDataSet = this.queryBankDataByOrgIds((QFilter[])accountFilter.toArray(new QFilter[accountFilter.size()]));
HashSet useOrgIds;
ArrayList accountCashQFilterList;
if ("org".equals(orgType)) {
bankJournalDayData = CasServiceFacadeFactory.getBankService().getJournalBalance_ByDate(comIist, (Set)null, (Long)null, filterDate, false);
} else {
useOrgIds = new HashSet();
Iterator var21 = accountBankDataSet.copy().iterator();
while(var21.hasNext()) {
Row row = (Row)var21.next();
long acctId = row.getLong("id");
useOrgIds.addAll(AccountBankHelper.getUserAuthorityOrgs(acctId));
}
accountCashQFilterList = new ArrayList(useOrgIds);
if (useOrgIds.isEmpty()) {
RowMeta emptyRowMeta = new RowMeta(new String[]{"empty"}, new DataType[]{DataType.StringType});
return Algo.create("EmptyDataSet").createDataSetBuilder(emptyRowMeta).build();
}
bankJournalDayData = CasServiceFacadeFactory.getBankService().getJournalBalance_ByDate(accountCashQFilterList, (Set)null, (Long)null, filterDate, false);
}
useOrgIds = null;
DataSet bankJournalRes;
if ("org".equals(orgType)) {
bankJournalRes = bankJournalDayData.join(accountBankDataSet, JoinType.INNER).on("accountbank.id", "id").select(new String[]{"org.name company", "openorg.name openorgfield", "accountbank.id accountbankid", "'" + ResManager.loadKDString("银行存款", "CapitalDayDataListPlugin_6", "fi-cas-report", new Object[0]) + "'" + "capital_type", "case when bank.finorgtype.name=" + "'" + ResManager.loadKDString("银行", "CapitalDayDataListPlugin_8", "fi-cas-report", new Object[0]) + "'" + "then bank.bank_cate.name else bank.name end as finorginfo", "name account", "acctname", "org.id companyid", "acctproperty", "acctpurpose", "accountnumber", "currency.id currencyid", "monthbalance uyest_original", "debitamount uincome_original", "creditamount uexpend_original", "endBalance ubalan_original", "0 sumlevel", "'1' as order_str"}).finish();
} else {
bankJournalRes = bankJournalDayData.join(accountBankDataSet, JoinType.INNER).on("accountbank.id", "id").select(new String[]{"org.name company", "openorg.name openorgfield", "accountbank.id accountbankid", "'" + ResManager.loadKDString("银行存款", "CapitalDayDataListPlugin_6", "fi-cas-report", new Object[0]) + "'" + "capital_type", "case when bank.finorgtype.name=" + "'" + ResManager.loadKDString("银行", "CapitalDayDataListPlugin_8", "fi-cas-report", new Object[0]) + "'" + "then bank.bank_cate.name else bank.name end as finorginfo", "name account", "acctname", "openorg.id companyid", "acctproperty", "acctpurpose", "accountnumber", "currency.id currencyid", "monthbalance uyest_original", "debitamount uincome_original", "creditamount uexpend_original", "endBalance ubalan_original", "0 sumlevel", "'1' as order_str"}).finish();
}
accountCashQFilterList = new ArrayList(1);
accountCashQFilterList.add(orgIdFilter);
if (paramMap.get("filter_accountcash") != null) {
DynamicObjectCollection coll = (DynamicObjectCollection)paramMap.get("filter_accountcash");
if (!coll.isEmpty()) {
accountCashQFilterList.add(new QFilter("id", "in", coll.stream().map(DataEntityBase::getPkValue).toArray()));
}
}
if (!Boolean.parseBoolean(String.valueOf(paramMap.get("isshowclose")))) {
accountCashQFilterList.add(new QFilter("closestatus", "<>", "1"));
}
DataSet accountCashDataSet = this.queryCashDataByOrgIds((QFilter[])accountCashQFilterList.toArray(new QFilter[0]));
DataSet cashJournalRes = null;
if ("org".equals(orgType)) {
DataSet cashJournalDayData = CasServiceFacadeFactory.getBankService().getJournalBalance_ByDate(comIist, (Set)null, (Long)null, filterDate, true);
cashJournalRes = cashJournalDayData.join(accountCashDataSet, JoinType.INNER).on("accountcash.id", "id").select(new String[]{"org.name company", "'' openorgfield", "accountcash.id accountbankid", "'" + ResManager.loadKDString("现金", "CapitalDayDataListPlugin_7", "fi-cas-report", new Object[0]) + "'" + "capital_type", "'' finorginfo", "name account", "name acctname", "org.id companyid", "0 acctproperty", "'' acctpurpose", "number accountnumber", "currency.id currencyid", "monthbalance uyest_original", "debitamount uincome_original", "creditamount uexpend_original", "endBalance ubalan_original", "0 sumlevel", "'2' as order_str"}).finish();
}
List<String> sumFields = new ArrayList();
sumFields.add("yest_report");
sumFields.add("income_report");
sumFields.add("expend_report");
sumFields.add("balan_report");
Integer category = Integer.valueOf((String)paramMap.get("category"));
Algo bizDataSet;
if (CategoryEnum.CASH.getValue().compareTo(category) == 0) {
if (EmptyUtil.isNoEmpty(bankJournalRes)) {
bizDataSet = Algo.create(this.getClass().getName());
bankJournalRes = bizDataSet.createDataSetBuilder(bankJournalRes.getRowMeta()).build();
}
} else if (CategoryEnum.BANK.getValue().compareTo(category) == 0 && EmptyUtil.isNoEmpty(cashJournalRes)) {
bizDataSet = Algo.create(this.getClass().getName());
cashJournalRes = bizDataSet.createDataSetBuilder(cashJournalRes.getRowMeta()).build();
}
if (paramMap.get("orgcurrency") != null) {
DynamicObjectCollection coll = (DynamicObjectCollection)paramMap.get("orgcurrency");
if (EmptyUtil.isNoEmpty(coll)) {
StringBuilder expr = new StringBuilder();
expr.append(" currencyid in (");
for(int i = 0; i < coll.size(); ++i) {
if (i == coll.size() - 1) {
expr = expr.append(((DynamicObject)coll.get(i)).getString("id"));
} else {
expr = expr.append(((DynamicObject)coll.get(i)).getString("id")).append(',');
}
}
expr.append(") ");
if (EmptyUtil.isNoEmpty(bankJournalRes)) {
bankJournalRes = bankJournalRes.where(expr.toString());
}
if (EmptyUtil.isNoEmpty(cashJournalRes)) {
cashJournalRes = cashJournalRes.where(expr.toString());
}
}
}
bizDataSet = null;
Long exchangeRateTableId = ((DynamicObject)paramMap.get("exratetable")).getLong("id");
DataSet bizDataSet = this.queryResultDataSet(bankJournalRes, cashJournalRes, repCurrency, currencyUnit, exchangeRateTableId);
List<String> gruopFieldss = new ArrayList(10);
if ("org".equals(orgType)) {
gruopFieldss = Arrays.asList("capital_type", "companyid", "company", "currencyfield", "order_str", "acctproperty", "acctpurpose");
} else if ("openorg".equals(orgType)) {
gruopFieldss = Arrays.asList("capital_type", "companyid", "openorgfield", "currencyfield", "order_str", "acctproperty", "acctpurpose");
}
bizDataSet = bizDataSet.addField("10", "acc_order");
ArrayList subTotalDas;
if ("openorg".equals(orgType)) {
GroupbyDataSet groupBySum = bizDataSet.copy().groupBy(new String[]{"capital_type", "companyid", "openorgfield", "currencyfield", "currencyfield1", "order_str", "acctproperty", "acctpurpose", "accountnumber", "accountbankid"});
GroupbyDataSet groupByJoinField = bizDataSet.copy().groupBy(new String[]{"openorgfield", "capital_type", "finorginfo", "account", "sumlevel", "companyid", "acctproperty", "acctpurpose", "accountnumber", "accountbankid", "currencyfield1", "acc_order", "order_str", "currencyfield"});
subTotalDas = new ArrayList();
subTotalDas.add("yest_original");
subTotalDas.add("yest_report");
subTotalDas.add("income_original");
subTotalDas.add("income_report");
subTotalDas.add("expend_original");
subTotalDas.add("expend_report");
subTotalDas.add("balan_original");
subTotalDas.add("balan_report");
Iterator var32 = subTotalDas.iterator();
while(var32.hasNext()) {
String sumField = (String)var32.next();
groupBySum.sum(sumField);
}
bizDataSet = groupBySum.finish().join(groupByJoinField.finish(), JoinType.LEFT).on("companyid", "companyid").on("accountbankid", "accountbankid").on("currencyfield1", "currencyfield1").select(new String[]{"openorgfield", "capital_type", "finorginfo", "account", "yest_original", "yest_report", "income_original", "income_report", "expend_original", "expend_report", "balan_original", "balan_report", "sumlevel", "companyid", "acctproperty", "acctpurpose", "accountnumber", "currencyfield1", "acc_order", "currencyfield", "order_str"}).finish();
}
DataSet accsubTotalDas = this.addAccSubTotalDataSet(bizDataSet, (List)gruopFieldss, sumFields, orgType);
DataSet accTotalAfter = bizDataSet.union(accsubTotalDas).orderBy(new String[]{"companyid", "order_str", "acctproperty", "acc_order"});
if ("org".equals(orgType)) {
gruopFieldss = Arrays.asList("capital_type", "companyid", "company", "currencyfield", "order_str");
} else if ("openorg".equals(orgType)) {
gruopFieldss = Arrays.asList("capital_type", "companyid", "openorgfield", "currencyfield", "order_str");
}
subTotalDas = null;
DataSet subTotalDas = this.addSubTotalDataSet(accTotalAfter, (List)gruopFieldss, sumFields, orgType);
DataSet subTotalAfter = accTotalAfter.union(subTotalDas).orderBy(new String[]{"companyid", "order_str", "acctproperty", "acc_order"});
DataSet addTotalDas = this.addTotalDataSet(subTotalAfter, sumFields, orgType);
DataSet addTotalAfter = subTotalAfter.union(addTotalDas).orderBy(new String[]{"companyid", "order_str", "acctproperty", "acc_order"});
DataSet allTotalDas = this.addAllTotalDataSet(addTotalAfter, sumFields, orgType);
DataSet finallyDataSet = addTotalAfter.union(allTotalDas);
if (bankJournalDayData != null) {
bankJournalDayData.close();
}
if (accountBankDataSet != null) {
accountBankDataSet.close();
}
if (bankJournalRes != null) {
bankJournalRes.close();
}
if (accountCashDataSet != null) {
accountCashDataSet.close();
}
if (cashJournalRes != null) {
cashJournalRes.close();
}
if (bizDataSet != null) {
bizDataSet.close();
}
if (accsubTotalDas != null) {
accsubTotalDas.close();
}
if (accTotalAfter != null) {
accTotalAfter.close();
}
if (subTotalDas != null) {
subTotalDas.close();
}
if (subTotalAfter != null) {
subTotalAfter.close();
}
if (addTotalDas != null) {
addTotalDas.close();
}
if (addTotalAfter != null) {
addTotalAfter.close();
}
if (allTotalDas != null) {
allTotalDas.close();
}
return finallyDataSet;
}
private DataSet queryBankDataByOrgIds(QFilter[] filter) {
String accountSic = "org.name,id,name,acctname,org.id,openorg,openorg.id,openorg.name,bank.finorgtype.name,bank.bank_cate.name,bank.name,acctproperty,bankaccountnumber accountnumber";
DataSet accountDataSet = QueryServiceHelper.queryDataSet("AccountBank", "bd_accountbanks", accountSic, filter, (String)null);
DataSet acctpurposeSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "bd_acctpurpose", "id,name as acctpurpose", (QFilter[])null, "");
return accountDataSet.join(acctpurposeSet, JoinType.LEFT).on("acctproperty", "id").select(accountDataSet.getRowMeta().getFieldNames(), new String[]{"acctpurpose"}).finish();
}
private DataSet queryCashDataByOrgIds(QFilter[] filter) {
String accountSic = "org.name,id,name,org.id,number";
return QueryServiceHelper.queryDataSet("AccountCash", "cas_accountcash", accountSic, filter, (String)null);
}
private DataSet queryResultDataSet(DataSet bankDataSet, DataSet cashDataSet, Long currencyID, String currencyUnit, Long exchangeRateTableId) {
String sb = "";
switch (currencyUnit) {
case "Billion":
sb = "/100000000";
break;
case "Million":
sb = "/1000000";
break;
case "TenThousand":
sb = "/10000";
break;
case "Thousand":
sb = "/1000";
break;
case "Original":
sb = "/1";
}
DynamicObject cnyDynamicObj = QueryServiceHelper.queryOne("bd_currency", "amtprecision", new QFilter[]{new QFilter("id", "=", currencyID)});
round = cnyDynamicObj.getInt("amtprecision");
DataSet bankAndCash = null;
if (cashDataSet == null) {
bankAndCash = bankDataSet;
} else {
bankAndCash = bankDataSet.union(cashDataSet).orderBy(new String[]{"companyid"});
}
StringBuilder stringBuilder = new StringBuilder();
StringBuilder stringBuilder1 = new StringBuilder();
StringBuilder stringBuilder2 = new StringBuilder();
StringBuilder stringBuilder3 = new StringBuilder();
StringBuilder stringBuilder4 = new StringBuilder();
StringBuilder stringBuilder5 = new StringBuilder();
StringBuilder stringBuilder6 = new StringBuilder();
StringBuilder stringBuilder7 = new StringBuilder();
bankAndCash = bankAndCash.select(stringBuilder.append("company,accountbankid,openorgfield,capital_type,finorginfo,account,acctname,currencyid,companyid,acctproperty,acctpurpose,accountnumber,uyest_original,uincome_original,uexpend_original,").append("ubalan_original,sumlevel,order_str").toString()).addField(stringBuilder1.append("uyest_original").append(sb).toString(), "yest_original");
DataSet rateDs = this.getExchgRateByTableDataSet(bankAndCash, currencyID, exchangeRateTableId);
Iterator var19 = rateDs.copy().iterator();
while(var19.hasNext()) {
Row r = (Row)var19.next();
logger.info(r.getLong("currencyid") + "");
logger.info(r.getBigDecimal("exchgRate").toString());
}
DataSet resDataSet = bankAndCash.copy().join(rateDs, JoinType.LEFT).on("currencyid", "currencyid").select(new String[]{"company", "accountbankid", "openorgfield", "capital_type", "finorginfo", "account", "acctname", "companyid", "acctproperty", "acctpurpose", "accountnumber", "yest_original", "uincome_original", "uexpend_original", "ubalan_original", "sumlevel", "currencyid", "exchgRate", "order_str"}).finish();
resDataSet = resDataSet.addField("round(yest_original * exchgRate," + round + ")", "yest_report").addField(stringBuilder2.append("uincome_original").append(sb).toString(), "income_original").addField(stringBuilder3.append("round((uincome_original * exchgRate),").append(round).append(")").append(sb).toString(), "income_report").addField(stringBuilder4.append("uexpend_original").append(sb).toString(), "expend_original").addField(stringBuilder5.append("round((uexpend_original * exchgRate),").append(round).append(")").append(sb).toString(), "expend_report").addField(stringBuilder6.append("ubalan_original").append(sb).toString(), "balan_original").addField(stringBuilder7.append("round((ubalan_original * exchgRate),").append(round).append(")").append(sb).toString(), "balan_report");
return resDataSet.select("accountbankid,company,openorgfield,capital_type,finorginfo,account,acctname,yest_original,yest_report,income_original,income_report,expend_original,expend_report,balan_original,balan_report,sumlevel,companyid,acctproperty,acctpurpose,accountnumber,currencyid currencyfield1," + currencyID + " currencyfield,order_str");
}
protected DataSet getExchgRateByTableDataSet(DataSet sourceDataSet, Long currencyID, Long exchangeRateTableId) {
List<Object[]> cnyList = new ArrayList();
Set<Long> currencySet = new HashSet();
Iterator<Row> it = sourceDataSet.copy().iterator();
while(it.hasNext()) {
Row row = (Row)it.next();
Long currencyid = row.getLong("currencyid");
if (currencySet.add(currencyid)) {
Map<String, Object> exchangeRateByRules = BaseDataServiceHelper.getExchangeRateMap(currencyid, currencyID, exchangeRateTableId, Calendar.getInstance().getTime());
BigDecimal exchangeRate = BigDecimal.ONE.setScale(10);
boolean quoteType = false;
if (exchangeRateByRules.get("exchangeRate") != null) {
exchangeRate = (BigDecimal)exchangeRateByRules.get("exchangeRate");
}
if (exchangeRateByRules.get("quoteType") != null) {
quoteType = (Boolean)exchangeRateByRules.get("quoteType");
}
BigDecimal rate = null;
if (quoteType) {
rate = BigDecimal.ONE.divide(exchangeRate, 10, 0);
} else {
rate = exchangeRate.setScale(10);
}
Object[] obj = null;
if (rate == null) {
obj = new Object[]{currencyid, 1};
} else {
obj = new Object[]{currencyid, rate.setScale(10, 0)};
}
cnyList.add(obj);
}
}
List<Field> field = new ArrayList();
field.add(new Field("currencyid", DataType.LongType));
field.add(new Field("exchgRate", DataType.BigDecimalType));
RowMeta rowMeta = new RowMeta((Field[])field.toArray(new Field[0]));
Algo algo = Algo.create("");
return algo.createDataSet(cnyList, rowMeta);
}
protected DataSet addAccSubTotalDataSet(DataSet rowSet, List<String> gruopFields, List<String> sumFields, String orgType) {
DataSet dsTemp = rowSet.copy();
GroupbyDataSet gdsTemp = dsTemp.filter(" order_str = '1' ").groupBy((String[])gruopFields.toArray(new String[gruopFields.size()]));
Iterator var7 = sumFields.iterator();
while(var7.hasNext()) {
String sumField = (String)var7.next();
gdsTemp.sum(sumField);
}
DataSet ds = gdsTemp.finish();
List<String> selectField = new LinkedList();
Field[] fields = rowSet.getRowMeta().getFields();
Field[] var10;
int var11;
int var12;
Field field;
if ("org".equals(orgType)) {
var10 = fields;
var11 = fields.length;
for(var12 = 0; var12 < var11; ++var12) {
field = var10[var12];
if (field.getName().equals("acctpurpose")) {
selectField.add("CONCAT(" + field.getName() + ",'" + ResManager.loadKDString("小计", "CapitalDayDataListPlugin_9", "fi-cas-report", new Object[0]) + "'" + ") as " + field.getName());
} else if (!gruopFields.contains(field.getName()) && !sumFields.contains(field.getName()) && !field.getName().equals("company") && !field.getName().equals("order_str")) {
if (field.getName().equals("sumlevel")) {
selectField.add("1 as sumlevel");
} else if (field.getName().equals("acc_order")) {
selectField.add("20 as " + field.getName());
} else {
selectField.add("NULL as " + field.getName());
}
} else {
selectField.add(field.getName());
}
}
} else if ("openorg".equals(orgType)) {
var10 = fields;
var11 = fields.length;
for(var12 = 0; var12 < var11; ++var12) {
field = var10[var12];
if (field.getName().equals("acctpurpose")) {
selectField.add("CONCAT(" + field.getName() + ",'" + ResManager.loadKDString("小计", "CapitalDayDataListPlugin_9", "fi-cas-report", new Object[0]) + "'" + ") as " + field.getName());
} else if (!gruopFields.contains(field.getName()) && !sumFields.contains(field.getName()) && !field.getName().equals("openorgfield") && !field.getName().equals("order_str")) {
if (field.getName().equals("sumlevel")) {
selectField.add("1 as sumlevel");
} else if (field.getName().equals("acc_order")) {
selectField.add("20 as " + field.getName());
} else {
selectField.add("NULL as " + field.getName());
}
} else {
selectField.add(field.getName());
}
}
}
return ds.select(String.join(",", selectField));
}
protected DataSet addSubTotalDataSet(DataSet rowSet, List<String> gruopFields, List<String> sumFields, String orgType) {
DataSet dsTemp = rowSet.copy();
GroupbyDataSet gdsTemp = dsTemp.filter("acc_order = 10").groupBy((String[])gruopFields.toArray(new String[gruopFields.size()]));
Iterator var7 = sumFields.iterator();
while(var7.hasNext()) {
String sumField = (String)var7.next();
gdsTemp.sum(sumField);
}
DataSet ds = gdsTemp.finish();
List<String> selectField = new LinkedList();
Field[] fields = rowSet.getRowMeta().getFields();
Field[] var10;
int var11;
int var12;
Field field;
if ("org".equals(orgType)) {
var10 = fields;
var11 = fields.length;
for(var12 = 0; var12 < var11; ++var12) {
field = var10[var12];
if (field.getName().equals("capital_type")) {
selectField.add("CONCAT(" + field.getName() + ",'" + ResManager.loadKDString("小计", "CapitalDayDataListPlugin_9", "fi-cas-report", new Object[0]) + "'" + ") as " + field.getName());
} else if ((gruopFields.contains(field.getName()) || sumFields.contains(field.getName()) || field.getName().equals("company")) && !field.getName().equals("order_str")) {
selectField.add(field.getName());
} else if (field.getName().equals("sumlevel")) {
selectField.add("1 as sumlevel");
} else if (field.getName().equals("acc_order")) {
selectField.add("20 as acc_order");
} else if (field.getName().equals("order_str")) {
selectField.add("CONCAT(" + field.getName() + ",'2') as " + field.getName());
} else {
selectField.add("NULL as " + field.getName());
}
}
} else if ("openorg".equals(orgType)) {
var10 = fields;
var11 = fields.length;
for(var12 = 0; var12 < var11; ++var12) {
field = var10[var12];
if (field.getName().equals("capital_type")) {
selectField.add("CONCAT(" + field.getName() + ",'" + ResManager.loadKDString("小计", "CapitalDayDataListPlugin_9", "fi-cas-report", new Object[0]) + "'" + ") as " + field.getName());
} else if ((gruopFields.contains(field.getName()) || sumFields.contains(field.getName()) || field.getName().equals("openorgfield")) && !field.getName().equals("order_str")) {
selectField.add(field.getName());
} else if (field.getName().equals("sumlevel")) {
selectField.add("1 as sumlevel");
} else if (field.getName().equals("acc_order")) {
selectField.add("20 as acc_order");
} else if (field.getName().equals("order_str")) {
selectField.add("CONCAT(" + field.getName() + ",'2') as " + field.getName());
} else {
selectField.add("NULL as " + field.getName());
}
}
}
return ds.select(String.join(",", selectField));
}
protected DataSet addTotalDataSet(DataSet rowSet, List<String> sumFields, String orgType) {
DataSet dsTemp = rowSet.copy();
GroupbyDataSet gdsTemp = dsTemp.filter("sumlevel = 0").groupBy(new String[]{"companyid", "company", "currencyfield"});
if ("openorg".equals(orgType)) {
gdsTemp = dsTemp.filter("sumlevel = 0").groupBy(new String[]{"companyid", "openorgfield", "currencyfield"});
}
Iterator var6 = sumFields.iterator();
while(var6.hasNext()) {
String sumField = (String)var6.next();
gdsTemp.sum(sumField);
}
DataSet ds = gdsTemp.finish();
List<String> selectField = new LinkedList();
Field[] fields = rowSet.getRowMeta().getFields();
Field[] var9;
int var10;
int var11;
Field field;
if ("org".equals(orgType)) {
var9 = fields;
var10 = fields.length;
for(var11 = 0; var11 < var10; ++var11) {
field = var9[var11];
if (field.getName().equals("company")) {
selectField.add("CONCAT(" + field.getName() + ",'" + ResManager.loadKDString("合计", "CapitalDayDataListPlugin_10", "fi-cas-report", new Object[0]) + "'" + ") as " + field.getName());
} else if (!sumFields.contains(field.getName()) && !field.getName().equals("companyid") && !field.getName().equals("currencyfield")) {
if (field.getName().equals("acc_order")) {
selectField.add("20 as acc_order");
} else if (field.getName().equals("sumlevel")) {
selectField.add("2 as sumlevel");
} else if (field.getName().equals("order_str")) {
selectField.add("'33' as order_str");
} else {
selectField.add("NULL as " + field.getName());
}
} else {
selectField.add(field.getName());
}
}
} else if ("openorg".equals(orgType)) {
var9 = fields;
var10 = fields.length;
for(var11 = 0; var11 < var10; ++var11) {
field = var9[var11];
if (field.getName().equals("openorgfield")) {
selectField.add("CONCAT(" + field.getName() + ",'" + ResManager.loadKDString("合计", "CapitalDayDataListPlugin_10", "fi-cas-report", new Object[0]) + "'" + ") as " + field.getName());
} else if (!sumFields.contains(field.getName()) && !field.getName().equals("companyid") && !field.getName().equals("currencyfield")) {
if (field.getName().equals("acc_order")) {
selectField.add("20 as acc_order");
} else if (field.getName().equals("sumlevel")) {
selectField.add("2 as sumlevel");
} else if (field.getName().equals("order_str")) {
selectField.add("'33' as order_str");
} else {
selectField.add("NULL as " + field.getName());
}
} else {
selectField.add(field.getName());
}
}
}
return ds.select(String.join(",", selectField));
}
protected DataSet addAllTotalDataSet(DataSet rowSet, List<String> sumFields, String orgType) {
DataSet dsTemp = rowSet.copy();
GroupbyDataSet gdsTemp = dsTemp.filter("sumlevel = 2").groupBy(new String[]{"currencyfield"});
Iterator var6 = sumFields.iterator();
while(var6.hasNext()) {
String sumField = (String)var6.next();
gdsTemp.sum(sumField);
}
DataSet ds = gdsTemp.finish();
List<String> selectField = new LinkedList();
Field[] fields = rowSet.getRowMeta().getFields();
Field[] var9;
int var10;
int var11;
Field field;
if ("org".equals(orgType)) {
var9 = fields;
var10 = fields.length;
for(var11 = 0; var11 < var10; ++var11) {
field = var9[var11];
if (field.getName().equals("company")) {
selectField.add("'" + ResManager.loadKDString("总计", "CapitalDayDataListPlugin_11", "fi-cas-report", new Object[0]) + "'" + " as " + field.getName());
} else if (!sumFields.contains(field.getName()) && !field.getName().equals("currencyfield")) {
if (field.getName().equals("sumlevel")) {
selectField.add("3 as sumlevel");
} else {
selectField.add("NULL as " + field.getName());
}
} else {
selectField.add(field.getName());
}
}
} else if ("openorg".equals(orgType)) {
var9 = fields;
var10 = fields.length;
for(var11 = 0; var11 < var10; ++var11) {
field = var9[var11];
if (field.getName().equals("openorgfield")) {
selectField.add("'" + ResManager.loadKDString("总计", "CapitalDayDataListPlugin_11", "fi-cas-report", new Object[0]) + "'" + " as " + field.getName());
} else if (!sumFields.contains(field.getName()) && !field.getName().equals("currencyfield")) {
if (field.getName().equals("sumlevel")) {
selectField.add("3 as sumlevel");
} else {
selectField.add("NULL as " + field.getName());
}
} else {
selectField.add(field.getName());
}
}
}
return ds.select(String.join(",", selectField));
}
protected Map<String, Object> transQueryParam(ReportQueryParam param) {
Map<String, Object> paramMap = new HashMap(param.getFilter().getFilterItems().size());
Iterator var3 = param.getFilter().getFilterItems().iterator();
while(var3.hasNext()) {
FilterItemInfo filterItem = (FilterItemInfo)var3.next();
paramMap.put(filterItem.getPropName(), filterItem.getValue());
}
return paramMap;
}
}