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 b8e3e2a..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,11 +37,21 @@ 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 @@ -56,24 +70,10 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta } } - @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) { - setAttFileVisble(); super.afterDoOperation(afterDoOperationEventArgs); + setAttFileVisble(); } @Override @@ -81,11 +81,55 @@ 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"); + } + } } } private void setAttFileVisble() { - String billstatus = String.valueOf(this.getModel().getValue("status")); + String billstatus = String.valueOf(this.getModel().getValue("billstatus")); if (!billstatus.equals("A")) { AttachmentPanel attachmentPanel = this.getControl("attachmentpanel"); List> attachmentData = attachmentPanel.getAttachmentData(); @@ -107,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);//所属组织 + } }