项目工序动态成本分析表二开优化
This commit is contained in:
parent
93cfdf1fad
commit
6333878a1e
|
|
@ -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<String, BigDecimal> aimCostMap = new HashMap(16);
|
||||
this.queryAimCost(project, unitProjectIds, aimCostMap);
|
||||
// this.queryAimCost(project, unitProjectIds, aimCostMap);//系统代码
|
||||
this.queryAimCost(project, unitProjectIds, aimCostMap, zcgj_periodyear);//二开替换
|
||||
Map<String, BigDecimal> confirmCostMap = new HashMap(16);
|
||||
Map<String, BigDecimal> notSplitCostMap = new HashMap(16);
|
||||
Map<String, BigDecimal> notConfirmCostMap = new HashMap(16);
|
||||
|
|
@ -633,8 +643,24 @@ public class CbsDynamicCostFormPluginExt extends AbstractFormPlugin implements B
|
|||
}
|
||||
|
||||
protected void queryCostData(DynamicObject project, Map<String, BigDecimal> confirmCostMap, Map<String, BigDecimal> notSplitCostMap, Map<String, BigDecimal> 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<Long> splitReferenceMeasureSet = new HashSet(16);
|
||||
Set<Long> 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<Long> 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<Object, DynamicObject> settleBills = BusinessDataServiceHelper.loadFromCache("ec_out_contract_settle", new QFilter[]{settleFilter});
|
||||
Set<Long> notSplitClaimSet = new HashSet(16);
|
||||
Set<Long> 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<Object, DynamicObject> measureBills = BusinessDataServiceHelper.loadFromCache("ec_outcontractmeasure", new QFilter[]{measureFilter});
|
||||
this.processMeasureBills(notConfirmCostMap, measureBills);
|
||||
Map<Object, DynamicObject> notSplitMeasureBills = BusinessDataServiceHelper.loadFromCache("ec_outcontractmeasure", new QFilter[]{(new QFilter("id", "in", notSplitMeasureSet)).and("id", "not in", splitReferenceMeasureSet)});
|
||||
Map<Object, DynamicObject> 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<Object, DynamicObject> notConfirmMeasureBills = BusinessDataServiceHelper.loadFromCache("ec_outcontractmeasure", new QFilter[]{(new QFilter("id", "in", notConfirmMeasureSet)).and("id", "not in", splitReferenceMeasureSet)});
|
||||
Map<Object, DynamicObject> 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<Object, DynamicObject> claimBills = BusinessDataServiceHelper.loadFromCache("ec_outclaimbill", new QFilter[]{claimFilter});
|
||||
this.processClaimBills(notConfirmCostMap, claimBills);
|
||||
Map<Object, DynamicObject> notSplitClaimBills = BusinessDataServiceHelper.loadFromCache("ec_outclaimbill", new QFilter[]{new QFilter("id", "in", notSplitClaimSet)});
|
||||
Map<Object, DynamicObject> notSplitClaimBills = BusinessDataServiceHelper.loadFromCache("ec_outclaimbill", new QFilter[]{new QFilter("id", "in", notSplitClaimSet).and("period.periodyear", QCP.equals, periodYear)});
|
||||
this.processClaimBills(notSplitCostMap, notSplitClaimBills);
|
||||
Map<Object, DynamicObject> notConfirmClaimBills = BusinessDataServiceHelper.loadFromCache("ec_outclaimbill", new QFilter[]{new QFilter("id", "in", notConfirmClaimSet)});
|
||||
Map<Object, DynamicObject> 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<Object, DynamicObject> visaBills = BusinessDataServiceHelper.loadFromCache("ec_outvisabill", new QFilter[]{visaFilter});
|
||||
this.processVisaBills(notConfirmCostMap, visaBills);
|
||||
Map<Object, DynamicObject> notSplitVisaBills = BusinessDataServiceHelper.loadFromCache("ec_outvisabill", new QFilter[]{new QFilter("id", "in", notSplitVisaSet)});
|
||||
Map<Object, DynamicObject> notSplitVisaBills = BusinessDataServiceHelper.loadFromCache("ec_outvisabill", new QFilter[]{new QFilter("id", "in", notSplitVisaSet).and("period.periodyear", QCP.equals, periodYear)});
|
||||
this.processVisaBills(notSplitCostMap, notSplitVisaBills);
|
||||
Map<Object, DynamicObject> notConfirmVisaBills = BusinessDataServiceHelper.loadFromCache("ec_outvisabill", new QFilter[]{new QFilter("id", "in", notConfirmVisaSet)});
|
||||
Map<Object, DynamicObject> 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<Long> unitProjectIds, Map<String, BigDecimal> aimCostMap) {
|
||||
// protected void queryAimCost(DynamicObject project, Set<Long> unitProjectIds, Map<String, BigDecimal> aimCostMap) {//系统代码
|
||||
protected void queryAimCost(DynamicObject project, Set<Long> unitProjectIds, Map<String, BigDecimal> 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<String, Object> 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"));
|
||||
|
|
|
|||
Loading…
Reference in New Issue