diff --git a/shkd-cosmic-debug/src/main/java/shkd/fi/cas/report/data/CapitalDayDataListShkdPlugin.java b/shkd-cosmic-debug/src/main/java/shkd/fi/cas/report/data/CapitalDayDataListShkdPlugin.java new file mode 100644 index 0000000..27f2461 --- /dev/null +++ b/shkd-cosmic-debug/src/main/java/shkd/fi/cas/report/data/CapitalDayDataListShkdPlugin.java @@ -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 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 comIist = new ArrayList(); + List 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 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 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 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 cnyList = new ArrayList(); + Set currencySet = new HashSet(); + Iterator it = sourceDataSet.copy().iterator(); + + while(it.hasNext()) { + Row row = (Row)it.next(); + Long currencyid = row.getLong("currencyid"); + if (currencySet.add(currencyid)) { + Map 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 = 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 gruopFields, List 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 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 gruopFields, List 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 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 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 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 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 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 transQueryParam(ReportQueryParam param) { + Map 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; + } +}