From 254c1fb04a99b66ce399453cdf23459f8f224d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Tue, 18 Mar 2025 17:36:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E5=8D=95=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E4=B8=8B=E6=8E=A8=E7=94=9F=E6=88=90=E6=B8=85=E8=B4=A6=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/fi/plugin/task/PaybillPushFkTask.java | 2 +- .../plugin/task/RecBillToClearBillTask.java | 83 +++++++++++++++++++ .../fi/fi/plugin/task/RecPushFiTask.java | 2 +- .../plugin/task/ReceBillToClearBillTask.java | 40 --------- 4 files changed, 85 insertions(+), 42 deletions(-) create mode 100644 main/java/shjh/jhzj7/fi/fi/plugin/task/RecBillToClearBillTask.java delete mode 100644 main/java/shjh/jhzj7/fi/fi/plugin/task/ReceBillToClearBillTask.java diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/PaybillPushFkTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/PaybillPushFkTask.java index 3d21c9e..2b459a4 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/PaybillPushFkTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/PaybillPushFkTask.java @@ -59,7 +59,7 @@ public class PaybillPushFkTask extends AbstractTask implements Plugin { OperationResult operationResult = OperationServiceHelper.executeOperate("pushfk", "cas_paybill", billArray, operateOption); // 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 if (operationResult.isSuccess()) { - logger.info("执行 pushfk 失败,单据编号:" + dynamicObject.getPkValue()); + logger.info("执行 pushfk 成功,单据编号:" + dynamicObject.getPkValue()); } else { logger.error(operationResult.getMessage()); } diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/RecBillToClearBillTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/RecBillToClearBillTask.java new file mode 100644 index 0000000..224f7e4 --- /dev/null +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/RecBillToClearBillTask.java @@ -0,0 +1,83 @@ +package shjh.jhzj7.fi.fi.plugin.task; + +import kd.bos.context.RequestContext; +import kd.bos.dataentity.OperateOption; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.operate.OperateOptionConst; +import kd.bos.entity.operate.result.OperationResult; +import kd.bos.exception.KDException; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +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.operation.OperationServiceHelper; +import kd.sdk.plugin.Plugin; +import shjh.jhzj7.fi.fi.utils.JhzjUtils; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.Map; + +/** + * 定时任务 收款单自动下推生成清账单 + * @author LiGuiQiang + */ +public class RecBillToClearBillTask extends AbstractTask implements Plugin { + + private static final Log logger = LogFactory.getLog(RecBillToClearBillTask.class); + private static final String srcEntityName = "cas_recbill";//源单 收款单 + private static final String KEY_STATUS ="billstatus";//单据状态 + private static final String KEY_ACT_RECT_AMOUNT ="actrecamt";//单据状态 + private static final String KEY_VOUCHER_NUM ="shjh_vouchernum";//SAP凭证号 + private static final String KEY_AUDIT_DATE ="auditdate";//审核日期 + + + @Override + public void execute(RequestContext requestContext, Map map) throws KDException { + // 【单据状态】=已收款 and + // 【SAP凭证号】≠空 and + // 【收款金额】>0 and + // 【审核日期】T+1日下推T及T之前收款单 + QFilter qFilter = new QFilter(KEY_STATUS, QCP.equals, "D"); + qFilter.and(KEY_VOUCHER_NUM, QCP.not_equals, ""); + qFilter.and(KEY_ACT_RECT_AMOUNT, QCP.large_than, BigDecimal.ZERO); + Calendar cal = Calendar.getInstance(); + cal.setTime(new Date()); + cal.add(Calendar.DAY_OF_YEAR, -1); // 当前日期减1天 + Date yesterday = cal.getTime(); + qFilter.and(KEY_AUDIT_DATE, QCP.less_than, yesterday); + + DynamicObject[] collection = BusinessDataServiceHelper.load(srcEntityName, "id", qFilter.toArray()); + if (collection.length!=0){ + ArrayList ids = new ArrayList<>(); + for (DynamicObject dynamicObject : collection) { + ids.add(dynamicObject.getLong("id")); + } + Map recBillMap = BusinessDataServiceHelper.loadFromCache(ids.toArray(), srcEntityName); + OperateOption operateOption = OperateOption.create(); + // 不执行警告级别校验器 + operateOption.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true)); + // 不显示交互提示,自动执行到底 + operateOption.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true)); + // 全部校验通过才保存 + operateOption.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(true)); + //同一个用户在多个界面操作同一张,也不允许操作 + operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true)); + for (DynamicObject dynamicObject : recBillMap.values()) { + // 注意:executeOperate 需要一个数组形式的 DynamicObject[] + DynamicObject[] billArray = new DynamicObject[]{dynamicObject}; + OperationResult operationResult = OperationServiceHelper.executeOperate("pushclear", srcEntityName, billArray, operateOption); + // 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 + if (operationResult.isSuccess()) { + logger.info("执行 push 成功,单据编号:" + dynamicObject.getPkValue()); + } else { + logger.error(operationResult.getMessage()); + } + } + } + } +} diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/RecPushFiTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/RecPushFiTask.java index 2594f82..e7c2960 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/RecPushFiTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/RecPushFiTask.java @@ -68,7 +68,7 @@ public class RecPushFiTask extends AbstractTask implements Plugin { OperationResult operationResult = OperationServiceHelper.executeOperate(operationKey, KEY_REC_BILL, billArray, operateOption); // 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 if (operationResult.isSuccess()) { - logger.info("执行 pushPayment 失败,单据编号:" + dynamicObject.getPkValue()); + logger.info("执行 pushPayment 成功,单据编号:" + dynamicObject.getPkValue()); } else { logger.error(operationResult.getMessage()); } diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/ReceBillToClearBillTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/ReceBillToClearBillTask.java deleted file mode 100644 index b3346cb..0000000 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/ReceBillToClearBillTask.java +++ /dev/null @@ -1,40 +0,0 @@ -package shjh.jhzj7.fi.fi.plugin.task; - -import kd.bos.context.RequestContext; -import kd.bos.dataentity.entity.DynamicObject; -import kd.bos.entity.operate.result.OperationResult; -import kd.bos.exception.KDException; -import kd.bos.logging.Log; -import kd.bos.logging.LogFactory; -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.sdk.plugin.Plugin; -import shjh.jhzj7.fi.fi.utils.JhzjUtils; - -import java.math.BigDecimal; -import java.util.Map; - -/** - * 定时任务 收款单自动下推生成清账单 - * @author LiGuiQiang - */ -public class ReceBillToClearBillTask extends AbstractTask implements Plugin { - private static final String srcEntityName = "cas_recbill";//源单 收款单 - private static final String destEntityName = "shjh_clear_account";//目标单 清账单 - - private static final Log logger = LogFactory.getLog(ReceBillToClearBillTask.class); - - @Override - public void execute(RequestContext requestContext, Map map) throws KDException { - //TODO 设置定时任务,按时下推清账单,T+1日下推T及T之前收款单,生成清账单 - QFilter qFilter = new QFilter("receredtype", QCP.equals, "0"); - qFilter.and("creditamount", QCP.not_equals, BigDecimal.ZERO); - qFilter.and("claimnoticebillno", QCP.equals, ""); - qFilter.and("billno", QCP.equals, "20250211-0000000094"); - DynamicObject[] collection = BusinessDataServiceHelper.load(srcEntityName, "id", qFilter.toArray()); - - OperationResult operationResult3 = JhzjUtils.push(srcEntityName, destEntityName, null); - } -}