From 585d18afd8c45bae00c60a8d58927c364c2ad677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Thu, 26 Jun 2025 15:53:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=98=E6=AC=BE=E7=94=B3=E8=AF=B7=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E4=B8=8B=E6=8E=A8=EF=BC=9A=E5=A2=9E=E5=8A=A0=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E3=80=81=E6=89=B9=E9=87=8F=E4=B8=8B=E6=8E=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/fi/plugin/task/PayApplyFukuanTask.java | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 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 ccfe14e..d908a42 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/PayApplyFukuanTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/PayApplyFukuanTask.java @@ -16,10 +16,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.sdk.plugin.Plugin; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.Map; +import java.util.*; /** * 定时任务 付款申请定时生成付款单 @@ -36,7 +33,6 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin { public void execute(RequestContext requestContext, Map map) throws KDException { // 【单据状态】=已审核 QFilter qFilter = new QFilter("billstatus", QCP.equals, "C"); - DynamicObject[] collection = BusinessDataServiceHelper.load(AP_PAYAPPLY, "id,billstatus", qFilter.toArray()); if (collection.length!=0){ ArrayList ids = new ArrayList<>(); @@ -53,6 +49,9 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin { //operateOption.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(true)); //同一个用户在多个界面操作同一张,也不允许操作 operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true)); + + List qualifiedBills = new ArrayList<>(); + for (DynamicObject dynamicObject : recBillMap.values()) { // 注意:executeOperate 需要一个数组形式的 DynamicObject[] DynamicObjectCollection entry = dynamicObject.getDynamicObjectCollection("entry"); @@ -63,17 +62,26 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin { //判断是否存在数据在下推期间范围(到期日是当前月月底前) boolean expirationDateFilter = expirationDateFilter(entry); if (!supplierFilter && expirationDateFilter){ - DynamicObject[] billArray = new DynamicObject[]{dynamicObject}; - OperationResult operationResult = OperationServiceHelper.executeOperate("pushandsave", AP_PAYAPPLY, billArray, operateOption); - // 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 - if (operationResult.isSuccess()) { - logger.info("执行 pay 成功,单据编号:" + dynamicObject.getPkValue()); - } else { - logger.error(operationResult.getMessage()); - } + qualifiedBills.add(dynamicObject); } } } + if (!qualifiedBills.isEmpty()){ + DynamicObject[] billArray = qualifiedBills.toArray(new DynamicObject[0]); + OperationResult operationResult = OperationServiceHelper.executeOperate("pushandsave", AP_PAYAPPLY, billArray, operateOption); + // 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 + if (operationResult.isSuccess()) { + logger.info("执行 pay 成功,共处理单据数量:" + qualifiedBills.size()); + // Log individual successful bills if needed + for (DynamicObject bill : qualifiedBills) { + logger.info("成功单据编号:" + bill.getPkValue()); + } + } else { + logger.error("批量下推失败:" + operationResult.getMessage()); + } + }else { + logger.info("没有符合条件的单据需要下推"); + } } }