From f5b83b25746f8b95062b81c1e6da52d823063b69 Mon Sep 17 00:00:00 2001 From: zengweihai Date: Mon, 24 Jun 2024 14:19:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E9=A1=B9=E7=9B=AE=E5=8F=8A?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E4=BA=8B=E9=A1=B9=E5=B7=A6=E4=BE=A7=E6=A0=91?= =?UTF-8?q?=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommonBillOsPaymentBillFormPlugin.java | 16 ++++++++++++++++ .../CommonExpenseItemBillFormPlugin.java | 19 ++++++++++++++----- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonBillOsPaymentBillFormPlugin.java b/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonBillOsPaymentBillFormPlugin.java index 0a6539b..4670383 100644 --- a/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonBillOsPaymentBillFormPlugin.java +++ b/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonBillOsPaymentBillFormPlugin.java @@ -16,6 +16,7 @@ import shkd.cosmic.cxkg.task.HrmDepartmentTaskImpl; import java.util.ArrayList; import java.util.EventObject; +import java.util.HashSet; /** * 单据界面插件 @@ -80,6 +81,7 @@ public class CommonBillOsPaymentBillFormPlugin extends AbstractBillPlugIn implem QF.and("enable",QCP.equals,"1");//使用状态为可用 logger.info("过滤条件单据类型为"+billType+",组织名称为:"+orgName); ArrayList paymentNumbers = new ArrayList<>(); + HashSet sets = new HashSet(); DynamicObject[] loads = BusinessDataServiceHelper.load("shkd_paymatter", "id,shkd_paymatterinfo.number", QF.toArray()); for (DynamicObject load : loads) { String paymentNumber = load.getString("shkd_paymatterinfo.number");//由于辅助资料包含的付款事项可能存在非叶子节点的情况。查询对象的下级叶子对象。 @@ -90,6 +92,10 @@ public class CommonBillOsPaymentBillFormPlugin extends AbstractBillPlugIn implem DynamicObject[] datum = BusinessDataServiceHelper.load("bos_assistantdata_detail", "id,number,longnumber,level", QFSon.toArray()); for (DynamicObject data : datum) { String longnumber = data.getString("longnumber");//长编码 + String[] split = longnumber.split("!"); + for (String str : split) { + sets.add(str); + } logger.info("该付款事项长编码为"+longnumber); if (data.getInt("level")>1){ int index = longnumber.indexOf("!"); @@ -110,11 +116,21 @@ public class CommonBillOsPaymentBillFormPlugin extends AbstractBillPlugIn implem logger.info("付款事项编码集合为"+paymentNumbers.toString()); QFilter qF = new QFilter("number", QCP.in,paymentNumbers); ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + QFilter Qf= new QFilter("number", QCP.in, sets); + ArrayList objects = new ArrayList(); + objects.add(Qf); + formShowParameter.getTreeFilterParameter().setQFilters(objects); formShowParameter.getListFilterParameter().setFilter(qF); }else { beforeF7SelectEvent.setCancel(true); this.getView().showTipNotification("此类型单据无关联付款事项"); } + + QFilter qFilter = new QFilter("number", QCP.equals, "CF0001"); + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + ArrayList objects = new ArrayList(); + objects.add(qFilter); + formShowParameter.getTreeFilterParameter().setQFilters(objects); } } diff --git a/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonExpenseItemBillFormPlugin.java b/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonExpenseItemBillFormPlugin.java index 0573496..58288a7 100644 --- a/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonExpenseItemBillFormPlugin.java +++ b/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonExpenseItemBillFormPlugin.java @@ -14,10 +14,7 @@ import kd.bos.servicehelper.QueryServiceHelper; import kd.bos.util.StringUtils; import kd.sdk.plugin.Plugin; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.EventObject; -import java.util.List; +import java.util.*; /** * 单据界面插件 @@ -83,23 +80,35 @@ public class CommonExpenseItemBillFormPlugin extends AbstractBillPlugIn implemen } ArrayList paymentIds = new ArrayList<>(); + HashSet sets = new HashSet(); QFilter qFilter = new QFilter("shkd_paymatterinfo.number", QCP.equals, paymentNumber); qFilter.and("enable",QCP.equals,"1");//使用状态为可用 - DynamicObject[] loads = BusinessDataServiceHelper.load("shkd_accountlinkmatter","id,shkd_expenseitem.id",qFilter.toArray()); + DynamicObject[] loads = BusinessDataServiceHelper.load("shkd_accountlinkmatter","id,shkd_expenseitem.id,shkd_expenseitem.longnumber",qFilter.toArray()); for (DynamicObject load : loads) { long aLong = load.getLong("shkd_expenseitem.id"); paymentIds.add(aLong); + String longnumber = load.getString("shkd_expenseitem.longnumber"); + String[] split = longnumber.split("!"); + for (String str : split) { + sets.add(str); + } } if (!paymentIds.isEmpty()){ QFilter qF = new QFilter("id", QCP.in,paymentIds); ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + + QFilter QF= new QFilter("number", QCP.in, sets); + ArrayList objects = new ArrayList(); + objects.add(QF); + formShowParameter.getTreeFilterParameter().setQFilters(objects); formShowParameter.getListFilterParameter().setFilter(qF); }else { beforeF7SelectEvent.setCancel(true); this.getView().showTipNotification("该付款事项未关联费用项目"); } } + } }