- 优化todo

- 付款申请定时生成付款单
- 配置表(or逻辑)
--s
This commit is contained in:
weiyunlong 2025-04-17 00:06:40 +08:00
parent 903b495259
commit b6f0bd3a84
7 changed files with 85 additions and 14 deletions

View File

@ -97,8 +97,8 @@ public class ScheduleListPlugin extends AbstractListPlugin {
if (null!= bill.getDynamicObject("creator")) {
cname = bill.getDynamicObject("creator").getString("number");//创建人工号_申请人
}
//jsonObject.put("cname", cname);//创建人工号
jsonObject.put("cname", "GH001657");//todo:创建人工号
jsonObject.put("cname", cname);//创建人工号
// jsonObject.put("cname", "GH001657");//创建人工号
jsonObject.put("zjddjid", "" + bill.getPkValue());
jsonObject.put("zjddjbh", bill.getString("billno"));
IT_INPUT.add(jsonObject);

View File

@ -52,8 +52,8 @@ public class PayApplyDeleteOperation extends AbstractOperationServicePlugIn impl
if (null!= bill.getDynamicObject("creator")) {
cname = bill.getDynamicObject("creator").getString("number");//创建人工号_申请人
}
// jsonObject.put("cname", cname);//创建人工号
jsonObject.put("cname", "GH001657");//todo:创建人工号
jsonObject.put("cname", cname);//创建人工号
// jsonObject.put("cname", "GH001657");//创建人工号
jsonObject.put("zjddjid", ""+bill.getPkValue());//金蝶单据ID
jsonObject.put("zjddjbh", bill.getString("billno"));//金蝶单据编号
IT_INPUT.add(jsonObject);

View File

@ -60,8 +60,8 @@ public class PayApplySaveOperation extends AbstractOperationServicePlugIn implem
if (null!= bill.getDynamicObject("creator")) {
cname = bill.getDynamicObject("creator").getString("number");//创建人工号_申请人
}
// jsonObject.put("cname", cname);//todo:创建人工号
jsonObject.put("CNAME", "GH001657");//todo:创建人工号
jsonObject.put("cname", cname);//创建人工号
// jsonObject.put("CNAME", "GH001657");//创建人工号
jsonObject.put("ZJDDJID", ""+bill.getPkValue());//金蝶单据ID
jsonObject.put("ZJDDJBH", bill.getString("billno"));//金蝶单据编号
IT_INPUT.add(jsonObject);

View File

@ -208,7 +208,7 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
// 进行空值检查
if (debitlocal != null && creditlocal != null && entrydc != null) {
BigDecimal amountToPut = BigDecimal.ZERO;
// todo:获取分录方向 若A,只拿一方,当前拿的借方
// 获取分录方向 若A,只拿一方,当前拿的借方
boolean isSourceSystemA = "A".equals(shjhSourcesystem);
boolean isEntryDC1 = "1".equals(entrydc);
boolean isEntryDCNegative1 = "-1".equals(entrydc);
@ -386,7 +386,7 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
// HKONT = shjhSapkjkm.getString("number");//SAP会计科目
// }
// jsonObject.put("HKONT", HKONT);//总账科目
// jsonObject.put("UMSKZ", "");//todo:特殊总账标识
// jsonObject.put("UMSKZ", "");//特殊总账标识
// jsonObject.put("DMBTR", entr.getBigDecimal("e_actamt"));//未清金额_实收金额
// IT_CLEAR.add(jsonObject);
// }

View File

@ -77,8 +77,8 @@ public class PayrequestBillOperation extends AbstractOperationServicePlugIn impl
if (null!= bill.getDynamicObject("creator")) {
cname = bill.getDynamicObject("creator").getString("number");//创建人工号_申请人
}
// jsonObject.put("cname", cname);//创建人工号
jsonObject.put("cname", "GH001657");//todo:创建人工号
jsonObject.put("cname", cname);//创建人工号
// jsonObject.put("cname", "GH001657");//创建人工号
jsonObject.put("zjddjid", ""+bill.getPkValue());//金蝶单据ID
jsonObject.put("zjddjbh", bill.getString("billno"));//金蝶单据编号
IT_INPUT.add(jsonObject);

View File

@ -0,0 +1,66 @@
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 java.util.ArrayList;
import java.util.Map;
/**
* 定时任务 付款申请定时生成付款单
* @author LiGuiQiang
*/
public class PayApplyFukuanTask extends AbstractTask implements Plugin {
private static final String AP_PAYAPPLY ="ap_payapply";// 付款申请单
private static final String CAS_PAYBILL ="cas_paybill";// 付款单
private static final Log logger = LogFactory.getLog(PayApplyFukuanTask.class);
@Override
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
// 单据状态=已审核
QFilter qFilter = new QFilter("status", QCP.equals, "C");
DynamicObject[] collection = BusinessDataServiceHelper.load(AP_PAYAPPLY, "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(), AP_PAYAPPLY);
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("pay", AP_PAYAPPLY, billArray, operateOption);
// 可以根据需要处理 operationResult例如检查是否成功获取返回值等
if (operationResult.isSuccess()) {
logger.info("执行 pay 成功,单据编号:" + dynamicObject.getPkValue());
} else {
logger.error(operationResult.getMessage());
}
}
}
}
}

View File

@ -152,8 +152,8 @@ public class QuerySapCreatePayApplyTask extends AbstractTask {
shjh_payeebanknum = lifnr;
}
String assacct = it_list.getString("BVTYP");//合作银行类型
//todo:原因码
String reasoncode = "014";
//原因码
String reasoncode =it_list.getString("RSTGR");
//todo:资金计划分类
String zreqDept = it_list.getString("ZREQ_DEPT");//二级部门
String procurementeam = it_list.getString("EKGRP");//采购组
@ -285,7 +285,13 @@ public class QuerySapCreatePayApplyTask extends AbstractTask {
//表头申请金额
ap_payapply.set("applyamount", amount);
//todo:结算方式
String zlsch = it_list.getString("ZLSCH");//付款方式
// 结算方式(付款方式)
DynamicObject settlementtype = BusinessDataServiceHelper.loadSingle("bd_settlementtype",
new QFilter[]{new QFilter("number", QCP.equals, zlsch)});
if (null != settlementtype) {
ap_payapply_entry.set("e_settlementtype", settlementtype);
}
//付款类型:取值范围对公付款对私付款SAP科目编号1221020200 对私付款费控劳务人员报销单 对私付款其他均赋值为对公付款
if ("1221020200".equals(accountingsubject)) {
@ -371,7 +377,6 @@ public class QuerySapCreatePayApplyTask extends AbstractTask {
DynamicObject cause = BusinessDataServiceHelper.loadSingle(GL_CASHFLOWITEM, new QFilter[]{Q11});
ap_payapply.set("shjh_yym", cause);
}
//todo:汇率日期,支付渠道 文档20-36(7.1.3)
//过账日期(记账)
ap_payapply.set("shjh_bookkeepingdate", BUDATs);
//凭证日期