diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialOutBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialOutBillPlugin.java index 3292f14..22fe677 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialOutBillPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/MaterialOutBillPlugin.java @@ -14,6 +14,7 @@ import kd.bos.list.ListShowParameter; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.user.UserServiceHelper; import java.util.ArrayList; import java.util.EventObject; @@ -24,6 +25,7 @@ import java.util.List; * 说明:1:核算组织由项目中的财务记账组织携带而来 * 2:使用设备过滤,通过核算组织与使用设备中的使用组织比对而来过滤 * 3:科目属性过滤和成本分解结构必录逻辑控制 + * 4:申请人部门赋值过滤 */ public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { @@ -38,9 +40,21 @@ public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF if (zcgj_accounttype != null) { zcgj_accounttype.addBeforeF7SelectListener(this); } + BasedataEdit zcgj_applidepart = this.getControl("zcgj_applidepart"); //申请人部门 + if (zcgj_applidepart != null) { + zcgj_applidepart.addBeforeF7SelectListener(this); + } this.addItemClickListeners("advcontoolbarap");//出库单明细分录工具栏 } + @Override + 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);//申请人部门 + } + @Override public void propertyChanged(PropertyChangedArgs e) { super.propertyChanged(e); @@ -90,6 +104,18 @@ public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF if (newValue == null || !newValue.equals(oldValue)) { this.getModel().setValue("zcgj_accounttype", null, rowIndex);//科目属性 } + } else if ("zcgj_outbound_by".equals(key)) { + //出库申请人 + ChangeData[] changeSet = e.getChangeSet(); + ChangeData changeData = changeSet[0]; + Object newValue = changeData.getNewValue();//新值 + if (newValue == null) { + this.getModel().setValue("zcgj_applidepart", null);//清空申请人部门字段 + return; + } + DynamicObject zcgj_outbound_by = (DynamicObject) newValue;//出库申请人 + long mainOrgID = UserServiceHelper.getUserMainOrgId((Long) zcgj_outbound_by.getPkValue());//获取用户默认部门id + this.getModel().setValue("zcgj_applidepart", mainOrgID);//申请人部门 } } @@ -157,6 +183,20 @@ public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF this.getView().showErrorNotification("请先填写资源!"); beforeF7SelectEvent.setCancel(true); } + } else if ("zcgj_applidepart".equals(name)) { + //申请人部门 + Object zcgj_outbound_by = this.getModel().getValue("zcgj_outbound_by");//出库申请人 + if (zcgj_outbound_by == null) { + this.getView().showErrorNotification("请先填写出库申请人!!"); + beforeF7SelectEvent.setCancel(true); + } + DynamicObject zcgj_outbound_by1 = (DynamicObject) zcgj_outbound_by;//申请人 + List ids = new ArrayList<>(); + if (zcgj_outbound_by1 != null) { + ids = UserServiceHelper.getOrgsUserJoin((Long) zcgj_outbound_by1.getPkValue()); + } + qFilter = new QFilter("id", QCP.in, ids); + formShowParameter.setCustomParam("isIncludeAllSub", "true");//包含下级 } formShowParameter.getListFilterParameter().getQFilters().add(qFilter); }