收款单自动下推生成清账单
This commit is contained in:
parent
43ed17df70
commit
254c1fb04a
|
|
@ -59,7 +59,7 @@ public class PaybillPushFkTask extends AbstractTask implements Plugin {
|
|||
OperationResult operationResult = OperationServiceHelper.executeOperate("pushfk", "cas_paybill", billArray, operateOption);
|
||||
// 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等
|
||||
if (operationResult.isSuccess()) {
|
||||
logger.info("执行 pushfk 失败,单据编号:" + dynamicObject.getPkValue());
|
||||
logger.info("执行 pushfk 成功,单据编号:" + dynamicObject.getPkValue());
|
||||
} else {
|
||||
logger.error(operationResult.getMessage());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,83 @@
|
|||
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.sdk.plugin.Plugin;
|
||||
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 定时任务 收款单自动下推生成清账单
|
||||
* @author LiGuiQiang
|
||||
*/
|
||||
public class RecBillToClearBillTask extends AbstractTask implements Plugin {
|
||||
|
||||
private static final Log logger = LogFactory.getLog(RecBillToClearBillTask.class);
|
||||
private static final String srcEntityName = "cas_recbill";//源单 收款单
|
||||
private static final String KEY_STATUS ="billstatus";//单据状态
|
||||
private static final String KEY_ACT_RECT_AMOUNT ="actrecamt";//单据状态
|
||||
private static final String KEY_VOUCHER_NUM ="shjh_vouchernum";//SAP凭证号
|
||||
private static final String KEY_AUDIT_DATE ="auditdate";//审核日期
|
||||
|
||||
|
||||
@Override
|
||||
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
||||
// 【单据状态】=已收款 and
|
||||
// 【SAP凭证号】≠空 and
|
||||
// 【收款金额】>0 and
|
||||
// 【审核日期】T+1日下推T及T之前收款单
|
||||
QFilter qFilter = new QFilter(KEY_STATUS, QCP.equals, "D");
|
||||
qFilter.and(KEY_VOUCHER_NUM, QCP.not_equals, "");
|
||||
qFilter.and(KEY_ACT_RECT_AMOUNT, QCP.large_than, BigDecimal.ZERO);
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(new Date());
|
||||
cal.add(Calendar.DAY_OF_YEAR, -1); // 当前日期减1天
|
||||
Date yesterday = cal.getTime();
|
||||
qFilter.and(KEY_AUDIT_DATE, QCP.less_than, yesterday);
|
||||
|
||||
DynamicObject[] collection = BusinessDataServiceHelper.load(srcEntityName, "id", qFilter.toArray());
|
||||
if (collection.length!=0){
|
||||
ArrayList<Long> ids = new ArrayList<>();
|
||||
for (DynamicObject dynamicObject : collection) {
|
||||
ids.add(dynamicObject.getLong("id"));
|
||||
}
|
||||
Map<Object, DynamicObject> recBillMap = BusinessDataServiceHelper.loadFromCache(ids.toArray(), srcEntityName);
|
||||
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};
|
||||
OperationResult operationResult = OperationServiceHelper.executeOperate("pushclear", srcEntityName, billArray, operateOption);
|
||||
// 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等
|
||||
if (operationResult.isSuccess()) {
|
||||
logger.info("执行 push 成功,单据编号:" + dynamicObject.getPkValue());
|
||||
} else {
|
||||
logger.error(operationResult.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -68,7 +68,7 @@ public class RecPushFiTask extends AbstractTask implements Plugin {
|
|||
OperationResult operationResult = OperationServiceHelper.executeOperate(operationKey, KEY_REC_BILL, billArray, operateOption);
|
||||
// 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等
|
||||
if (operationResult.isSuccess()) {
|
||||
logger.info("执行 pushPayment 失败,单据编号:" + dynamicObject.getPkValue());
|
||||
logger.info("执行 pushPayment 成功,单据编号:" + dynamicObject.getPkValue());
|
||||
} else {
|
||||
logger.error(operationResult.getMessage());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,40 +0,0 @@
|
|||
package shjh.jhzj7.fi.fi.plugin.task;
|
||||
|
||||
import kd.bos.context.RequestContext;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
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.sdk.plugin.Plugin;
|
||||
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 定时任务 收款单自动下推生成清账单
|
||||
* @author LiGuiQiang
|
||||
*/
|
||||
public class ReceBillToClearBillTask extends AbstractTask implements Plugin {
|
||||
private static final String srcEntityName = "cas_recbill";//源单 收款单
|
||||
private static final String destEntityName = "shjh_clear_account";//目标单 清账单
|
||||
|
||||
private static final Log logger = LogFactory.getLog(ReceBillToClearBillTask.class);
|
||||
|
||||
@Override
|
||||
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
||||
//TODO 设置定时任务,按时下推清账单,T+1日下推T及T之前收款单,生成清账单
|
||||
QFilter qFilter = new QFilter("receredtype", QCP.equals, "0");
|
||||
qFilter.and("creditamount", QCP.not_equals, BigDecimal.ZERO);
|
||||
qFilter.and("claimnoticebillno", QCP.equals, "");
|
||||
qFilter.and("billno", QCP.equals, "20250211-0000000094");
|
||||
DynamicObject[] collection = BusinessDataServiceHelper.load(srcEntityName, "id", qFilter.toArray());
|
||||
|
||||
OperationResult operationResult3 = JhzjUtils.push(srcEntityName, destEntityName, null);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue