diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/CbsDynamicCostFormPluginExt.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/CbsDynamicCostFormPluginExt.java index 5c79935..ce3659b 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/CbsDynamicCostFormPluginExt.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/CbsDynamicCostFormPluginExt.java @@ -42,6 +42,7 @@ import kd.bos.form.field.events.BeforeF7SelectEvent; import kd.bos.form.field.events.BeforeF7SelectListener; import kd.bos.form.plugin.AbstractFormPlugin; import kd.bos.orm.ORM; +import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.permission.api.HasPermOrgResult; import kd.bos.servicehelper.BusinessDataServiceHelper; @@ -56,6 +57,9 @@ import kd.ec.contract.common.utils.CurrencyFormatUtil; import org.apache.commons.collections4.CollectionUtils; import org.jetbrains.annotations.NotNull; +/* + * 项目工序动态成本分析表二开 + */ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements BeforeF7SelectListener, HyperLinkClickListener { public static final String QUERY_PROJECT = "queryProject"; public static final String CBS_CACHE = "cbsCache"; @@ -293,8 +297,13 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B protected void query() { DynamicObject project = (DynamicObject) this.getModel().getValue("project"); + Object zcgj_periodyear = this.getModel().getValue("zcgj_periodyear");//年度-二开添加 if (project == null) { this.getView().showTipNotification(ResManager.loadKDString("请先选择项目。", "CbsDynamicCostFormPlugin_0", "ec-ecco-formplugin", new Object[0])); + //二开添加↓ + } else if (zcgj_periodyear == null) { + this.getView().showTipNotification(ResManager.loadKDString("请先选择年度。", "CbsDynamicCostFormPlugin_0", "ec-ecco-formplugin", new Object[0])); + //二开添加↑ } else { JSONArray unitProjectCbsArray = this.getCbsCache(); JSONArray queryCbsArray = this.getQueryCbsCache(); @@ -349,7 +358,8 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B this.fillTreeList(treeEntries, firstLevelJsonObject, 0L, subJsonObject, cbsMap, unitProjectMap); Map aimCostMap = new HashMap(16); - this.queryAimCost(project, unitProjectIds, aimCostMap); +// this.queryAimCost(project, unitProjectIds, aimCostMap);//系统代码 + this.queryAimCost(project, unitProjectIds, aimCostMap, zcgj_periodyear);//二开替换 Map confirmCostMap = new HashMap(16); Map notSplitCostMap = new HashMap(16); Map notConfirmCostMap = new HashMap(16); @@ -633,8 +643,24 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B } protected void queryCostData(DynamicObject project, Map confirmCostMap, Map notSplitCostMap, Map notConfirmCostMap) { + Object zcgj_periodyear = this.getModel().getValue("zcgj_periodyear"); + int periodYear = 0; + if (zcgj_periodyear.equals("1")) { + periodYear = 2025; + } else if (zcgj_periodyear.equals("2")) { + periodYear = 2026; + } else if (zcgj_periodyear.equals("3")) { + periodYear = 2027; + } else if (zcgj_periodyear.equals("4")) { + periodYear = 2028; + } else if (zcgj_periodyear.equals("5")) { + periodYear = 2029; + } else if (zcgj_periodyear.equals("6")) { + periodYear = 2030; + } QFilter costFilter = new QFilter("project", "=", project.getPkValue()); costFilter.and("billstatus", "in", new String[]{BillStatusEnum.AUDIT.getValue(), BillStatusEnum.SUBMIT.getValue()}); + costFilter.and("period.periodyear", QCP.equals, periodYear);//会计期间-年度--二开添加 DynamicObjectCollection contractCostBills = QueryServiceHelper.query("ecco_contractcost", "billstatus,entryentity.settleid,entryentity.splitbilltype,entryentity.subentryentity.unitproject,entryentity.subentryentity.procbs,entryentity.subentryentity.amount", new QFilter[]{costFilter}); Set splitReferenceMeasureSet = new HashSet(16); Set splitReferenceSettleSet = new HashSet(16); @@ -776,7 +802,10 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B } } - DynamicObjectCollection costAdjustBills = QueryServiceHelper.query("ecco_costadjust", "billstatus,entryentity.subentryentity.subunitproject,entryentity.subentryentity.procbs,entryentity.subentryentity.afteradjustbalance", new QFilter[]{costFilter}); + QFilter costFilter1 = new QFilter("project", "=", project.getPkValue()); + costFilter1.and("billstatus", "in", new String[]{BillStatusEnum.AUDIT.getValue(), BillStatusEnum.SUBMIT.getValue()}); + costFilter1.and("adjustperiod.periodyear", QCP.equals, periodYear);//会计期间-年度--二开添加 + DynamicObjectCollection costAdjustBills = QueryServiceHelper.query("ecco_costadjust", "billstatus,entryentity.subentryentity.subunitproject,entryentity.subentryentity.procbs,entryentity.subentryentity.afteradjustbalance", new QFilter[]{costFilter1}); Iterator var72 = costAdjustBills.iterator(); while (var72.hasNext()) { @@ -796,7 +825,7 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B } } - DynamicObjectCollection equipmentCostBills = QueryServiceHelper.query("eceq_costsplit", "billstatus,settlesplitentity.settleid,settlesplitentity.costsplitentity.unitproject,settlesplitentity.costsplitentity.procbs,settlesplitentity.costsplitentity.splitamount", new QFilter[]{costFilter}); + DynamicObjectCollection equipmentCostBills = QueryServiceHelper.query("eceq_costsplit", "billstatus,settlesplitentity.settleid,settlesplitentity.costsplitentity.unitproject,settlesplitentity.costsplitentity.procbs,settlesplitentity.costsplitentity.splitamount", new QFilter[]{costFilter1}); Set splitReferenceEqSettleSet = new HashSet(16); Iterator var79 = equipmentCostBills.iterator(); @@ -824,6 +853,7 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B settleFilter.and("id", "not in", splitReferenceSettleSet); settleFilter.and("project", "=", project.getPkValue()); settleFilter.and("billstatus", "in", new String[]{BillStatusEnum.AUDIT.getValue(), BillStatusEnum.SUBMIT.getValue()}); + settleFilter.and("period.periodyear", QCP.equals, periodYear);//会计期间-年度--二开添加 Map settleBills = BusinessDataServiceHelper.loadFromCache("ec_out_contract_settle", new QFilter[]{settleFilter}); Set notSplitClaimSet = new HashSet(16); Set notConfirmClaimSet = new HashSet(16); @@ -932,11 +962,12 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B measureFilter.and("id", "not in", notConfirmMeasureSet); measureFilter.and("project", "=", project.getPkValue()); measureFilter.and("billstatus", "in", new String[]{BillStatusEnum.AUDIT.getValue(), BillStatusEnum.SUBMIT.getValue()}); + measureFilter.and("period.periodyear", QCP.equals, periodYear);//会计期间-年度--二开添加 Map measureBills = BusinessDataServiceHelper.loadFromCache("ec_outcontractmeasure", new QFilter[]{measureFilter}); this.processMeasureBills(notConfirmCostMap, measureBills); - Map notSplitMeasureBills = BusinessDataServiceHelper.loadFromCache("ec_outcontractmeasure", new QFilter[]{(new QFilter("id", "in", notSplitMeasureSet)).and("id", "not in", splitReferenceMeasureSet)}); + Map notSplitMeasureBills = BusinessDataServiceHelper.loadFromCache("ec_outcontractmeasure", new QFilter[]{(new QFilter("id", "in", notSplitMeasureSet)).and("id", "not in", splitReferenceMeasureSet).and("period.periodyear", QCP.equals, periodYear)}); this.processMeasureBills(notSplitCostMap, notSplitMeasureBills); - Map notConfirmMeasureBills = BusinessDataServiceHelper.loadFromCache("ec_outcontractmeasure", new QFilter[]{(new QFilter("id", "in", notConfirmMeasureSet)).and("id", "not in", splitReferenceMeasureSet)}); + Map notConfirmMeasureBills = BusinessDataServiceHelper.loadFromCache("ec_outcontractmeasure", new QFilter[]{(new QFilter("id", "in", notConfirmMeasureSet)).and("id", "not in", splitReferenceMeasureSet).and("period.periodyear", QCP.equals, periodYear)}); this.processMeasureBills(notConfirmCostMap, notConfirmMeasureBills); QFilter claimFilter = new QFilter("contract.isincost", "=", "1"); claimFilter.and("issettle", "=", "0"); @@ -945,11 +976,12 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B claimFilter.and("id", "not in", notConfirmClaimSet); claimFilter.and("project", "=", project.getPkValue()); claimFilter.and("billstatus", "in", new String[]{BillStatusEnum.AUDIT.getValue(), BillStatusEnum.SUBMIT.getValue()}); + claimFilter.and("period.periodyear", QCP.equals, periodYear);//会计期间-年度--二开添加 Map claimBills = BusinessDataServiceHelper.loadFromCache("ec_outclaimbill", new QFilter[]{claimFilter}); this.processClaimBills(notConfirmCostMap, claimBills); - Map notSplitClaimBills = BusinessDataServiceHelper.loadFromCache("ec_outclaimbill", new QFilter[]{new QFilter("id", "in", notSplitClaimSet)}); + Map notSplitClaimBills = BusinessDataServiceHelper.loadFromCache("ec_outclaimbill", new QFilter[]{new QFilter("id", "in", notSplitClaimSet).and("period.periodyear", QCP.equals, periodYear)}); this.processClaimBills(notSplitCostMap, notSplitClaimBills); - Map notConfirmClaimBills = BusinessDataServiceHelper.loadFromCache("ec_outclaimbill", new QFilter[]{new QFilter("id", "in", notConfirmClaimSet)}); + Map notConfirmClaimBills = BusinessDataServiceHelper.loadFromCache("ec_outclaimbill", new QFilter[]{new QFilter("id", "in", notConfirmClaimSet).and("period.periodyear", QCP.equals, periodYear)}); this.processClaimBills(notConfirmCostMap, notConfirmClaimBills); QFilter visaFilter = new QFilter("contract.isincost", "=", "1"); visaFilter.and("issettle", "=", "0"); @@ -958,11 +990,12 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B visaFilter.and("id", "not in", notConfirmVisaSet); visaFilter.and("project", "=", project.getPkValue()); visaFilter.and("billstatus", "in", new String[]{BillStatusEnum.AUDIT.getValue(), BillStatusEnum.SUBMIT.getValue()}); + visaFilter.and("period.periodyear", QCP.equals, periodYear);//会计期间-年度--二开添加 Map visaBills = BusinessDataServiceHelper.loadFromCache("ec_outvisabill", new QFilter[]{visaFilter}); this.processVisaBills(notConfirmCostMap, visaBills); - Map notSplitVisaBills = BusinessDataServiceHelper.loadFromCache("ec_outvisabill", new QFilter[]{new QFilter("id", "in", notSplitVisaSet)}); + Map notSplitVisaBills = BusinessDataServiceHelper.loadFromCache("ec_outvisabill", new QFilter[]{new QFilter("id", "in", notSplitVisaSet).and("period.periodyear", QCP.equals, periodYear)}); this.processVisaBills(notSplitCostMap, notSplitVisaBills); - Map notConfirmVisaBills = BusinessDataServiceHelper.loadFromCache("ec_outvisabill", new QFilter[]{new QFilter("id", "in", notConfirmVisaSet)}); + Map notConfirmVisaBills = BusinessDataServiceHelper.loadFromCache("ec_outvisabill", new QFilter[]{new QFilter("id", "in", notConfirmVisaSet).and("period.periodyear", QCP.equals, periodYear)}); this.processVisaBills(notConfirmCostMap, notConfirmVisaBills); QFilter performFilter = new QFilter("contract.isincost", "=", "1"); performFilter.and("id", "not in", notSplitPerformSet); @@ -981,6 +1014,7 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B matOutFilter.and("iscompleted", "=", "0"); matOutFilter.and("billno", "not in", splitReferenceOutBillNoSet); matOutFilter.and("billstatus", "in", new String[]{BillStatusEnum.AUDIT.getValue(), BillStatusEnum.SUBMIT.getValue()}); + matOutFilter.and("period.periodyear", QCP.equals, periodYear);//会计期间-年度--二开添加 DynamicObjectCollection matOutBills = QueryServiceHelper.query("ecma_materialoutbill", "billstatus,entryentity.unitproject,entryentity.procbs,entryentity.amount", new QFilter[]{matOutFilter}); this.processMaterialBills(notSplitCostMap, notConfirmCostMap, matOutBills); QFilter matInFilter = new QFilter("project", "=", project.getPkValue()); @@ -989,6 +1023,7 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B matInFilter.and("iscompleted", "=", "0"); matInFilter.and("billno", "not in", splitReferenceInBillNoSet); matInFilter.and("billstatus", "in", new String[]{BillStatusEnum.AUDIT.getValue(), BillStatusEnum.SUBMIT.getValue()}); + matInFilter.and("period.periodyear", QCP.equals, periodYear);//会计期间-年度--二开添加 DynamicObjectCollection matInBills = QueryServiceHelper.query("ecma_materialinbill", "billstatus,entryentity.unitproject,entryentity.procbs,entryentity.amount", new QFilter[]{matInFilter}); this.processMaterialBills(notSplitCostMap, notConfirmCostMap, matInBills); QFilter eqSettleFilter = new QFilter("billstatus", "=", BillStatusEnum.AUDIT.getValue()); @@ -998,25 +1033,28 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B eqSettleFilter.and("id", "not in", splitReferenceEqSettleSet); eqSettleFilter.and("id", "not in", notSplitEqSettleSet); eqSettleFilter.and("id", "not in", notConfirmEqSettleSet); + eqSettleFilter.and("period.periodyear", QCP.equals, periodYear);//会计期间-年度--二开添加 DynamicObjectCollection eqSettleBills = QueryServiceHelper.query("eceq_settle", "unitproject,entryentity.procbs,entryentity.amount", new QFilter[]{eqSettleFilter}); this.processEqSettleBills(notSplitCostMap, eqSettleBills); - eqSettleBills = QueryServiceHelper.query("eceq_settle", "unitproject,entryentity.procbs,entryentity.amount", new QFilter[]{new QFilter("id", "in", notSplitEqSettleSet)}); + eqSettleBills = QueryServiceHelper.query("eceq_settle", "unitproject,entryentity.procbs,entryentity.amount", new QFilter[]{new QFilter("id", "in", notSplitEqSettleSet).and("period.periodyear", QCP.equals, periodYear)}); this.processEqSettleBills(notSplitCostMap, eqSettleBills); eqSettleFilter = new QFilter("project", "=", project.getPkValue()); eqSettleFilter.and("billstatus", "=", BillStatusEnum.SUBMIT.getValue()); eqSettleBills = QueryServiceHelper.query("eceq_settle", "unitproject,entryentity.procbs,entryentity.amount", new QFilter[]{eqSettleFilter}); this.processEqSettleBills(notConfirmCostMap, eqSettleBills); - eqSettleBills = QueryServiceHelper.query("eceq_settle", "unitproject,entryentity.procbs,entryentity.amount", new QFilter[]{new QFilter("id", "in", notConfirmEqSettleSet)}); + eqSettleBills = QueryServiceHelper.query("eceq_settle", "unitproject,entryentity.procbs,entryentity.amount", new QFilter[]{new QFilter("id", "in", notConfirmEqSettleSet).and("period.periodyear", QCP.equals, periodYear)}); this.processEqSettleBills(notConfirmCostMap, eqSettleBills); } - protected void queryAimCost(DynamicObject project, Set unitProjectIds, Map aimCostMap) { + // protected void queryAimCost(DynamicObject project, Set unitProjectIds, Map aimCostMap) {//系统代码 + protected void queryAimCost(DynamicObject project, Set unitProjectIds, Map aimCostMap, Object zcgj_periodyear) {//二开替代 QFilter aimCostFilter = new QFilter("project", "=", project.getPkValue()); - if (project.getBoolean("editonunit") && !unitProjectIds.isEmpty()) { +/* if (project.getBoolean("editonunit") && !unitProjectIds.isEmpty()) { aimCostFilter.and("unitproject", "in", unitProjectIds); - } + }*///二开注释掉的 aimCostFilter.and("isenable", "=", "1"); + aimCostFilter.and("zcgj_periodyear", "=", zcgj_periodyear);//二开添加 DynamicObject[] aimCostBills = BusinessDataServiceHelper.load("ecco_aimcostbillcbs", "unitproject,treeentryentity,treeentryentity.cbs,treeentryentity.pdamount", new QFilter[]{aimCostFilter}); DynamicObject[] var6 = aimCostBills; int var7 = aimCostBills.length; @@ -1304,9 +1342,11 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B protected void showAimCostBill(int rowIndex) { DynamicObject unitProject = (DynamicObject) this.getModel().getValue("unitproject", rowIndex); DynamicObject project = (DynamicObject) this.getModel().getValue("project"); + Object zcgj_periodyear = this.getModel().getValue("zcgj_periodyear");//年度-二开添加 QFilter aimCostFilter = new QFilter("project", "=", project.getPkValue()); aimCostFilter.and("unitproject", "=", unitProject == null ? 0L : unitProject.getPkValue()); aimCostFilter.and("isenable", "=", "1"); + aimCostFilter.and("zcgj_periodyear", "=", zcgj_periodyear);//二开添加 DynamicObject aimCostBill = QueryServiceHelper.queryOne("ecco_aimcostbillcbs", "id", new QFilter[]{aimCostFilter}); if (aimCostBill != null) { BillShowParameter showParameter = OpenPageUtils.buildBillShowParam(aimCostBill.getLong("id"), "ecco_aimcostbillcbs"); @@ -1317,6 +1357,7 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B protected void showPeriodDetailCost(int rowIndex, String splitType) { Map paramMap = new HashMap(); + Object zcgj_periodyear = this.getModel().getValue("zcgj_periodyear");//年度--二开添加 DynamicObject cbs = (DynamicObject) this.getModel().getValue("cbs", rowIndex); if (cbs != null && cbs.getBoolean("isleaf")) { paramMap.put("projectId", this.getPageCache().get("queryProject"));