diff --git a/main/java/shkd/repc/recon/report/data/RePayStdBookRptListNewPlugin.java b/main/java/shkd/repc/recon/report/data/RePayStdBookRptListNewPlugin.java new file mode 100644 index 0000000..69296e2 --- /dev/null +++ b/main/java/shkd/repc/recon/report/data/RePayStdBookRptListNewPlugin.java @@ -0,0 +1,64 @@ +package shkd.repc.recon.report.data; + +import kd.bos.algo.DataSet; +import kd.bos.dataentity.entity.DataEntityBase; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.report.AbstractReportListDataPlugin; +import kd.bos.entity.report.FilterInfo; +import kd.bos.entity.report.FilterItemInfo; +import kd.bos.entity.report.ReportQueryParam; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.repc.recon.report.helper.ReconRptListPluginHelper; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Set; +import java.util.stream.Collectors; + +public class RePayStdBookRptListNewPlugin extends AbstractReportListDataPlugin { + public RePayStdBookRptListNewPlugin() { + } + + public DataSet query(ReportQueryParam reportQueryParam, Object o) { + FilterInfo filterInfo = reportQueryParam.getFilter(); + ArrayList qFilters = new ArrayList(); + ReconRptListPluginHelper.setF7QFilter(filterInfo, qFilters, "orgf7", "org", true); + ReconRptListPluginHelper.setAllProjectQFilter(filterInfo, qFilters, "recon_paystdbook_rpt", "projectf7", "orgf7", "mainprojectid", "project"); + ReconRptListPluginHelper.setF7QFilter(filterInfo, qFilters, "contracttypef7", "contractbill.contracttype", false); + ReconRptListPluginHelper.setF7QFilter(filterInfo, qFilters, "contractf7", "contractbill", true); + ReconRptListPluginHelper.setEnumQFilter(filterInfo, qFilters, "billstatusenum", "payreqbill.billstatus", true); + ReconRptListPluginHelper.setBillSourceEnumQFilter(filterInfo, qFilters, "billsourceenum", (String)null, true); + setDataFilter(filterInfo, qFilters); + DataSet dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "recon_paystdbook", String.join(",", "org", "project", "contractbill", "contractbill".concat(".").concat("hassettled"), "contractbill".concat(".").concat("latestoriprice"), "connotextbill", "connotextbill".concat(".").concat("name"), "connotextbill".concat(".").concat("number"), "connotextbill".concat(".").concat("oriamt"), "payreqbill", "payreqbill".concat(".").concat("oricurrency"), "payreqbill".concat(".").concat("totalworkloadoriamt"), "payreqbill".concat(".").concat("totalinvoiceamt"), "payreqbill".concat(".").concat("preunpayoriamt"), "payreqbill".concat(".").concat("invoiceamt"), "payreqbill".concat(".").concat("oriamt"), "payreqbill".concat(".").concat("prepayoriamt"), "payreqbill".concat(".").concat("rewarddeductoriamt"), "payreqbill".concat(".").concat("curactualoriamt"), "payreqbill".concat(".").concat("projectconoriamt"), "payreqbill".concat(".").concat("payedoriamt"), "totaloriamt", "totalpayedconoriamt"), (QFilter[])qFilters.toArray(new QFilter[0]), "longnumber"); + return dataSet; + } + + public void setDataFilter(FilterInfo filterInfo, ArrayList qFilters) { + FilterItemInfo oriamt = filterInfo.getFilterItem("qeug_oriamt"); + BigDecimal bigDecimal = oriamt.getBigDecimal(); + if(BigDecimal.ZERO.compareTo(bigDecimal)==-1){ + qFilters.add(new QFilter("payreqbill.oriamt", QCP.equals, bigDecimal)); + } + + FilterItemInfo usedepart = filterInfo.getFilterItem("qeug_usedepart"); + if (usedepart != null && usedepart.getValue() != null) { + DynamicObject object = (DynamicObject)usedepart.getValue(); + qFilters.add(new QFilter("payreqbill.useDepart", "=", object.getPkValue())); + } + + FilterItemInfo handler = filterInfo.getFilterItem("qeug_handler"); + if (handler != null && handler.getValue() != null) { + DynamicObject object = (DynamicObject)handler.getValue(); + qFilters.add(new QFilter("payreqbill.handler", "=", object.getPkValue())); + } + + FilterItemInfo payreqbill = filterInfo.getFilterItem("qeug_payreqbill"); + if (payreqbill != null && payreqbill.getValue() != null) { + DynamicObject object = (DynamicObject)payreqbill.getValue(); + qFilters.add(new QFilter("payreqbill.id", "=", object.getPkValue())); + } + } +}