lc/lc123/cloud/app/plugin/task/ContractScheduledEffTask.java

67 lines
2.6 KiB
Java

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.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 java.time.LocalDate;
import java.time.LocalDateTime;
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<String, Object> 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("合同定时生效执行失败");
}
}
}