From 2f41312927ef91a523e2ebd92892e782535b4983 Mon Sep 17 00:00:00 2001 From: chenshaoxin <1981897232@qq.com> Date: Thu, 17 Apr 2025 16:17:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=99=88?= =?UTF-8?q?=E7=BB=8D=E9=91=AB=20=E6=97=A5=E6=9C=9F=EF=BC=9A2025/4/17=2016?= =?UTF-8?q?=EF=BC=9A30=20=E5=86=85=E5=AE=B9:=E4=B8=8A=E5=88=92=E4=B8=8B?= =?UTF-8?q?=E6=8B=A8=EF=BC=88new=EF=BC=89=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/transbillreportnewFormPlugin.java | 312 ++++++++++++++++++ .../report/transbillreportnewPlugin.java | 192 +++++++++++ 2 files changed, 504 insertions(+) create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/transbillreportnewFormPlugin.java create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/transbillreportnewPlugin.java diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/transbillreportnewFormPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/transbillreportnewFormPlugin.java new file mode 100644 index 0000000..a332a51 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/transbillreportnewFormPlugin.java @@ -0,0 +1,312 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package shkd.sys.sys.plugin.report; + +import kd.bos.context.RequestContext; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.resource.ResManager; +import kd.bos.entity.EntityMetadataCache; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.entity.report.AbstractReportColumn; +import kd.bos.entity.report.IReportListModel; +import kd.bos.entity.report.ReportColumn; +import kd.bos.entity.report.ReportQueryParam; +import kd.bos.form.ShowType; +import kd.bos.form.events.HyperLinkClickEvent; +import kd.bos.form.events.HyperLinkClickListener; +import kd.bos.form.field.BasedataEdit; +import kd.bos.orm.query.QFilter; +import kd.bos.report.ReportList; +import kd.bos.report.ReportShowParameter; +import kd.bos.report.filter.ReportFilter; +import kd.bos.report.plugin.AbstractReportFormPlugin; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.tmc.fbp.common.helper.SnapDataHelper; +import kd.tmc.fbp.common.helper.TmcOrgDataHelper; +import kd.tmc.fbp.common.util.EmptyUtil; +import kd.tmc.fca.common.enums.StatisCycleEnum; + +import java.util.*; +import java.util.stream.Collectors; + +public class transbillreportnewFormPlugin extends AbstractReportFormPlugin implements HyperLinkClickListener { + private static final String SYSTEM_TYPE = "tmc-fca-report"; + private static final String[] BANK_DIMENSION = new String[]{"sumlevel", "parentorg", "parentorgid", "bank", "bankid", "statcurrency", "upamount", "downamount", "differenceamount"}; + private static final String[] SON_ORG_DIMENSION = new String[]{"sumlevel", "parentorg", "parentorgid", "sonorg", "sonorgid", "statcurrency", "upamount", "downamount", "differenceamount"}; + + public transbillreportnewFormPlugin() { + } + + public void registerListener(EventObject e) { + super.registerListener(e); + ReportList reportlist = (ReportList)this.getView().getControl("reportlistap"); + reportlist.addHyperClickListener(this); + BasedataEdit accountGroup = (BasedataEdit)this.getControl("filter_accountgroup"); + accountGroup.addBeforeF7SelectListener((evt) -> { + DynamicObjectCollection parentOrg = (DynamicObjectCollection)this.getModel().getValue("filter_org"); + if (parentOrg != null && !parentOrg.isEmpty()) { + List orgIdList = (List)parentOrg.stream().map((v) -> { + return v.getDynamicObject("fbasedataid").getPkValue(); + }).collect(Collectors.toList()); + evt.getCustomQFilters().add(new QFilter("company", "in", orgIdList)); + } + + }); + } + + public void initDefaultQueryParam(ReportQueryParam queryParam) { + List authOrgList = TmcOrgDataHelper.getAuthorizedBankOrgId(RequestContext.get().getCurrUserId(), this.getView().getFormShowParameter().getAppId(), this.getModel().getDataEntityType().getName(), "47150e89000000ac"); + BasedataEdit org = (BasedataEdit)this.getControl("filter_org"); + org.setQFilter(new QFilter("id", "in", this.getAuthParentOrgList(authOrgList))); + BasedataEdit sonOrg = (BasedataEdit)this.getControl("filter_sonorg"); + sonOrg.setQFilter(new QFilter("id", "in", this.getAuthSonOrgList(authOrgList))); + BasedataEdit currency = (BasedataEdit)this.getControl("filter_currency"); + currency.setQFilter(new QFilter("id", "in", this.getCurrencyIdList())); + BasedataEdit bank = (BasedataEdit)this.getControl("filter_bank"); + bank.setQFilter(new QFilter("id", "in", this.getBankIdList(authOrgList))); + BasedataEdit accountGroup = (BasedataEdit)this.getControl("filter_accountgroup"); + accountGroup.setQFilter(new QFilter("id", "in", this.getAccountGroupIdList(authOrgList))); + this.setDefaultOrg(); + } + + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + switch (e.getProperty().getName()) { + case "filter_dimension": + ReportFilter rptFilter = (ReportFilter)this.getControl("reportfilterap"); + rptFilter.search(); + default: + } + } + + public boolean verifyQuery(ReportQueryParam param) { + Map paramMap = SnapDataHelper.transQueryParam(param); + String filterPeriod = (String)paramMap.get("filter_period"); + if (EmptyUtil.isEmpty(filterPeriod)) { + this.getView().showTipNotification(ResManager.loadKDString("统计周期条件不能为空。", "TransBillReportFormListPlugin_0", "tmc-fca-report", new Object[0])); + return false; + } else if (!Objects.equals(StatisCycleEnum.CONSTOM.getCode(), filterPeriod) || paramMap.get("filter_startdate") != null && paramMap.get("filter_enddate") != null) { + if (EmptyUtil.isEmpty(this.getModel().getValue("filter_statcurrency"))) { + this.getView().showTipNotification(ResManager.loadKDString("统计币种不能为空。", "TransBillReportFormListPlugin_3", "tmc-fca-report", new Object[0])); + return false; + } else { + return true; + } + } else { + this.getView().showTipNotification(ResManager.loadKDString("起止日期条件不能为空。", "TransBillReportFormListPlugin_1", "tmc-fca-report", new Object[0])); + return false; + } + } + + public void beforeQuery(ReportQueryParam queryParam) { + super.beforeQuery(queryParam); + String dimension = (String)this.getModel().getValue("filter_dimension"); + queryParam.getFilter().addFilterItem("filter_dimension", dimension); + if ("bank".equals(dimension)) { + this.rebuildColumn(BANK_DIMENSION); + } else { + this.rebuildColumn(SON_ORG_DIMENSION); + } + + DynamicObjectCollection sonOrg = (DynamicObjectCollection)this.getModel().getValue("filter_sonorg"); + if (sonOrg != null && !sonOrg.isEmpty()) { + List orgIdList = (List)sonOrg.stream().map((v) -> { + return v.getDynamicObject("fbasedataid").getPkValue(); + }).collect(Collectors.toList()); + queryParam.getFilter().getFilterItem("filter_sonorg").setValue(orgIdList); + } + + DynamicObjectCollection accountGroup = (DynamicObjectCollection)this.getModel().getValue("filter_accountgroup"); + List authOrgList; + if (accountGroup != null && !accountGroup.isEmpty()) { + authOrgList = (List)accountGroup.stream().map((v) -> { + return v.getDynamicObject("fbasedataid").getPkValue(); + }).collect(Collectors.toList()); + queryParam.getFilter().getFilterItem("filter_accountgroup").setValue(authOrgList); + } + + authOrgList = TmcOrgDataHelper.getAuthorizedBankOrgId(RequestContext.get().getCurrUserId(), this.getView().getFormShowParameter().getAppId(), this.getModel().getDataEntityType().getName(), "47150e89000000ac"); + queryParam.getFilter().addFilterItem("orgIdList", this.getAuthParentOrgList(authOrgList)); + } + + public void hyperLinkClick(HyperLinkClickEvent evt) { + String field = evt.getFieldName(); + if ("upamount".equals(field) || "downamount".equals(field) || "differenceamount".equals(field)) { + int rowIndex = evt.getRowIndex(); + ReportList reportList = (ReportList)evt.getSource(); + IReportListModel reportModel = reportList.getReportModel(); + DynamicObject rowData = reportModel.getRowData(rowIndex); + ReportShowParameter param = new ReportShowParameter(); + DynamicObjectCollection currency; + Object[] currencyIds; + if (EmptyUtil.isNoEmpty(rowData.get("parentorgid"))) { + param.getCustomParams().put("filter_org", new Object[]{rowData.get("parentorgid")}); + } else { + currency = (DynamicObjectCollection)this.getModel().getValue("filter_org"); + if (currency != null && !currency.isEmpty()) { + currencyIds = currency.stream().map((v) -> { + return v.getDynamicObject("fbasedataid").getPkValue(); + }).toArray(); + param.getCustomParams().put("filter_org", currencyIds); + } + } + + if (EmptyUtil.isNoEmpty(rowData.get("bankid"))) { + param.getCustomParams().put("filter_bank", new Object[]{rowData.get("bankid")}); + } else { + currency = (DynamicObjectCollection)this.getModel().getValue("filter_bank"); + if (currency != null && !currency.isEmpty()) { + currencyIds = currency.stream().map((v) -> { + return v.getDynamicObject("fbasedataid").getPkValue(); + }).toArray(); + param.getCustomParams().put("filter_bank", currencyIds); + } + } + + if (EmptyUtil.isNoEmpty(rowData.get("sonorgid"))) { + param.getCustomParams().put("filter_sonorg", new Object[]{rowData.get("sonorgid")}); + } else { + currency = (DynamicObjectCollection)this.getModel().getValue("filter_sonorg"); + if (currency != null && !currency.isEmpty()) { + currencyIds = currency.stream().map((v) -> { + return v.getDynamicObject("fbasedataid").getPkValue(); + }).toArray(); + param.getCustomParams().put("filter_sonorg", currencyIds); + } + } + + currency = (DynamicObjectCollection)this.getModel().getValue("filter_currency"); + if (currency != null && !currency.isEmpty()) { + currencyIds = currency.stream().map((v) -> { + return v.getDynamicObject("fbasedataid").getPkValue(); + }).toArray(); + param.getCustomParams().put("filter_currency", currencyIds); + } + + DynamicObjectCollection accountGroup = (DynamicObjectCollection)this.getModel().getValue("filter_accountgroup"); + if (accountGroup != null && !accountGroup.isEmpty()) { + Object[] accountGroupIds = accountGroup.stream().map((v) -> { + return v.getDynamicObject("fbasedataid").getPkValue(); + }).toArray(); + param.getCustomParams().put("filter_accountgroup", accountGroupIds); + } + + if ("upamount".equals(field)) { + param.getCustomParams().put("filter_biztype", "fca_transupbill"); + } else if ("downamount".equals(field)) { + param.getCustomParams().put("filter_biztype", "fca_transdownbill"); + } + + param.getCustomParams().put("filter_period", this.getModel().getValue("filter_period")); + param.getCustomParams().put("filter_startdate", this.getModel().getValue("filter_startdate")); + param.getCustomParams().put("filter_enddate", this.getModel().getValue("filter_enddate")); + param.getCustomParams().put("filter_statcurrency", ((DynamicObject)rowData.get("statcurrency")).getPkValue()); + param.getCustomParams().put("filter_currencyunit", this.getModel().getValue("filter_currencyunit")); + param.setFormId("transbill_detail_report"); + param.getOpenStyle().setShowType(ShowType.MainNewTabPage); + this.getView().showForm(param); + } + + } + + private List getAuthParentOrgList(List authOrgList) { + QFilter companyIdFilter = new QFilter("company", "in", authOrgList); + DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "company", new QFilter[]{companyIdFilter}); + return (List)groupAccount.stream().map((g) -> { + return g.getLong("company"); + }).collect(Collectors.toList()); + } + + private List getAuthSonOrgList(List authOrgList) { + QFilter companyIdFilter = new QFilter("entrys.bankacct.company", "in", authOrgList); + DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "entrys.bankacct.company", new QFilter[]{companyIdFilter}); + return (List)groupAccount.stream().map((g) -> { + return g.getLong("entrys.bankacct.company"); + }).collect(Collectors.toList()); + } + + private List getCurrencyIdList() { + QFilter filter = new QFilter("1", "=", 1); + DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "currency", new QFilter[]{filter}); + return (List)groupAccount.stream().map((g) -> { + return g.getLong("currency"); + }).collect(Collectors.toList()); + } + + private List getBankIdList(List authOrgList) { + QFilter companyIdFilter = new QFilter("company", "in", authOrgList); + DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "accountbank.bank.id", new QFilter[]{companyIdFilter}); + return (List)groupAccount.stream().map((g) -> { + return g.getLong("accountbank.bank.id"); + }).collect(Collectors.toList()); + } + + private List getAccountGroupIdList(List authOrgList) { + QFilter companyIdFilter = new QFilter("company", "in", authOrgList); + DynamicObjectCollection groupAccount = QueryServiceHelper.query("fca_acctgroup", "id", new QFilter[]{companyIdFilter}); + return (List)groupAccount.stream().map((g) -> { + return g.getLong("id"); + }).collect(Collectors.toList()); + } + + private void rebuildColumn(String[] fields) { + ReportList listTable = (ReportList)this.getView().getControl("reportlistap"); + if (fields != null && fields.length >= 1) { + List columns = listTable.getColumns(); + List rebuildColumns = new ArrayList(fields.length); + String[] var5 = fields; + int var6 = fields.length; + + for(int var7 = 0; var7 < var6; ++var7) { + String s = var5[var7]; + String field = s.trim(); + Iterator var10 = columns.iterator(); + + while(var10.hasNext()) { + AbstractReportColumn absColumn = (AbstractReportColumn)var10.next(); + ReportColumn column = (ReportColumn)absColumn; + if (column.getFieldKey().equalsIgnoreCase(field)) { + rebuildColumns.add(column); + break; + } + } + } + + if (!rebuildColumns.isEmpty()) { + columns.clear(); + columns.addAll(rebuildColumns); + } + + } + } + + private void setDefaultOrg() { + Long org = RequestContext.get().getOrgId(); + String appId = this.getView().getFormShowParameter().getAppId(); + List authOrgIds = TmcOrgDataHelper.getAuthorizedBankOrgId(Long.valueOf(RequestContext.get().getUserId()), appId, this.getModel().getDataEntityType().getName(), "47150e89000000ac"); + this.getModel().setValue("filter_org", (Object)null); + if (authOrgIds != null && authOrgIds.size() > 0) { + DynamicObject bosOrg; + DynamicObjectCollection collection; + if (authOrgIds.contains(org)) { + bosOrg = BusinessDataServiceHelper.loadSingle(org, EntityMetadataCache.getDataEntityType("bos_org")); + collection = new DynamicObjectCollection(); + collection.add(bosOrg); + this.getModel().setValue("filter_org", collection); + } else { + bosOrg = BusinessDataServiceHelper.loadSingle(authOrgIds.get(0), EntityMetadataCache.getDataEntityType("bos_org")); + if (EmptyUtil.isNoEmpty(bosOrg)) { + collection = new DynamicObjectCollection(); + collection.add(bosOrg); + this.getModel().setValue("filter_org", collection); + } + } + } + + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/transbillreportnewPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/transbillreportnewPlugin.java new file mode 100644 index 0000000..0b66eab --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/transbillreportnewPlugin.java @@ -0,0 +1,192 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package shkd.sys.sys.plugin.report; + +import kd.bos.algo.DataSet; +import kd.bos.algo.GroupbyDataSet; +import kd.bos.dataentity.entity.DataEntityBase; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.utils.StringUtils; +import kd.bos.entity.report.ReportQueryParam; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.tmc.fbp.common.util.DateUtils; +import kd.tmc.fbp.report.data.AbstractTmcTreeReportDataPlugin; +import kd.tmc.fca.common.enums.FcaTransDetailStatusEnum; +import kd.tmc.fca.common.enums.FcaTransPayStatusEnum; +import kd.tmc.fca.common.enums.StatisCycleEnum; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class transbillreportnewPlugin extends AbstractTmcTreeReportDataPlugin { + private static final String UP_BANK_SELECT = "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid, currency, entrys.transamt as upamount, 0 as downamount"; + private static final String UP_SON_ORG_SELECT = "company.name as parentorg, company.id as parentorgid, entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid, currency, entrys.transamt as upamount, 0 as downamount"; + private static final String DOWN_BANK_SELECT = "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid, currency, 0 as upamount, entrys.transamt as downamount"; + private static final String DOWN_SON_ORG_SELECT = "company.name as parentorg, company.id as parentorgid, entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid, currency, 0 as upamount, entrys.transamt as downamount"; + private static final String BANK_SELECT = "parentorg, parentorgid, bank, bankid, upamount_report as upamount, downamount_report as downamount"; + private static final String SON_ORG_SELECT = "parentorg, parentorgid, sonorg, sonorgid, upamount_report as upamount, downamount_report as downamount"; + private static final String[] BANK_GROUP_SELECT = new String[]{"parentorg", "parentorgid", "bank", "bankid"}; + private static final String[] SON_ORG_GROUP_SELECT = new String[]{"parentorg", "parentorgid", "sonorg", "sonorgid"}; + private List sumAmountFieldList; + private String sumNameField; + private boolean isCompute = true; + + public transbillreportnewPlugin() { + } + + public DataSet queryDataSet(ReportQueryParam reportQueryParam) { + Map paramMap = this.transQueryParam(reportQueryParam); + QFilter filter = this.initFilter(paramMap); + String upSelect; + String downSelect; + String[] groupSelect; + String select; + if ("bank".equals(paramMap.get("filter_dimension"))) { + upSelect = "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid, currency, entrys.transamt as upamount, 0 as downamount"; + downSelect = "company.name as parentorg, company.id as parentorgid, bank.name as bank, bank.id as bankid, currency, 0 as upamount, entrys.transamt as downamount"; + select = "parentorg, parentorgid, bank, bankid, upamount_report as upamount, downamount_report as downamount"; + groupSelect = BANK_GROUP_SELECT; + this.setSumNameField("bank"); + } else { + upSelect = "company.name as parentorg, company.id as parentorgid, entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid, currency, entrys.transamt as upamount, 0 as downamount"; + downSelect = "company.name as parentorg, company.id as parentorgid, entrys.e_useorg.name as sonorg, entrys.e_useorg.id as sonorgid, currency, 0 as upamount, entrys.transamt as downamount"; + select = "parentorg, parentorgid, sonorg, sonorgid, upamount_report as upamount, downamount_report as downamount"; + groupSelect = SON_ORG_GROUP_SELECT; + this.setSumNameField("sonorg"); + } + + DataSet upDataSet = QueryServiceHelper.queryDataSet("fca_transupbill", "fca_transupbill", upSelect, filter.toArray(), "company"); + DataSet downDataSet = QueryServiceHelper.queryDataSet("fca_transdownbill", "fca_transdownbill", downSelect, filter.toArray(), "company"); + DataSet dataSet = upDataSet.union(downDataSet); + dataSet = this.addExchangeRateAndCurrencyUnit(dataSet, paramMap); + dataSet = dataSet.select(select); + this.isCompute = false; + GroupbyDataSet group = dataSet.groupBy(groupSelect); + dataSet = group.sum("upamount").sum("downamount").finish(); + List sumAmountFieldList = new ArrayList(2); + sumAmountFieldList.add("upamount"); + sumAmountFieldList.add("downamount"); + sumAmountFieldList.add("differenceamount"); + this.setSumAmountFieldList(sumAmountFieldList); + dataSet = dataSet.addField("upamount - downamount", "differenceamount"); + Object statCurrency = ((DynamicObject)paramMap.get("filter_statcurrency")).getPkValue(); + dataSet = dataSet.addField(String.valueOf(statCurrency), "currency"); + return dataSet; + } + + public List groupFields() { + List groupFieldList = new ArrayList(2); + groupFieldList.add("parentorg"); + groupFieldList.add("parentorgid"); + return groupFieldList; + } + + public List sumAmountFields() { + if (this.sumAmountFieldList == null) { + List sumAmountFieldList = new ArrayList(2); + sumAmountFieldList.add("upamount"); + sumAmountFieldList.add("downamount"); + this.sumAmountFieldList = sumAmountFieldList; + } + + return this.sumAmountFieldList; + } + + public void setSumAmountFieldList(List sumAmountFieldList) { + this.sumAmountFieldList = sumAmountFieldList; + } + + public String sumNameField() { + return this.sumNameField; + } + + public void setSumNameField(String sumNameField) { + this.sumNameField = sumNameField; + } + + public List orinalAmountField() { + return this.sumAmountFields(); + } + + private QFilter initFilter(Map paramMap) { + QFilter filter = new QFilter("entrys.state", "=", FcaTransDetailStatusEnum.NORMAL.getValue()); + filter.and(new QFilter("entrys.paystatus", "=", FcaTransPayStatusEnum.PAYSUCCESS.getValue())); + DynamicObjectCollection currencies; + List currencyIdList; + if (paramMap.get("filter_bank") != null) { + currencies = (DynamicObjectCollection)paramMap.get("filter_bank"); + currencyIdList = (List)currencies.stream().map(DataEntityBase::getPkValue).collect(Collectors.toList()); + filter.and("bank", "in", currencyIdList); + } + + if (paramMap.get("filter_org") != null) { + filter.and("company", "in", paramMap.get("filter_org")); + } + + if (paramMap.get("filter_sonorg") != null) { + filter.and("entrys.e_useorg", "in", paramMap.get("filter_sonorg")); + } + + if (paramMap.get("filter_accountgroup") != null) { + filter.and("acctgrpid", "in", paramMap.get("filter_accountgroup")); + } + + if (paramMap.get("filter_currency") != null) { + currencies = (DynamicObjectCollection)paramMap.get("filter_currency"); + currencyIdList = (List)currencies.stream().map(DataEntityBase::getPkValue).collect(Collectors.toList()); + filter.and("currency", "in", currencyIdList); + } + + String filterPeriod = (String)paramMap.get("filter_period"); + Date currDate = DateUtils.getCurrentDate(); + Date endDate; + Date startDate; + if (StringUtils.equals(StatisCycleEnum.THISMONTH.getCode(), filterPeriod)) { + startDate = DateUtils.getFirstDayOfCurMonth(); + endDate = DateUtils.getFirstDayOfMonth(DateUtils.getNextMonth(currDate, 1)); + } else if (StringUtils.equals(StatisCycleEnum.LASTYEAR.getCode(), filterPeriod)) { + startDate = DateUtils.getFirstYearDate(DateUtils.getLastYear(currDate, 1)); + endDate = DateUtils.getFirstDayOfCurYear(); + } else if (StringUtils.equals(StatisCycleEnum.THISYEAR.getCode(), filterPeriod)) { + startDate = DateUtils.getFirstDayOfCurYear(); + endDate = DateUtils.getFirstYearDate(DateUtils.getNextYear(currDate, 1)); + } else if (StringUtils.equals(StatisCycleEnum.LASTMONTH.getCode(), filterPeriod)) { + startDate = DateUtils.getFirstDayOfMonth(DateUtils.getLastMonth(currDate, 1)); + endDate = DateUtils.getFirstDayOfCurMonth(); + } else if (StringUtils.equals(StatisCycleEnum.TODAY.getCode(), filterPeriod)) { + startDate = currDate; + endDate = DateUtils.getNextDay(currDate, 1); + } else if (StringUtils.equals(StatisCycleEnum.CONSTOM.getCode(), filterPeriod)) { + startDate = (Date)paramMap.get("filter_startdate"); + endDate = (Date)paramMap.get("filter_enddate"); + endDate = DateUtils.getNextDay(endDate, 1); + } else { + startDate = DateUtils.getFirstDayOfCurMonth(); + endDate = DateUtils.getFirstDayOfMonth(DateUtils.getNextMonth(currDate, 1)); + } + + filter.and("entrys.paydate", ">=", startDate); + filter.and("entrys.paydate", "<", endDate); + if (paramMap.get("orgIdList") != null) { + filter.and("company", "in", paramMap.get("orgIdList")); + } + + return filter; + } + + protected boolean isNeedCurrencyUnit() { + return this.isCompute; + } + + protected boolean isNeedDimCurrency() { + return this.isCompute; + } +}