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