From 9acaea9c0262e2b45ab2d78418548fa327eb28bb Mon Sep 17 00:00:00 2001 From: xuhaihui <2098865055@qq.com> Date: Wed, 13 Aug 2025 17:16:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=B0=83=E4=BB=A4=E5=8D=95?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=8F=92=E4=BB=B6=E9=80=BB=E8=BE=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/EquipmentCommandBillPlugin.java | 71 ++++++++++++++++--- 1 file changed, 62 insertions(+), 9 deletions(-) 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 index fd3dc61..60f6a49 100644 --- 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 @@ -3,8 +3,12 @@ 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.ListSelectedRowCollection; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.CloseCallBack; +import kd.bos.form.ShowFormHelper; +import kd.bos.form.events.ClosedCallBackEvent; import kd.bos.form.field.BasedataEdit; import kd.bos.form.field.events.BeforeF7SelectEvent; import kd.bos.form.field.events.BeforeF7SelectListener; @@ -33,6 +37,10 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be outProject.addBeforeF7SelectListener(this); BasedataEdit inProject = this.getControl("zcgj_inproject"); //调入项目 inProject.addBeforeF7SelectListener(this); + BasedataEdit zcgj_department = this.getView().getControl("zcgj_department");//部门 + zcgj_department.addBeforeF7SelectListener(this); + BasedataEdit zcgj_org = this.getView().getControl("zcgj_org");//所属组织 + zcgj_org.addBeforeF7SelectListener(this); } @Override @@ -102,7 +110,7 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be } } } - } else if (StringUtil.equals(key, "zcgj_department")){ + } else if (StringUtil.equals(key, "zcgj_department")) { //部门 DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门 if (costDept != null) { @@ -125,13 +133,12 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be beforeF7SelectEvent.setCancel(true); return; } - DynamicObject outOrgDy = (DynamicObject) outOrg;//调出组织 QFilter filter = new QFilter("org.id", "=", outOrgDy.get("id")); DynamicObject[] equipmentInfos = BusinessDataServiceHelper.load("eceq_equipment_info", "id", new QFilter[]{filter});//设备台账F7 List equipmentInfoIds = getIdsFromDynamicObjects(equipmentInfos); qFilters.add(new QFilter("id", QCP.in, equipmentInfoIds)); - + formShowParameter.getListFilterParameter().setQFilters(qFilters); } else if (StringUtil.equals(propertyName, "zcgj_outproject")) { // 调出项目 Object outOrg = this.getModel().getValue("zcgj_outorg");//调出组织 @@ -140,13 +147,18 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be beforeF7SelectEvent.setCancel(true); return; } - DynamicObject outOrgDy = (DynamicObject) outOrg;//调出组织 QFilter filter = new QFilter("fiaccountorg.id", "=", outOrgDy.get("id")); DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter});//工程项目 List projectF7Ids = getIdsFromDynamicObjects(projectF7s); qFilters.add(new QFilter("id", QCP.in, projectF7Ids)); - + beforeF7SelectEvent.setCancel(true); + ListShowParameter ec_ecbd_projectf7 = ShowFormHelper.createShowListForm("ec_ecbd_projectf7", true); + ec_ecbd_projectf7.setCloseCallBack(new CloseCallBack(this, "zcgj_outproject")); + ec_ecbd_projectf7.setMultiSelect(false); + ec_ecbd_projectf7.setIsolationOrg(true); + ec_ecbd_projectf7.getListFilterParameter().setQFilters(qFilters); + this.getView().showForm(ec_ecbd_projectf7); } else if (StringUtil.equals(propertyName, "zcgj_inproject")) { //调入项目 Object inOrg = this.getModel().getValue("zcgj_inorg");//调入组织 @@ -160,12 +172,53 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter}); List projectF7Ids = getIdsFromDynamicObjects(projectF7s); qFilters.add(new QFilter("id", QCP.in, projectF7Ids)); + beforeF7SelectEvent.setCancel(true); + ListShowParameter ec_ecbd_projectf7 = ShowFormHelper.createShowListForm("ec_ecbd_projectf7", true); + ec_ecbd_projectf7.setCloseCallBack(new CloseCallBack(this, "zcgj_inproject")); + ec_ecbd_projectf7.setMultiSelect(false); + ec_ecbd_projectf7.setIsolationOrg(true); + ec_ecbd_projectf7.getListFilterParameter().setQFilters(qFilters); + this.getView().showForm(ec_ecbd_projectf7); + } else if (propertyName.equals("zcgj_department")) { + // 部门 + DynamicObject creator = this.getModel().getDataEntity().getDynamicObject("creator");//创建人 + if (creator == null) { + return; + } + List id = UserServiceHelper.getOrgsUserJoin(creator.getLong("id")); + qFilters.add(new QFilter("id", QCP.in, id)); + formShowParameter.setCustomParam("isIncludeAllSub", "true"); + formShowParameter.getListFilterParameter().setQFilters(qFilters); + } else if (propertyName.equals("zcgj_org")) { + // 所属组织 + DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门 + DynamicObject zcgj_org = (DynamicObject) this.getModel().getValue("zcgj_org");//所属组织 + if (costDept != null && zcgj_org != null) { + DynamicObject orgPattern = costDept.getDynamicObject("orgpattern"); + if (orgPattern == null) { + return; + } + String orgPatternNumber = orgPattern.getString("number"); + if (orgPatternNumber.equals("Orgform06")) { + Long id = (Long) zcgj_org.get("id"); + qFilters.add(new QFilter("id", QCP.in, id)); + formShowParameter.setCustomParam("isIncludeAllSub", "true"); + formShowParameter.getListFilterParameter().setQFilters(qFilters); + } + } } + } -// formShowParameter.setHasRight(true); -// formShowParameter.getCustomParams().put("isIgnoreLicense", true); -// formShowParameter.setIsolationOrg(false); - formShowParameter.getListFilterParameter().setQFilters(qFilters); + public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) { + super.closedCallBack(closedCallBackEvent); + String actionId = closedCallBackEvent.getActionId(); + ListSelectedRowCollection returnData = (ListSelectedRowCollection) closedCallBackEvent.getReturnData(); + if (returnData == null) { + return; + } + Object[] primaryKeyValues = returnData.getPrimaryKeyValues(); + Long primaryKeyValue = (Long) primaryKeyValues[0]; + this.getModel().setValue(actionId, primaryKeyValue); } private List getIdsFromDynamicObjects(DynamicObject[] dynamicObjects) {