feat: HCS付款申请数据层与零埋点接线(特批字段组/履约记录ID字段/审批与付款推进置待同步)

This commit is contained in:
刘泉佳
2026-09-27 23:38:55 +08:00
parent d147ef8209
commit 594773d7c7
5 changed files with 129 additions and 0 deletions
@@ -59,6 +59,11 @@ public final class HcsSyncConstant {
*/
public static final String BIZ_TYPE_CONTRACT = "contract";
/**
* 推送业务类型:付款申请(C106 特批 / C108 履约记录)
*/
public static final String BIZ_TYPE_PAYMENT = "payment";
/**
* 校验类型:客商风险(C101-1)
*/
@@ -84,6 +89,50 @@ public final class HcsSyncConstant {
*/
public static final String CHECK_RESULT_SKIP = "skip";
// ==================== 额度校验结果(C106-1,D15) ====================
/**
* 额度校验通过
*/
public static final String CREDIT_STATUS_PASS = "pass";
/**
* 额度校验超额(不拦截提交,转入特批链路)
*/
public static final String CREDIT_STATUS_OVER = "over";
// ==================== 特批状态(hcs_spec_status,D15) ====================
/**
* 特批状态:无需特批
*/
public static final String SPEC_STATUS_NONE = "none";
/**
* 特批状态:待特批(额度超额标记,扫描任务据此发起 C106-3)
*/
public static final String SPEC_STATUS_NEED = "need";
/**
* 特批状态:发起中
*/
public static final String SPEC_STATUS_PUSHING = "pushing";
/**
* 特批状态:特批中(C106-3 已发起,结果人工确认,§9-U1)
*/
public static final String SPEC_STATUS_PROCESSING = "processing";
/**
* 特批状态:特批通过(人工确认)
*/
public static final String SPEC_STATUS_APPROVED = "approved";
/**
* 特批状态:特批驳回(人工确认)
*/
public static final String SPEC_STATUS_REJECTED = "rejected";
// ==================== Redis 缓存 key(照 BFI blade:third: 前缀惯例) ====================
/**
@@ -426,6 +426,8 @@ public final class MkProcessBizHandlers {
entity.setApprovalStatus("approved");
entity.setCurrentNode("审核通过");
entity.setCurrentProcessor(MkProcessNodeHelper.text(processorName, "系统"));
// HCS 推送零埋点:MK 审批回调仅置待同步状态,与 /approve 入口收敛于同一权威状态(ADR-0001)
entity.setHcsSyncStatus(HcsSyncConstant.HCS_STATUS_UNSYNCED);
return service.updateById(entity);
}
@@ -47,6 +47,7 @@ import org.springblade.thirdparty.bfi.pojo.vo.BfiPayApplyVO;
import org.springblade.thirdparty.bfi.pojo.vo.BfiPayBillVO;
import org.springblade.thirdparty.bfi.service.IBfiService;
import org.springblade.thirdparty.bfi.util.BfiUtil;
import org.springblade.transport.constant.HcsSyncConstant;
import org.springblade.transport.constant.KingdeeBfiConstant;
import org.springblade.transport.constant.TransportBusiConstant;
import org.springblade.transport.mapper.BillLedgerMapper;
@@ -350,6 +351,8 @@ private final CustomerReceiptAccountMapper receiptAccountMapper;
if (!TransportBusiConstant.REVIEWING.equals(entity.getApprovalStatus())) throw new ServiceException("仅审批中的付款申请允许审核");
if (isBillPayment(entity.getPaymentMethod())) useBillBalance(entity);
entity.setApprovalStatus(TransportBusiConstant.APPROVED); entity.setCurrentNode("审批通过"); entity.setCurrentProcessor(AuthUtil.getUserName());
// HCS 推送零埋点:审批通过仅置待同步状态,扫描任务据此推特批(如需)与履约记录(ADR-0001)
entity.setHcsSyncStatus(HcsSyncConstant.HCS_STATUS_UNSYNCED);
updateById(entity);
refreshFormalSettlement(entity);
}
@@ -611,6 +614,10 @@ private final CustomerReceiptAccountMapper receiptAccountMapper;
} else if (KingdeeBfiConstant.KINGDEE_STATUS_PAID.equals(kingdeeStatus)) {
entity.setPaidAmount(money(entity.getAppliedAmount()).setScale(2, RoundingMode.HALF_UP));
}
// HCS 履约记录推进:实际付款变化后置待同步,扫描任务凭 hcs_perf_fd_id 走 C108-2 更新(D11)
if (entity.getHcsPerfFdId() != null) {
entity.setHcsSyncStatus(HcsSyncConstant.HCS_STATUS_UNSYNCED);
}
updateById(entity);
if (KingdeeBfiConstant.KINGDEE_STATUS_PAID.equals(kingdeeStatus)) {
// 付款完成:联动履约付款数据(预结算预付记录、正式结算付款记录)