From e20d9c1415ca1468dad34041a436e3a3ae38b21b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Fri, 14 Mar 2025 10:34:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E5=A4=84=E7=90=86=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=8E=A8=E9=80=81=E8=B4=B9=E6=8E=A7=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/fi/plugin/task/RecPushFiTask.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 main/java/shjh/jhzj7/fi/fi/plugin/task/RecPushFiTask.java diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/RecPushFiTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/RecPushFiTask.java new file mode 100644 index 0000000..2594f82 --- /dev/null +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/RecPushFiTask.java @@ -0,0 +1,78 @@ +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.bos.servicehelper.operation.SaveServiceHelper; +import kd.sdk.plugin.Plugin; +import shjh.jhzj7.fi.fi.plugin.operate.PaymentPushSapOperation; + +import java.util.ArrayList; +import java.util.Map; + +/** + * 后台任务插件 + * 收款处理自动推送费控定时任务 + * @author LiGuiQiang + */ +public class RecPushFiTask extends AbstractTask implements Plugin { + + private final static Log logger = LogFactory.getLog(RecPushFiTask.class); + + private static final String KEY_RECEIVING_TYPE="receivingtype.number"; + + private static final String KEY_VOUCHER_NUM="shjh_vouchernum"; + + private static final String KEY_REC_BILL="cas_recbill"; + + + + @Override + public void execute(RequestContext requestContext, Map map) throws KDException { + //获取所有符合要求的收款处理单 + ArrayList typeList = new ArrayList<>(); + typeList.add("109"); + typeList.add("103"); + QFilter qFilter = new QFilter(KEY_RECEIVING_TYPE, QCP.in, typeList); + qFilter.and(new QFilter(KEY_VOUCHER_NUM,QCP.not_equals,"")); + DynamicObject[] recBillList = BusinessDataServiceHelper.load(KEY_REC_BILL, "id", qFilter.toArray()); + if (recBillList.length!=0){ + ArrayList ids = new ArrayList<>(); + for (DynamicObject dynamicObject : recBillList) { + ids.add(dynamicObject.getLong("id")); + } + Map recBillMap = BusinessDataServiceHelper.loadFromCache(ids.toArray(), KEY_REC_BILL); + 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}; + String operationKey= "103".equals(dynamicObject.getString(KEY_RECEIVING_TYPE)) ? "pushpayment":"pushloan"; + OperationResult operationResult = OperationServiceHelper.executeOperate(operationKey, KEY_REC_BILL, billArray, operateOption); + // 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 + if (operationResult.isSuccess()) { + logger.info("执行 pushPayment 失败,单据编号:" + dynamicObject.getPkValue()); + } else { + logger.error(operationResult.getMessage()); + } + } + } + } +} \ No newline at end of file