From 951e8999a80ad9f1560909981ebdb9f30749be0a Mon Sep 17 00:00:00 2001 From: xuhaihui <2098865055@qq.com> Date: Thu, 7 Aug 2025 17:39:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=AE=E6=A0=87=E6=88=90=E6=9C=AC=E8=AF=84?= =?UTF-8?q?=E5=AE=A1=E8=A1=A8=E5=8D=95=E6=8F=92=E4=BB=B6=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=B7=A5=E5=BA=8F=E6=88=90=E6=9C=AC=E9=A2=84=E7=AE=97=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=B8=8E=E9=A1=B9=E7=9B=AE=E6=88=90=E6=9C=AC=E9=A2=84?= =?UTF-8?q?=E7=AE=97=E5=88=86=E5=BD=95=E8=B5=8B=E5=80=BC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/AimCostReViewBillPlugin.java | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/AimCostReViewBillPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/AimCostReViewBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/AimCostReViewBillPlugin.java new file mode 100644 index 0000000..a5f6eb9 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/AimCostReViewBillPlugin.java @@ -0,0 +1,85 @@ +package zcgj.zcdev.zcdev.pr.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.field.RefBillEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.isc.util.misc.StringUtil; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; + +import java.util.ArrayList; +import java.util.EventObject; +import java.util.List; + +/** + * 目标成本评审表单插件 + * 说明:以项目和可用版本过滤工序成本预算字段,且将工序成本预算内的字段赋值到项目成本预算分录中 + */ +public class AimCostReViewBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + RefBillEdit refBillEdit = getView().getControl("zcgj_aimcostbill");//工序成本预算 + refBillEdit.addBeforeF7SelectListener(this); + } + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String key = e.getProperty().getName(); + if (StringUtil.equals(key, "zcgj_aimcostbill")) { + //工序成本预算 + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + DynamicObject aimCostBill = (DynamicObject) changeData.getNewValue();//新值 + DynamicObjectCollection costEntryEntityCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("costentryentity");//项目成本预算分录 + DynamicObjectType costEntryEntityType = costEntryEntityCollection.getDynamicObjectType(); + costEntryEntityCollection.clear(); + if (aimCostBill != null) { + DynamicObject aimCostBillCbs = BusinessDataServiceHelper.loadSingle(aimCostBill.getPkValue(), "ecco_aimcostbillcbs");//工序成本预算单 + if (aimCostBillCbs != null) { + DynamicObject newCostEntryEntity = new DynamicObject(costEntryEntityType); + newCostEntryEntity.set("costbillno", aimCostBillCbs.get("billno"));//单据编号 + newCostEntryEntity.set("costbillname", aimCostBillCbs.get("name"));//单据名称 + newCostEntryEntity.set("costunitproject", aimCostBillCbs.get("unitproject"));//单位工程/标段 + newCostEntryEntity.set("budcost", aimCostBillCbs.get("totalamount"));//预算成本金额 + newCostEntryEntity.set("costexecutable", aimCostBillCbs.get("isenable"));//执行版本 + newCostEntryEntity.set("costversion", aimCostBillCbs.get("versionno"));//版本号 + newCostEntryEntity.set("costfrom", "CBS");//数据来源 + newCostEntryEntity.set("costfromid", aimCostBillCbs.get("id"));//数据id + costEntryEntityCollection.add(newCostEntryEntity); + } + } + this.getView().updateView("costentryentity");//刷新项目成本预算分录 + } else if (StringUtil.equals(key, "project")) { + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + Object newValue = changeData.getNewValue();//新值 + if (newValue == null) { + this.getModel().setValue("zcgj_aimcostbill", null); + } + } + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + List qFilter = new ArrayList<>(); + DynamicObject project = (DynamicObject) this.getModel().getValue("project");//项目 + if (project != null) { + qFilter.add(new QFilter("project", "=", project.getPkValue())); + qFilter.add(new QFilter("isenable", "=", true)); + } else { + qFilter.add(new QFilter("project", "=", 1234567890)); + } + formShowParameter.getListFilterParameter().setQFilters(qFilter); + } +}