From 02ed45c2e52fa9d4763abb30da0e516badb24d15 Mon Sep 17 00:00:00 2001 From: xuhaihui <2098865055@qq.com> Date: Wed, 16 Jul 2025 17:46:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=AC=BE=E7=94=B3=E8=AF=B7=E5=8D=95?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/PaymentApplicationPlugin.java | 127 +++++++++++++++--- 1 file changed, 108 insertions(+), 19 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PaymentApplicationPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PaymentApplicationPlugin.java index 16f0627..ac21b84 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PaymentApplicationPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PaymentApplicationPlugin.java @@ -4,6 +4,8 @@ import kd.bos.bill.AbstractBillPlugIn; import kd.bos.bill.BillShowParameter; import kd.bos.bill.OperationStatus; import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.metadata.IDataEntityProperty; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.IClientViewProxy; @@ -15,8 +17,10 @@ import kd.bos.form.field.events.BeforeF7SelectEvent; import kd.bos.form.field.events.BeforeF7SelectListener; import kd.bos.list.ListShowParameter; import kd.bos.mvc.form.ClientViewProxy; +import kd.bos.org.utils.OrgTreeUtils; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.user.UserServiceHelper; import kd.sdk.plugin.Plugin; @@ -33,12 +37,23 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta @Override public void registerListener(EventObject e) { super.registerListener(e); - BasedataEdit Value = this.getView().getControl("zcgj_department");//部门 - Value.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); AttachmentPanel panel = getControl("attachmentpanel");//附件 panel.addOperaClickListener(this); } + @Override + public void afterCreateNewData(EventObject e) { + super.afterCreateNewData(e); + DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门 + if (costDept != null) { + setOrg(costDept); + } + } + @Override public void afterBindData(EventObject e) { super.afterBindData(e); @@ -49,29 +64,12 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta DynamicObject creator = this.getModel().getDataEntity().getDynamicObject("creator");//创建人 if (creator != null) { long mainOrgId = UserServiceHelper.getUserMainOrgId(creator.getLong("id")); -// long id = UserServiceHelper.getUserDefaultOrgID(creator.getLong("id")); this.getModel().setValue("zcgj_department", mainOrgId);//部门 -// this.getModel().setValue("zcgj_org", id);//所属组织 this.getView().updateView("zcgj_department"); - this.getView().updateView("zcgj_org"); } } } - @Override - public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { - ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); - DynamicObject creator = this.getModel().getDataEntity().getDynamicObject("creator");//创建人 - if (creator == null) { - return; - } - List id = UserServiceHelper.getOrgsUserJoin(creator.getLong("id")); - List qFilter = new ArrayList<>(); - qFilter.add(new QFilter("id", QCP.in, id)); - formShowParameter.getListFilterParameter().setQFilters(qFilter); - formShowParameter.setCustomParam("isIncludeAllSub", "true"); - } - @Override public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) { super.afterDoOperation(afterDoOperationEventArgs); @@ -83,6 +81,50 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta super.propertyChanged(e); if (e.getProperty().getName().equals("attachmentpanel")) { setAttFileVisble(); + } else if (e.getProperty().getName().equals("zcgj_department")) { + //部门 + DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门 + if (costDept != null) { + setOrg(costDept); + } + } + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + IDataEntityProperty property = beforeF7SelectEvent.getProperty();//过滤字段信息 + String propertyName = property.getName();//过滤字段标识 + if (propertyName.equals("zcgj_department")) { + // 部门 + DynamicObject creator = this.getModel().getDataEntity().getDynamicObject("creator");//创建人 + if (creator == null) { + return; + } + List id = UserServiceHelper.getOrgsUserJoin(creator.getLong("id")); + List qFilter = new ArrayList<>(); + qFilter.add(new QFilter("id", QCP.in, id)); + formShowParameter.getListFilterParameter().setQFilters(qFilter); + formShowParameter.setCustomParam("isIncludeAllSub", "true"); + } 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"); + List qFilter = new ArrayList<>(); + qFilter.add(new QFilter("id", QCP.in, id)); + formShowParameter.getListFilterParameter().setQFilters(qFilter); +// formShowParameter.setCustomParam(OrgTreeUtils.PARAM_INIT_ROOT_ORG_ID, id); + formShowParameter.setCustomParam("isIncludeAllSub", "true"); + } + } } } @@ -109,4 +151,51 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta cvp.setFieldProperty("attachmentpanel", "v", attachmentDatas); } } + + private void setOrg(DynamicObject costDept) { + DynamicObject orgPattern = costDept.getDynamicObject("orgpattern"); + if (orgPattern == null) { + return; + } + String orgPatternNumber = orgPattern.getString("number"); + if (!orgPatternNumber.equals("Orgform06")) { + //填写的部门的形态不是部门时,直接将部门值赋值给所属组织 + this.getModel().setValue("zcgj_org", costDept);//所属组织 + return; + } + int a = 0; + DynamicObject cost; + DynamicObject viewParent = null; + while (true) { + if (a == 0) { + //第一次进入循环 + cost = costDept; + } else { + QFilter[] qFilters = new QFilter[]{ + new QFilter("number", QCP.equals, viewParent.getString("number")) + }; + cost = BusinessDataServiceHelper.loadSingle("bos_adminorg", qFilters); + } + DynamicObjectCollection structureCollection = cost.getDynamicObjectCollection("structure");//组织结构分录 + DynamicObject structure = structureCollection.get(0); + viewParent = structure.getDynamicObject("viewparent");//上级组织 + String viewParentNumber = viewParent.getString("number"); + QFilter[] qFilters = new QFilter[]{ + new QFilter("number", QCP.equals, viewParentNumber) + }; + DynamicObject bos_adminOrg = BusinessDataServiceHelper.loadSingle("bos_adminorg", qFilters);//行政组织 + DynamicObject orgPattern1 = bos_adminOrg.getDynamicObject("orgpattern");//形态 + String orgPatternNumber1 = orgPattern1.getString("number"); + if (!orgPatternNumber1.equals("Orgform06")) { + //上级不为不为部门的时候,将现在查询的部门赋值给一级承担部门 + break; + } else { + a++; + } + } + + DynamicObject bos_adminorg = BusinessDataServiceHelper.loadSingle("bos_adminorg", new QFilter[]{ + new QFilter("number", QCP.equals, viewParent.getString("number"))}); + this.getModel().setValue("zcgj_org", bos_adminorg);//所属组织 + } }