付款申请自动下推:增加过滤、批量下推
This commit is contained in:
parent
e12d9ed338
commit
585d18afd8
|
|
@ -16,10 +16,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|||
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 定时任务 付款申请定时生成付款单
|
||||
|
|
@ -36,7 +33,6 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin {
|
|||
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
||||
// 【单据状态】=已审核
|
||||
QFilter qFilter = new QFilter("billstatus", QCP.equals, "C");
|
||||
|
||||
DynamicObject[] collection = BusinessDataServiceHelper.load(AP_PAYAPPLY, "id,billstatus", qFilter.toArray());
|
||||
if (collection.length!=0){
|
||||
ArrayList<Long> ids = new ArrayList<>();
|
||||
|
|
@ -53,6 +49,9 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin {
|
|||
//operateOption.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(true));
|
||||
//同一个用户在多个界面操作同一张,也不允许操作
|
||||
operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true));
|
||||
|
||||
List<DynamicObject> qualifiedBills = new ArrayList<>();
|
||||
|
||||
for (DynamicObject dynamicObject : recBillMap.values()) {
|
||||
// 注意:executeOperate 需要一个数组形式的 DynamicObject[]
|
||||
DynamicObjectCollection entry = dynamicObject.getDynamicObjectCollection("entry");
|
||||
|
|
@ -63,17 +62,26 @@ public class PayApplyFukuanTask extends AbstractTask implements Plugin {
|
|||
//判断是否存在数据在下推期间范围(到期日是当前月月底前)
|
||||
boolean expirationDateFilter = expirationDateFilter(entry);
|
||||
if (!supplierFilter && expirationDateFilter){
|
||||
DynamicObject[] billArray = new DynamicObject[]{dynamicObject};
|
||||
OperationResult operationResult = OperationServiceHelper.executeOperate("pushandsave", AP_PAYAPPLY, billArray, operateOption);
|
||||
// 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等
|
||||
if (operationResult.isSuccess()) {
|
||||
logger.info("执行 pay 成功,单据编号:" + dynamicObject.getPkValue());
|
||||
} else {
|
||||
logger.error(operationResult.getMessage());
|
||||
}
|
||||
qualifiedBills.add(dynamicObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!qualifiedBills.isEmpty()){
|
||||
DynamicObject[] billArray = qualifiedBills.toArray(new DynamicObject[0]);
|
||||
OperationResult operationResult = OperationServiceHelper.executeOperate("pushandsave", AP_PAYAPPLY, billArray, operateOption);
|
||||
// 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等
|
||||
if (operationResult.isSuccess()) {
|
||||
logger.info("执行 pay 成功,共处理单据数量:" + qualifiedBills.size());
|
||||
// Log individual successful bills if needed
|
||||
for (DynamicObject bill : qualifiedBills) {
|
||||
logger.info("成功单据编号:" + bill.getPkValue());
|
||||
}
|
||||
} else {
|
||||
logger.error("批量下推失败:" + operationResult.getMessage());
|
||||
}
|
||||
}else {
|
||||
logger.info("没有符合条件的单据需要下推");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue