package kd.cosmic.jkjt.fi.cas.task; import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.exception.KDException; 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.entity.operate.result.OperationResult; import kd.bos.dataentity.OperateOption; import java.util.Date; import java.util.Map; /** * @author turborao * @date 2023/05/04 * @description 调度任务类,用于未开通CBS银企接口且未报备的银行账户,按预计开通CBS日期进行自动冻结。 */ public class AutoAccountbankFreezeTask extends AbstractTask { @Override public void execute(RequestContext requestContext, Map map) throws KDException { /** * 账户查询单据标识nckd_am_accountbank_ext * 过滤字段: * 开通CBS银企接口=否,nckd_issetcbs=0 * 未开通CBS是否报备=否,nckd_isreport=0 * 执行冻结日期:预计开通CBS日期,nckd_excbsdate */ String cbsOpen = "0"; ///String cbsReport = "0"; String ENTITY_NAME = "am_accountbank"; QFilter filter1 = new QFilter("nckd_issetcbs", QCP.equals, cbsOpen); ////QFilter filter2 = new QFilter("nckd_isreport", QCP.equals, cbsReport); QFilter[] filters = new QFilter[]{filter1}; DynamicObject[] billEntities = BusinessDataServiceHelper.load(ENTITY_NAME, "id,billno,nckd_excbsdate", filters); for (DynamicObject dataEntity : billEntities) { Date excbsdate = dataEntity.getDate("nckd_excbsdate"); if(excbsdate!=null && DateUtils.compareByDay(DateUtils.getDateAfterAddDays(excbsdate,1),DateUtils.getCurrentDate())<=0){ DynamicObject bankBillEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), ENTITY_NAME); OperateOption option = OperateOption.create(); ///增加调用参数 option.setVariableValue("createOrg",bankBillEntity.getDynamicObject("company").getPkValue().toString()); ///执行账户管理的冻结操作 OperationResult result = OperationServiceHelper.executeOperate("freeze", ENTITY_NAME, new DynamicObject[] { bankBillEntity }, option); } } } }