From 82b76f07566c5620d309dd98012b75688cf323df Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Wed, 9 Jul 2025 17:26:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=82=E6=9E=9C=E4=BB=98=E6=AC=BE=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E5=8D=95=E6=9C=89=E4=B8=8B=E6=B8=B8=E6=8E=92=E7=A8=8B?= =?UTF-8?q?=E5=8D=95=E4=B8=94=E6=8E=92=E7=A8=8B=E5=8D=95=E6=98=AF=E5=B7=B2?= =?UTF-8?q?=E9=80=80=E5=8D=95=EF=BC=8C=E5=88=99=E8=AF=B4=E6=98=8E=E8=BF=99?= =?UTF-8?q?=E4=B8=AA=E4=BB=98=E6=AC=BE=E7=94=B3=E8=AF=B7=E5=8D=95=E4=B8=8D?= =?UTF-8?q?=E7=94=A8=E5=86=8D=E4=B8=8B=E6=8E=A8=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/fi/plugin/task/PayApplyFukuanTask.java | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/PayApplyFukuanTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/PayApplyFukuanTask.java index b8f5ab3..7236faf 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/PayApplyFukuanTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/PayApplyFukuanTask.java @@ -13,6 +13,7 @@ import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.schedule.executor.AbstractTask; import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.QueryServiceHelper; import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.sdk.plugin.Plugin; @@ -51,18 +52,20 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin { //同一个用户在多个界面操作同一张,也不允许操作 operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true)); - List qualifiedBills = new ArrayList<>(); - + List qualifiedBills = new ArrayList<>();//需要下推的付款申请单的集合 + DynamicObjectCollection entry; + boolean scheduleflag; for (DynamicObject dynamicObject : recBillMap.values()) { // 注意:executeOperate 需要一个数组形式的 DynamicObject[] - DynamicObjectCollection entry = dynamicObject.getDynamicObjectCollection("entry"); + entry = dynamicObject.getDynamicObjectCollection("entry"); if (entry!=null && entry.size()!=0){ //判断是否集团内-境内外供应商(外部系统单据类型=I,返回false) - DynamicObject entryObj = entry.get(0); - boolean supplierFilter = supplierFilter(dynamicObject,entryObj); + boolean supplierFilter = supplierFilter(dynamicObject,entry.get(0)); //判断是否存在数据在下推期间范围(到期日是当前月月底前) boolean expirationDateFilter = expirationDateFilter(entry); - if (!supplierFilter && expirationDateFilter){ + //如果付款申请单有下游排程单且排程单是已退单,则说明这个付款申请单不用再下推了 + scheduleflag = scheduleFilter(dynamicObject.getLong("id")); + if (!supplierFilter && expirationDateFilter && scheduleflag){ qualifiedBills.add(dynamicObject); } } @@ -86,6 +89,19 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin { } } + private boolean scheduleFilter(Long payrequestid){ + //如果付款申请单有下游排程单且排程单是已退单,则说明这个付款申请单不用再下推了,返回false + //否则返回true继续下推 + //付款申请单的id存于排程单的sourcebillid中 如果id无效果,则用sourcebillnumber 对应付款申请单的billno + QFilter sqfilter = new QFilter("sourcebillid", QCP.equals, payrequestid); + sqfilter.and("schedulstatus", QCP.equals, "yetchargeback");//排程状态已退单 + if (QueryServiceHelper.exists("psd_schedulebill", sqfilter.toArray())) { + return false; + } + return true; + } + + //entry为付款申请单的第一行 private boolean supplierFilter(DynamicObject dynamicObject,DynamicObject entry){ boolean isFilterSupplier = false; //如果外部系统单据类型=I,直接返回false