From 341315c1875440c5e90f45c79bd10ed323493ff0 Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Mon, 25 Aug 2025 11:10:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=AC=BE=E7=94=B3=E8=AF=B7=E5=8D=95?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E8=B4=B9=E7=94=A8=E6=89=BF=E6=8B=85=E9=83=A8?= =?UTF-8?q?=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/PaymentApplicationPlugin.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) 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 96c7f90..b4bd045 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 @@ -24,6 +24,8 @@ 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.QueryServiceHelper; +import kd.bos.servicehelper.org.OrgUnitServiceHelper; import kd.bos.servicehelper.user.UserServiceHelper; import kd.fi.er.business.bean.CostDeptF7ChangePram; import kd.fi.er.business.servicehelper.CoreBaseBillServiceHelper; @@ -52,6 +54,9 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta zcgj_org.addBeforeF7SelectListener(this); AttachmentPanel panel = getControl("attachmentpanel");//附件 panel.addOperaClickListener(this); + + BasedataEdit zcgj_costcompany = this.getView().getControl("zcgj_costcompany");//费用承担公司 + zcgj_costcompany.addBeforeF7SelectListener(this); } @Override @@ -138,6 +143,16 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta formShowParameter.setCustomParam("isIncludeAllSub", "true"); } } + }else if("zcgj_costcompany".equals(propertyName)){ //费用承担公司过滤 + DynamicObject zcgjDepartment = (DynamicObject) this.getModel().getValue("zcgj_department"); + if (zcgjDepartment != null) { + List id = findCostCompanysByCostDept(zcgjDepartment.getLong("id")); + if(id!=null && !id.isEmpty()){ + List qFilter = new ArrayList<>(); + qFilter.add(new QFilter("id", QCP.in, id)); + formShowParameter.getListFilterParameter().setQFilters(qFilter); + } + } } } @@ -247,4 +262,36 @@ public class PaymentApplicationPlugin extends AbstractBillPlugIn implements Atta } } + + public static List findCostCompanysByCostDept(Long deptID) { + ArrayList deptIDs = new ArrayList(); + deptIDs.add(deptID); + List selectIds = OrgUnitServiceHelper.getAdminOrgRelation(deptIDs, false); + QFilter treeTypeFilter = new QFilter("view.treetype", "=", "10"); + QFilter isDefaultViewFilter = new QFilter("view.isdefault", "=", Boolean.TRUE); + QFilter isbizunitFilter = new QFilter("isbizunit", "=", Boolean.TRUE); + QFilter orgFilter = null; + QFilter[] filters = null; + DynamicObject orgInfo = null; + Long costCompany = null; + + List parents; + for(String orgFunction = "01"; costCompany == null; deptID = (Long)parents.get(0)) { + orgFilter = new QFilter("org", "=", deptID); + filters = new QFilter[]{treeTypeFilter, isDefaultViewFilter, orgFilter, isbizunitFilter}; + orgInfo = QueryServiceHelper.queryOne("bos_org_structure", "org", filters); + if (orgInfo != null) { + costCompany = ErCommonUtils.getPk(orgInfo.get("org")); + selectIds.add(costCompany); + break; + } + + parents = OrgUnitServiceHelper.getSuperiorOrgs(orgFunction, deptID); + if (parents == null || parents.isEmpty()) { + break; + } + } + + return selectIds; + } }