入库单添加申请人部门过滤逻辑

This commit is contained in:
xuhaihui 2025-08-27 17:12:09 +08:00
parent 79a38fedee
commit 7bc06ae346
1 changed files with 30 additions and 9 deletions

View File

@ -28,6 +28,7 @@ import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.sdk.plugin.Plugin;
import java.math.BigDecimal;
@ -39,6 +40,7 @@ import java.util.stream.Collectors;
* 说明1入库单点击选择采购申请按钮后弹出对应采购申请分录内容后通过选择弹出的采购申请分录行赋值给入库单中
* 2采购申请字段内容修改后清空分录
* 3采购申请字段过滤逻辑加仓库修改后清空采购申请字段
* 4申请人部门根据物资申请人过滤部门
*/
public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
@Override
@ -46,6 +48,8 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
super.registerListener(e);
RefBillEdit purchaseApply = getView().getControl("zcgj_purchaseapply");//采购申请
purchaseApply.addBeforeF7SelectListener(this);
BasedataEdit zcgj_applidepart = getView().getControl("zcgj_applidepart");//申请人部门
zcgj_applidepart.addBeforeF7SelectListener(this);
}
@Override
@ -107,17 +111,34 @@ public class MaterialInbPurchaseApplyPlugin extends AbstractBillPlugIn implement
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
String propertyName = beforeF7SelectEvent.getProperty().getName();
Object fiaccountorg = this.getModel().getValue("fiaccountorg");//财务记账组织
if (fiaccountorg == null) {
this.getView().showErrorNotification("请先填写财务记账组织!!");
beforeF7SelectEvent.setCancel(true);
}
DynamicObject fiaccountorg1 = (DynamicObject) fiaccountorg;//财务记账组织
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
List<QFilter> qFilters = new ArrayList<>();
if (fiaccountorg1 != null) {
qFilters.add(new QFilter("fiaccountorg.id", QCP.in, fiaccountorg1.get("id")));//财务记账组织
String propertyName = beforeF7SelectEvent.getProperty().getName();
if ("zcgj_purchaseapply".equals(propertyName)) {
//采购申请
Object fiaccountorg = this.getModel().getValue("fiaccountorg");//财务记账组织
if (fiaccountorg == null) {
this.getView().showErrorNotification("请先填写财务记账组织!!");
beforeF7SelectEvent.setCancel(true);
}
DynamicObject fiaccountorg1 = (DynamicObject) fiaccountorg;//财务记账组织
if (fiaccountorg1 != null) {
qFilters.add(new QFilter("fiaccountorg.id", QCP.in, fiaccountorg1.get("id")));//财务记账组织
}
} else if ("zcgj_applidepart".equals(propertyName)) {
//申请人部门
Object zcgj_reqperson = this.getModel().getValue("zcgj_reqperson");//申请人
if (zcgj_reqperson == null) {
this.getView().showErrorNotification("请先填写物资申请人!!");
beforeF7SelectEvent.setCancel(true);
}
DynamicObject zcgj_reqperson1 = (DynamicObject) zcgj_reqperson;//申请人
List<Long> ids = new ArrayList<>();
if (zcgj_reqperson1 != null) {
ids = UserServiceHelper.getOrgsUserJoin((Long) zcgj_reqperson1.getPkValue());
}
qFilters.add(new QFilter("id", QCP.in, ids));
formShowParameter.setCustomParam("isIncludeAllSub", "true");//包含下级
}
formShowParameter.getListFilterParameter().setQFilters(qFilters);
}