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("没有符合条件的单据需要下推"); + } } }