收款处理自动推送费控定时任务
This commit is contained in:
parent
5a16032353
commit
e20d9c1415
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue