12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 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<String, Object> 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);
- }
- }
- }
- }
|