From 84c54e187c30fffd3849444f80a80656ffdcfa29 Mon Sep 17 00:00:00 2001 From: xuhaihui <2098865055@qq.com> Date: Mon, 11 Aug 2025 16:14:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=91=BD=E4=BB=A4=E5=8D=95?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=8F=92=E4=BB=B6=EF=BC=9A=E6=96=B0=E5=8A=A0?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=9A1=EF=BC=9A=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=BC=96=E7=A0=81=E5=B8=A6=E5=87=BA=E8=B5=84=E4=BA=A7=E7=BC=96?= =?UTF-8?q?=E7=A0=81=EF=BC=9B2:=E8=BF=87=E6=BB=A4=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=BC=96=E7=A0=81=E5=AD=97=E6=AE=B5=EF=BC=9B3=EF=BC=9A?= =?UTF-8?q?=E8=B0=83=E5=87=BA=E8=B0=83=E5=85=A5=E9=A1=B9=E7=9B=AE=E5=B8=A6?= =?UTF-8?q?=E5=87=BA=E8=B0=83=E5=87=BA=E8=B0=83=E5=85=A5=E8=B4=9F=E8=B4=A3?= =?UTF-8?q?=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/EquipmentCommandBillPlugin.java | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java new file mode 100644 index 0000000..3726c6f --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java @@ -0,0 +1,133 @@ +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.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.field.BasedataEdit; +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; + +/* + * 设备命令单表单插件 + * 说明:1:设备编码带出资产编码;2:过滤设备编码字段;3:调出调入项目带出调出调入负责人 + */ +public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + BasedataEdit realCard = this.getControl("zcgj_realcard"); //设备编码 + realCard.addBeforeF7SelectListener(this); + BasedataEdit outProject = this.getControl("zcgj_outproject"); //调出项目 + outProject.addBeforeF7SelectListener(this); + BasedataEdit inProject = this.getControl("zcgj_inproject"); //调入项目 + inProject.addBeforeF7SelectListener(this); +// BasedataEdit outUser = this.getControl("zcgj_outuser"); //调出负责人 +// outUser.addBeforeF7SelectListener(this); +// BasedataEdit inUser = this.getControl("zcgj_inuser"); //调入负责人 +// inUser.addBeforeF7SelectListener(this); + } + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String key = e.getProperty().getName(); + if (StringUtil.equals(key, "zcgj_realcard")) { + //设备编码 + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + int rowIndex = changeData.getRowIndex(); + DynamicObject realCard = (DynamicObject) changeData.getNewValue();//新值 + if (realCard != null) { + String realCardNumber = realCard.getString("number");//设备编码-设备编码 + DynamicObject org = (DynamicObject) realCard.get("org");//管理组织 + QFilter[] qFilters = new QFilter[]{new QFilter("number", QCP.equals, realCardNumber).and("org.id", QCP.equals, org.get("id"))}; + DynamicObject fa_card_real_base = BusinessDataServiceHelper.loadSingle("fa_card_real_base", "id", qFilters);//实物卡片基础资料 + this.getModel().setValue("zcgj_realcardsw", fa_card_real_base, rowIndex);//资产编码 + } else { + this.getModel().setValue("zcgj_realcardsw", null, rowIndex);//资产编码 + } + } else if (StringUtil.equals(key, "zcgj_outorg") || StringUtil.equals(key, "zcgj_inorg")) { + //调出组织,调入组织 + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + Object newValue = changeData.getNewValue();//新值 + Object oldValue = changeData.getOldValue();//旧值 + if (newValue == null || !newValue.equals(oldValue)) { + if (StringUtil.equals(key, "zcgj_outorg")) { + //调出组织 + DynamicObjectCollection dispatchEntryCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_dispatchentry");//调出资产详情分录 + dispatchEntryCollection.clear(); + this.getView().updateView("zcgj_dispatchentry");//刷新分录 + this.getModel().setValue("zcgj_outproject", null);//清空调出项目 + } else { + //调入组织 + this.getModel().setValue("zcgj_inproject", null);//清空调入项目 + } + } + } else if (StringUtil.equals(key, "zcgj_outproject") || StringUtil.equals(key, "zcgj_inproject")) { + //调出项目,调入项目 + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + Object newValue = changeData.getNewValue();//新值 + if (newValue != null) { + DynamicObject newValueDy = (DynamicObject) newValue; + QFilter[] qFilters = new QFilter[]{new QFilter("billno", QCP.equals, newValueDy.getString("number"))}; + DynamicObject ec_project = BusinessDataServiceHelper.loadSingle("ec_project", "id,zcgj_pm", qFilters);//项目 + if (ec_project != null) { + if (StringUtil.equals(key, "zcgj_outproject")) { + //调出项目 + this.getModel().setValue("zcgj_outuser", ec_project.get("zcgj_pm"));//调出负责人 + } else { + this.getModel().setValue("zcgj_inuser", ec_project.get("zcgj_pm"));//调出负责人 + } + } + } + } + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String propertyName = beforeF7SelectEvent.getProperty().getName(); + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + List qFilter = new ArrayList<>(); + if (StringUtil.equals(propertyName, "zcgj_realcard") || StringUtil.equals(propertyName, "zcgj_outproject")) { + //设备编码、调出项目 + Object outOrg = this.getModel().getValue("zcgj_outorg");//调出组织 + if (outOrg == null) { + this.getView().showErrorNotification("请先填写调出组织!"); + beforeF7SelectEvent.setCancel(true); + return; + } + DynamicObject outOrgDy = (DynamicObject) outOrg; + if (StringUtil.equals(propertyName, "zcgj_realcard")) { + //设备编码 + qFilter.add(new QFilter("org.id", "=", outOrgDy.get("id"))); + } else { + //调出项目 + qFilter.add(new QFilter("fiaccountorg.id", "=", outOrgDy.get("id"))); + } + } else if (StringUtil.equals(propertyName, "zcgj_inproject")) { + //调入项目 + Object inOrg = this.getModel().getValue("zcgj_inorg");//调入组织 + if (inOrg == null) { + this.getView().showErrorNotification("请先填写调入组织!"); + beforeF7SelectEvent.setCancel(true); + return; + } + DynamicObject inOrgDy = (DynamicObject) inOrg; + qFilter.add(new QFilter("fiaccountorg.id", "=", inOrgDy.get("id"))); + } + formShowParameter.getListFilterParameter().setQFilters(qFilter); + } +}