出库单添加申请人部门赋值过滤逻辑

This commit is contained in:
xuhaihui 2025-08-29 11:32:49 +08:00
parent efd8b2a3e5
commit 679eaaf77e
1 changed files with 40 additions and 0 deletions

View File

@ -14,6 +14,7 @@ import kd.bos.list.ListShowParameter;
import kd.bos.orm.query.QCP; import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter; import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.EventObject; import java.util.EventObject;
@ -24,6 +25,7 @@ import java.util.List;
* 说明1核算组织由项目中的财务记账组织携带而来 * 说明1核算组织由项目中的财务记账组织携带而来
* 2使用设备过滤通过核算组织与使用设备中的使用组织比对而来过滤 * 2使用设备过滤通过核算组织与使用设备中的使用组织比对而来过滤
* 3科目属性过滤和成本分解结构必录逻辑控制 * 3科目属性过滤和成本分解结构必录逻辑控制
* 4申请人部门赋值过滤
*/ */
public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
@ -38,9 +40,21 @@ public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF
if (zcgj_accounttype != null) { if (zcgj_accounttype != null) {
zcgj_accounttype.addBeforeF7SelectListener(this); zcgj_accounttype.addBeforeF7SelectListener(this);
} }
BasedataEdit zcgj_applidepart = this.getControl("zcgj_applidepart"); //申请人部门
if (zcgj_applidepart != null) {
zcgj_applidepart.addBeforeF7SelectListener(this);
}
this.addItemClickListeners("advcontoolbarap");//出库单明细分录工具栏 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 @Override
public void propertyChanged(PropertyChangedArgs e) { public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e); super.propertyChanged(e);
@ -90,6 +104,18 @@ public class MaterialOutBillPlugin extends AbstractBillPlugIn implements BeforeF
if (newValue == null || !newValue.equals(oldValue)) { if (newValue == null || !newValue.equals(oldValue)) {
this.getModel().setValue("zcgj_accounttype", null, rowIndex);//科目属性 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("请先填写资源!"); this.getView().showErrorNotification("请先填写资源!");
beforeF7SelectEvent.setCancel(true); 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<Long> 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); formShowParameter.getListFilterParameter().getQFilters().add(qFilter);
} }