From bb3f01dc77449bdcf7ec5dfa908df8cc8d3e4b12 Mon Sep 17 00:00:00 2001 From: pan-houxiang <2663608154@qq.com> Date: Wed, 19 Nov 2025 17:07:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E4=BA=86=E4=B8=AA=E5=90=88=E5=90=8C?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E7=94=9F=E6=95=88=EF=BC=88=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=9C=AA=E7=94=9F=E6=95=88=E3=80=81=E4=B8=BA=E4=BD=9C=E5=BA=9F?= =?UTF-8?q?=EF=BC=8C=E5=B7=B2=E5=AE=A1=E6=A0=B8=E3=80=81=E8=B5=B7=E5=A7=8B?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E7=AD=89=E4=BA=8E=E5=BD=93=E5=A4=A9=E7=9A=84?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=90=88=E5=90=8C=EF=BC=8C=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E7=94=9F=E6=95=88=E6=93=8D=E4=BD=9C=EF=BC=89=EF=BC=8C=E7=B1=BB?= =?UTF-8?q?=E5=90=8DContractScheduledEffTask?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/task/ContractScheduledEffTask.java | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 lc123/cloud/app/plugin/task/ContractScheduledEffTask.java diff --git a/lc123/cloud/app/plugin/task/ContractScheduledEffTask.java b/lc123/cloud/app/plugin/task/ContractScheduledEffTask.java new file mode 100644 index 0000000..0e4bfaf --- /dev/null +++ b/lc123/cloud/app/plugin/task/ContractScheduledEffTask.java @@ -0,0 +1,75 @@ +package tqq9.lc123.cloud.app.plugin.task; + +import kd.bos.context.RequestContext; +import kd.bos.dataentity.OperateOption; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.operate.result.OperationResult; +import kd.bos.exception.KDBizException; +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.scmc.conm.business.service.cooperate.impl.CooperateServiceExecutor; +import kd.scmc.conm.business.service.cooperate.pojo.CooperateResponse; +import kd.sdk.plugin.Plugin; +import tqq9.lc123.cloud.app.plugin.operate.conm.PurconmAuditToFLOp; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.Date; +import java.util.Map; + + +/** + * 后台任务插件 + * 处理合同定时生效 + */ +public class ContractScheduledEffTask extends AbstractTask implements Plugin { + private final static Log logger = LogFactory.getLog(ContractScheduledEffTask.class); + + @Override + public void execute(RequestContext requestContext, Map map) throws KDException { + //获取未生效、为作废,已审核、起始日期等于当天的采购合同 + //1.未作废 + QFilter f1 = new QFilter("cancelstatus", QCP.equals, "A"); + //2.未生效 + QFilter f2 = new QFilter("validstatus", QCP.equals, "A"); + //3.已审核 + QFilter f3 = new QFilter("billstatus", QCP.equals, "C"); + //4.起始日期等于当前日期 + LocalDateTime now = LocalDateTime.now(); + LocalDate today = now.toLocalDate(); + QFilter f4 = new QFilter("biztimebegin", QCP.equals, today); + //查询这类过滤条件下的采购合同 + QFilter[] filters = new QFilter[]{f1, f2, f3, f4}; + DynamicObject[] purcontracts = BusinessDataServiceHelper.load("conm_purcontract", "id,billno,validstatus", filters); + if (purcontracts == null || purcontracts.length == 0) { + return; + } + OperateOption option = OperateOption.create(); + for (int i = 0; i < purcontracts.length; i++) { + DynamicObject purcontract = purcontracts[i]; + purcontract = BusinessDataServiceHelper.loadSingle(purcontract.getPkValue(), purcontract.getDynamicObjectType().getName()); + purcontracts[i] = purcontract; + } + OperationResult result = OperationServiceHelper.executeOperate("bizvalid", + "conm_purcontract", + purcontracts, + option); + + if (result.isSuccess()) { + logger.info("合同定时生效执行成功"); + } else { + logger.info("合同定时生效执行失败"); + } + + + } +} \ No newline at end of file