From f15714f9367fa77c6053c0ee4c68ec61729b618a Mon Sep 17 00:00:00 2001 From: xuhaihui <2098865055@qq.com> Date: Fri, 5 Sep 2025 15:51:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E4=BA=BA=E8=8B=A5=E5=85=BC?= =?UTF-8?q?=E8=81=8C=E5=A4=9A=E4=B8=AA=E5=B2=97=E4=BD=8D=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E4=BA=BA=E9=83=A8=E9=97=A8=E4=B8=8D=E8=A6=81?= =?UTF-8?q?=E5=B8=A6=E5=85=A5=E9=BB=98=E8=AE=A4=E5=80=BC=E3=80=82=E6=B6=89?= =?UTF-8?q?=E5=8F=8A=E9=A1=B5=E9=9D=A2=EF=BC=9A=E9=87=87=E8=B4=AD=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E5=8D=95=E3=80=81=E5=85=A5=E5=BA=93=E5=8D=95=E3=80=81?= =?UTF-8?q?=E5=87=BA=E5=BA=93=E5=8D=95=E3=80=81=E8=AE=BE=E5=A4=87=E8=B0=83?= =?UTF-8?q?=E4=BB=A4=E5=8D=95=E3=80=81=E7=BB=B4=E4=BF=AE=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/EquipmentCommandBillPlugin.java | 6 +- .../pr/plugin/form/MaintenanceBillPlugin.java | 14 +++-- .../form/MaterialInbPurchaseApplyPlugin.java | 14 +++-- .../pr/plugin/form/PurchaseAppBillPlugin.java | 58 ++++++++++++++++--- 4 files changed, 73 insertions(+), 19 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 2d5629f..2a2df3d 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 @@ -140,8 +140,10 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be public void afterCreateNewData(EventObject e) { super.afterCreateNewData(e); long currentUserId = UserServiceHelper.getCurrentUserId(); - Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); - this.getModel().setValue("zcgj_department", mainOrgId);//部门 + List ids = UserServiceHelper.getOrgsUserJoin(currentUserId); + if (ids != null && ids.size() == 1) { + this.getModel().setValue("zcgj_department", ids.get(0));//部门 + } DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门 if (costDept != null) { setOrg(costDept); diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaintenanceBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaintenanceBillPlugin.java index a6ae055..f783de0 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaintenanceBillPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaintenanceBillPlugin.java @@ -38,8 +38,10 @@ public class MaintenanceBillPlugin extends AbstractBillPlugIn implements Plugin, public void afterCreateNewData(EventObject e) { super.afterCreateNewData(e); long currentUserId = UserServiceHelper.getCurrentUserId();//获取当前用户id - long mainOrgID = UserServiceHelper.getUserMainOrgId(currentUserId);//获取用户默认部门id - this.getModel().setValue("zcgj_applidepart", mainOrgID);//申请人部门 + List ids = UserServiceHelper.getOrgsUserJoin(currentUserId); + if (ids != null && ids.size() == 1) { + this.getModel().setValue("zcgj_applidepart", ids.get(0));//申请人部门 + } Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; @@ -89,8 +91,12 @@ public class MaintenanceBillPlugin extends AbstractBillPlugIn implements Plugin, return; } DynamicObject zcgj_reqperson = (DynamicObject) newValue;//物资申请人 - long mainOrgID = UserServiceHelper.getUserMainOrgId((Long) zcgj_reqperson.getPkValue());//获取用户默认部门id - this.getModel().setValue("zcgj_applidepart", mainOrgID);//申请人部门 + List ids = UserServiceHelper.getOrgsUserJoin((Long) zcgj_reqperson.getPkValue()); + if (ids != null && ids.size() == 1) { + this.getModel().setValue("zcgj_applidepart", ids.get(0));//申请人部门 + } else { + this.getModel().setValue("zcgj_applidepart", null);//清空申请人部门字段 + } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java index 4b9730c..15604f2 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialInbPurchaseApplyPlugin.java @@ -52,8 +52,10 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement public void afterCreateNewData(EventObject e) { super.afterCreateNewData(e); long currentUserId = UserServiceHelper.getCurrentUserId();//获取当前用户id - long mainOrgID = UserServiceHelper.getUserMainOrgId(currentUserId);//获取用户默认部门id - this.getModel().setValue("zcgj_applidepart", mainOrgID);//申请人部门 + List ids = UserServiceHelper.getOrgsUserJoin(currentUserId); + if (ids != null && ids.size() == 1) { + this.getModel().setValue("zcgj_applidepart", ids.get(0));//申请人部门 + } } @Override @@ -124,8 +126,12 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement return; } DynamicObject zcgj_reqperson = (DynamicObject) newValue;//物资申请人 - long mainOrgID = UserServiceHelper.getUserMainOrgId((Long) zcgj_reqperson.getPkValue());//获取用户默认部门id - this.getModel().setValue("zcgj_applidepart", mainOrgID);//申请人部门 + List ids = UserServiceHelper.getOrgsUserJoin((Long) zcgj_reqperson.getPkValue()); + if (ids != null && ids.size() == 1) { + this.getModel().setValue("zcgj_applidepart", ids.get(0));//申请人部门 + } else { + this.getModel().setValue("zcgj_applidepart", null);//清空申请人部门字段 + } } else if ("totaloftaxamount".equals(key) || "taxamount".equals(key)) { //入库含税总金额,税额 if ("taxamount".equals(key)) { diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PurchaseAppBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PurchaseAppBillPlugin.java index f23c4f9..bb0c71c 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PurchaseAppBillPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PurchaseAppBillPlugin.java @@ -21,6 +21,7 @@ import java.util.List; * 说明 1:初始默认采购组织等于所属组织 * 2:过滤项目:项目的项目组织与财务记账组织一致才显示 * 3:项目字段赋值 + * 4:申请人部门过滤赋值 */ public class PurchaseAppBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { @Override @@ -30,6 +31,10 @@ public class PurchaseAppBillPlugin extends AbstractBillPlugIn implements BeforeF if (project != null) { project.addBeforeF7SelectListener(this); } + BasedataEdit zcgj_persondepart = this.getControl("zcgj_persondepart"); //申请人部门 + if (zcgj_persondepart != null) { + zcgj_persondepart.addBeforeF7SelectListener(this); + } } @Override @@ -39,8 +44,10 @@ public class PurchaseAppBillPlugin extends AbstractBillPlugIn implements BeforeF this.getModel().setValue("purchaseorg", org);//采购组织 DynamicObject applyer = (DynamicObject) this.getModel().getValue("applyer");//申请人 if (applyer != null) { - long mainOrgID = UserServiceHelper.getUserMainOrgId((Long) applyer.getPkValue()); - this.getModel().setValue("zcgj_persondepart", mainOrgID);//申请人部门 + List ids = UserServiceHelper.getOrgsUserJoin((Long) applyer.getPkValue()); + if (ids != null && ids.size() == 1) { + this.getModel().setValue("zcgj_persondepart", ids.get(0));//申请人部门 + } } } @@ -59,19 +66,52 @@ public class PurchaseAppBillPlugin extends AbstractBillPlugIn implements BeforeF } else { this.getModel().setValue("project", null);//项目 } + } else if ("applyer".equals(key)) { + //申请人 + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + Object newValue = changeData.getNewValue();//新值 + if (newValue == null) { + this.getModel().setValue("zcgj_persondepart", null);//清空申请人部门字段 + return; + } + DynamicObject applyer = (DynamicObject) newValue;//出库申请人 + List ids = UserServiceHelper.getOrgsUserJoin((Long) applyer.getPkValue()); + if (ids != null && ids.size() == 1) { + this.getModel().setValue("zcgj_persondepart", ids.get(0));//申请人部门 + } else { + this.getModel().setValue("zcgj_persondepart", null);//清空申请人部门字段 + } } } @Override public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + List qFilters = new ArrayList<>(); String propertyName = beforeF7SelectEvent.getProperty().getName(); - Object fiaccountorg = this.getModel().getValue("fiaccountorg");//财务记账组织 - if (fiaccountorg != null) { - DynamicObject fiaccountorg1 = (DynamicObject) fiaccountorg; - ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); - List qFilters = new ArrayList<>(); - qFilters.add(new QFilter("projectorg.id", QCP.in, fiaccountorg1.get("id")));//项目组织 - formShowParameter.getListFilterParameter().setQFilters(qFilters); + if ("project".equals(propertyName)) { + // 项目 + Object fiaccountorg = this.getModel().getValue("fiaccountorg");//财务记账组织 + if (fiaccountorg != null) { + DynamicObject fiaccountorg1 = (DynamicObject) fiaccountorg; + qFilters.add(new QFilter("projectorg.id", QCP.in, fiaccountorg1.get("id")));//项目组织 + } + } else if ("zcgj_persondepart".equals(propertyName)){ + // 申请人部门 + Object applyer = this.getModel().getValue("applyer");//申请人 + if (applyer == null) { + this.getView().showErrorNotification("请先填写出库申请人!!"); + beforeF7SelectEvent.setCancel(true); + } + DynamicObject applyer1 = (DynamicObject) applyer;//申请人 + List ids = new ArrayList<>(); + if (applyer1 != null) { + ids = UserServiceHelper.getOrgsUserJoin((Long) applyer1.getPkValue()); + } + qFilters.add(new QFilter("id", QCP.in, ids)); + formShowParameter.setCustomParam("isIncludeAllSub", "true");//包含下级 } + formShowParameter.getListFilterParameter().setQFilters(qFilters); } }