收款处理自动推送费控定时任务

This commit is contained in:
李贵强 2025-03-14 10:34:43 +08:00
parent 5a16032353
commit e20d9c1415
1 changed files with 78 additions and 0 deletions

View File

@ -0,0 +1,78 @@
package shjh.jhzj7.fi.fi.plugin.task;
import kd.bos.context.RequestContext;
import kd.bos.dataentity.OperateOption;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.operate.OperateOptionConst;
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.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
import shjh.jhzj7.fi.fi.plugin.operate.PaymentPushSapOperation;
import java.util.ArrayList;
import java.util.Map;
/**
* 后台任务插件
* 收款处理自动推送费控定时任务
* @author LiGuiQiang
*/
public class RecPushFiTask extends AbstractTask implements Plugin {
private final static Log logger = LogFactory.getLog(RecPushFiTask.class);
private static final String KEY_RECEIVING_TYPE="receivingtype.number";
private static final String KEY_VOUCHER_NUM="shjh_vouchernum";
private static final String KEY_REC_BILL="cas_recbill";
@Override
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
//获取所有符合要求的收款处理单
ArrayList<String> typeList = new ArrayList<>();
typeList.add("109");
typeList.add("103");
QFilter qFilter = new QFilter(KEY_RECEIVING_TYPE, QCP.in, typeList);
qFilter.and(new QFilter(KEY_VOUCHER_NUM,QCP.not_equals,""));
DynamicObject[] recBillList = BusinessDataServiceHelper.load(KEY_REC_BILL, "id", qFilter.toArray());
if (recBillList.length!=0){
ArrayList<Long> ids = new ArrayList<>();
for (DynamicObject dynamicObject : recBillList) {
ids.add(dynamicObject.getLong("id"));
}
Map<Object, DynamicObject> recBillMap = BusinessDataServiceHelper.loadFromCache(ids.toArray(), KEY_REC_BILL);
OperateOption operateOption = OperateOption.create();
// 不执行警告级别校验器
operateOption.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true));
// 不显示交互提示自动执行到底
operateOption.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true));
// 全部校验通过才保存
operateOption.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(true));
//同一个用户在多个界面操作同一张也不允许操作
operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true));
for (DynamicObject dynamicObject : recBillMap.values()) {
// 注意executeOperate 需要一个数组形式的 DynamicObject[]
DynamicObject[] billArray = new DynamicObject[]{dynamicObject};
String operationKey= "103".equals(dynamicObject.getString(KEY_RECEIVING_TYPE)) ? "pushpayment":"pushloan";
OperationResult operationResult = OperationServiceHelper.executeOperate(operationKey, KEY_REC_BILL, billArray, operateOption);
// 可以根据需要处理 operationResult例如检查是否成功获取返回值等
if (operationResult.isSuccess()) {
logger.info("执行 pushPayment 失败,单据编号:" + dynamicObject.getPkValue());
} else {
logger.error(operationResult.getMessage());
}
}
}
}
}