From bfc9144226f279f5105e4782c363117fc532a49d Mon Sep 17 00:00:00 2001 From: 16358 <1635849544@qq.com> Date: Tue, 29 Apr 2025 12:49:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E5=88=98?= =?UTF-8?q?=E6=A3=AE=E6=BE=B3=20=E6=97=A5=E6=9C=9F=EF=BC=9A2025/4/28=2015?= =?UTF-8?q?=EF=BC=9A30=20=E5=86=85=E5=AE=B9=EF=BC=9A1=E3=80=81=E5=80=BA?= =?UTF-8?q?=E5=88=B8=E5=8F=91=E8=A1=8C=E8=AE=A1=E5=88=92=E8=BF=87=E6=BB=A4?= =?UTF-8?q?F7=E9=80=BB=E8=BE=91=E4=BF=AE=E5=A4=8D=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/tmc/BondSelectEntryOrgPlugin.java | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSelectEntryOrgPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSelectEntryOrgPlugin.java index 1ef3835..00af45d 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSelectEntryOrgPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/tmc/BondSelectEntryOrgPlugin.java @@ -10,6 +10,7 @@ import kd.bos.form.field.events.BeforeF7SelectListener; 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.org.OrgUnitServiceHelper; import kd.bos.servicehelper.org.OrgViewType; import kd.sdk.plugin.Plugin; @@ -68,9 +69,37 @@ public class BondSelectEntryOrgPlugin extends AbstractBillPlugIn implements Plug dataFilter.add(accountQFilter.and(accountQFilter2)); } if("shkd_enryborrower".equals(name)){ - List allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.BDControl, Collections.singletonList(orgId), true); - QFilter accountQFilter = new QFilter("id", QCP.in, allSubordinateOrgs); - dataFilter.add(accountQFilter); + String number = org.getString("number"); + List allSubordinateOrgs = new ArrayList<>(); + //编码为SIG0010000的组织要找到SIG0000000的所有子集 + if("SIG0010000".equals(number)){ + QFilter qFilter = new QFilter("number", "=", "SIG0000000"); + DynamicObject bos_org = BusinessDataServiceHelper.loadSingle("bos_org","id",qFilter.toArray()); + allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.BDControl, Collections.singletonList((Long)bos_org.getPkValue()), false); + QFilter accountQFilter = new QFilter("id", QCP.in, allSubordinateOrgs); + dataFilter.add(accountQFilter); + }else{ + QFilter qFilter = new QFilter("number", "=", number+"-uatierp"); + DynamicObject bos_org = BusinessDataServiceHelper.loadSingle("bos_org","id",qFilter.toArray()); + if(bos_org == null){ + //未找到后缀为uatierp的合并层 正常拿下级 + allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.BDControl, Collections.singletonList(orgId), true); + QFilter accountQFilter = new QFilter("id", QCP.in, allSubordinateOrgs); + dataFilter.add(accountQFilter); + }else { + //找到了后缀为uatierp的合并层 用其当上级找所有下级 然后过滤掉所有后缀为uatierp的值 + allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.BDControl, Collections.singletonList((Long)bos_org.getPkValue()), false); + List demoArr = new ArrayList<>(); + for (Long subId : allSubordinateOrgs) { + QFilter qFilter1 = new QFilter("id", "=", subId); + DynamicObject tempOrg = BusinessDataServiceHelper.loadSingle("bos_org","id,number",qFilter1.toArray()); + if(tempOrg.getString("number").contains("uatierp"))continue; + demoArr.add((Long)tempOrg.getPkValue()); + } + QFilter accountQFilter = new QFilter("id", QCP.in, demoArr); + dataFilter.add(accountQFilter); + } + } } formShowParameter.getListFilterParameter().getQFilters().addAll(dataFilter); }