diff --git a/doc/docs/hcs合同/2026-10-12-合同特批与结算付款特批流程梳理.md b/doc/docs/hcs合同/2026-10-12-合同特批与结算付款特批流程梳理.md index 333d1017..a618c1bf 100644 --- a/doc/docs/hcs合同/2026-10-12-合同特批与结算付款特批流程梳理.md +++ b/doc/docs/hcs合同/2026-10-12-合同特批与结算付款特批流程梳理.md @@ -9,6 +9,7 @@ > **2026-10-12 变更**:原计划的 B103 推送合规方未建设,特批结果改为合规审批完成后经 iPaaS 主动推送 TMS:合同 `POST /hcs/contractLegal/result`、付款 `POST /hcs/paymentLegal/result`(报文 `{sourceSystem, requestId, status=APPROVED/REJECTED, reason}`);原推测性回调端点 `/hcs/callback/spec-result` 及 `HcsFieldConstant.SPEC_CB_*` 候选键解析已删除。见 §2.5/§4.4/§五。 > **2026-10-13 变更**:C103-8 独立特批发起接口合规未提供(联调 404),合同特批改为随 C103-1/C103-11 报文携带 `fdSepcailContract=true` 发起(高风险/黑名单判定后置入报文);TMS 挂起"特批审核"(processing)后新增**定时 C103-4 结果查询兜底**(随合同推送任务执行,`fdApprovalStatus=approved/approvalinvalid` 联动恢复/驳回);特批附件改随 C103-1 附件面板 `eopCdraftSpecial` 挂载;附件类型判定值与业务字典对齐为「特批附件」。**C103-8 全链路代码已删除**(`IHcsClient#addSpecContract`/`HcsSpecContractSaveDTO`/`applySpec`/`POST /hcs/contract/spec-apply`)。**contractLegal/result 报文已按合规方最新字段表修正**:`{contractType, contractCode, requestId, success, reason, kingdeeId, sourceSystem=WCCK}`(金蝶同步结果结构,非原假设的 status=APPROVED/REJECTED),按 `contractCode`=合同编号定位,`success=true` 联动放行(kingdeeId 留痕)/`false` 联动驳回走重新提交闭环;付款 `paymentLegal/result` 仍为旧结构,待合规方字段表后同步修正。 > **2026-10-13 付款链路变更**:按最新需求,付款链路黑名单**不再直接阻断**,与高风险统一走特批:提交时收款方为**外部客商**(`CustomerArchive.customerKind≠internal`)才查 C101-1,高风险(`fdRiskLevel=2`)/黑名单(`fdBlackStatus=yes`)→ 提示且**必须上传「特批附件」**(付款附件结构 `attachmentType=special_approval`,缺失抛异常)+ 标记 `hcs_spec_status=need`(不再依赖 C106-1 额度超额这一唯一触发源);审批通过后扫描任务发起 C106-3,TMS 挂起 `currentNode="特批审核"`;合规审批完成后**回调 `paymentLegal/result`** 通知结果,`APPROVED` 恢复"审批通过"放行、`REJECTED` 联动付款审批驳回(returned)走重新提交闭环,页面人工确认等效兜底;特批审核中(need/pushing/processing)**禁止推送金蝶**(`doSyncKingdee` 门禁);前端付款表单同步增加收款方 C101-1 风险查询提示与特批附件提交校验。`risk.block-blacklist` 配置及 Nacos 项已删除。见 §三/§4.4。 +> **2026-10-23 变更(付款特批即时发起 + 下游门禁)**:付款审批通过即发起付款特批,不再等待定时扫描,也不受 `push.immediate-enabled` 开关控制——`POST /payment-application/approve` 在审批事务提交返回后同步调用 `HcsImmediatePushSupport#pushPaymentAndWait`(失败原因经 `pollSyncFailure()` 以 `data=false` 警告返回,审批结果不受影响),MK 审批回调经 `pushPaymentAfterCommit` afterCommit 异步发起。特批审核期间(need/pushing/processing)`pushPayment` 只发起/等待 C106,**不再推送履约计划 C103-9 与履约记录 C108**;特批通过(合规回调或人工确认)后由 `pushAfterSpecApproved` 补推履约数据,再发布金蝶同步事件;驳回不产生履约数据。审批响应区分「特批待发起 / 已发起特批 / 合规推送失败(保留重推)/ 已同步金蝶」。见 §1.3/§3.2/§4.2/§4.4/§五;相关提交 `3ddf0448`(下游门禁与补推)、`1b7b8ae5`(付款即时推送能力)、`6369ec64`(审批入口接线与响应提示)。 --- @@ -21,7 +22,7 @@ | 触发线 | HCS 接口 | 判定条件 | 触发的特批 | 作用对象 | | --- | --- | --- | --- | --- | | 外部客商高风险/黑名单 | C101-1 风险查询 | `fdRiskLevel=2`(高风险)或 `fdBlackStatus=yes`(黑名单) | 合同特批(C103-1/C103-11 报文 `fdSepcailContract=true` 发起 / contractLegal/result 结果回调 + C103-4 定时查询兜底) | `ContractManage`(合同) | -| 收款方外部客商高风险/黑名单 | C101-1 风险查询 | 同上判定(仅收款方,`customerKind=internal` 内部客商不查) | 结算付款特批(提交校验特批附件 + 标记 need → C106-3 发起 / C106-4 更新 / paymentLegal/result 回调联动付款审批状态) | `PaymentApplication`(付款申请) | +| 收款方外部客商高风险/黑名单 | C101-1 风险查询 | 同上判定(仅收款方,`customerKind=internal` 内部客商不查) | 结算付款特批(提交校验特批附件 + 标记 need → 审批通过即发起 C106-3 / C106-4 更新 / paymentLegal/result 回调联动付款审批状态) | `PaymentApplication`(付款申请) | | 合同额度超额 | C106-1 额度校验 | `fdIsCredit=false`(超额) | 结算付款特批(同上链路) | `PaymentApplication`(付款申请) | 补充规则: @@ -32,18 +33,19 @@ ### 1.2 与普通审批的关系 -特批与合同起草**同报文发起**(高风险/黑名单客商推送时 C103-1/C103-11 报文带 `fdSepcailContract=true`,合规侧随起草自动走特批流程;C103-8 独立发起接口合规未提供,相关代码已删除)。特批期间 TMS 用 `hcs_spec_status=processing` + `currentNode="特批审核"` 挂起展示,推送门禁与手动重推均拦截;特批通过即放行,驳回则联动本地审批驳回(合同与付款链路均已联动)。付款链路另在特批审核中(need/pushing/processing)**禁止推送金蝶**,特批通过后放行。 +特批与合同起草**同报文发起**(高风险/黑名单客商推送时 C103-1/C103-11 报文带 `fdSepcailContract=true`,合规侧随起草自动走特批流程;C103-8 独立发起接口合规未提供,相关代码已删除)。特批期间 TMS 用 `hcs_spec_status=processing` + `currentNode="特批审核"` 挂起展示,推送门禁与手动重推均拦截;特批通过即放行,驳回则联动本地审批驳回(合同与付款链路均已联动)。付款链路审批通过即发起 C106-3(`/approve` 同步、MK 回调异步,扫描任务兜底),特批审核中(need/pushing/processing)**禁止推送金蝶**,**履约计划 C103-9 与履约记录 C108 也等待特批通过后补推**。 ### 1.3 特批状态机(两条链路共用 `HcsSyncConstant.SPEC_STATUS_*`) ``` none(默认) ──高风险/黑名单随 C103-1/C103-11 带 fdSepcailContract=true──▶ processing(挂起"特批审核")──结果回调/查询──▶ approved / rejected -none(默认) ──付款提交高风险/黑名单须特批附件 / 额度超额──▶ need ──审批通过后扫描 C106-3──▶ processing(挂起"特批审核")──paymentLegal/result 回调──▶ approved / rejected -need(存量遗留,2026-10-13 起不再产生;重推时自愈:报文带特批标记 → 挂起转 processing) +none(默认) ──付款提交高风险/黑名单须特批附件 / 额度超额──▶ need ──审批通过即发起 C106-3(/approve 同步、MK 回调异步,扫描兜底)──▶ processing(挂起"特批审核")──paymentLegal/result 回调──▶ approved / rejected +need(提交校验后的待审批中间态;审批通过即由即时推送发起 C106-3,扫描任务仅作兜底;已存在特批流程ID时走 C106-4 更新,更新成功后同样归一为 processing) ``` - 合同特批 `approved` **单次有效**:再次推送时若已 approved 不重复发起。 -- 付款特批结果**联动付款审批状态**(2026-10-13 起):`approved` 恢复"审批通过"放行(金蝶推送门禁解除);`rejected` 联动付款审批驳回(`approvalStatus=returned` + `currentNode="已驳回"`),走"重新编辑→提交→审批→重新特批"闭环。 +- 付款特批结果**联动付款审批状态**(2026-10-13 起):`approved` 恢复"审批通过"放行(金蝶推送门禁解除)并补推履约数据;`rejected` 联动付款审批驳回(`approvalStatus=returned` + `currentNode="已驳回"`),走"重新编辑→提交→审批→重新特批"闭环。 +- 付款特批审核期间(need/pushing/processing)**不推送履约计划 C103-9 与履约记录 C108**(2026-10-23 起):发起 C106-3 后本轮 `hcs_sync_status` 回填 `synced`,避免扫描重复发起;特批通过后由 `pushAfterSpecApproved` 补推。 --- @@ -149,7 +151,7 @@ need(存量遗留,2026-10-13 起不再产生;重推时自愈:报文带 - 外部客商按客商编号实时调 C101-1,高风险(`fdRiskLevel=2`)或黑名单(`fdBlackStatus=yes`)判定 risky(:136); - **risky 时两步管控(不再直接阻断)**: 1. **特批附件必传**:`attachmentsJson` 中无 `attachmentType=special_approval`(前端付款表单「特批附件」类型,兼容 `fileType=特批附件` 旧结构)附件 → 抛"收款方[xxx]为高风险/黑名单客商,必须上传「特批附件」类型附件后再提交审批"(`hasSpecAttachment`,:295-313); - 2. **标记待特批**:`hcs_spec_status=need` 并清空旧 `hcs_spec_fd_id`(特批单次有效,重新提交须重新发起 C106-3,:149-151)——审批通过后扫描任务发起 C106-3。 + 2. **标记待特批**:`hcs_spec_status=need` 并清空旧 `hcs_spec_fd_id`(特批单次有效,重新提交须重新发起 C106-3,:150-151)——审批通过后**即时发起 C106-3**(2026-10-23 起,扫描任务兜底)。 **② C106-1 合同额度校验**(开关 `credit.check-enabled` 默认 false,**一期未对接**,:100-103) @@ -157,13 +159,17 @@ need(存量遗留,2026-10-13 起不再产生;重推时自愈:报文带 - `fdIsCredit=true`(额度内)→ `hcs_credit_status=pass`; - **超额不拦截提交** → `hcs_credit_status=over` + `hcs_credit_msg` + **`hcs_spec_status=need`**。 -### 3.2 后续流转(审批通过 → 推送特批 → 挂起 → 回调联动) +### 3.2 后续流转(审批通过 → 即时发起特批 → 挂起 → 特批通过后补推 / 回调联动) - 审批通过:`#approve` 置 `hcs_sync_status=unsynced`(零埋点 ADR-0001); -- **付款链没有即时推送**(`HcsImmediatePushSupport` 仅覆盖 project/contract),完全依赖定时扫描/手动端点(见 §四); -- 扫描任务对 `hcs_spec_status=need` 的已审批单发起 C106-3 → 成功后 `processing` + **挂起 `currentNode="特批审核"`**(`HcsSpecPaySyncSupport#pushSpecPay`); -- **特批审核中(need/pushing/processing)禁止推送金蝶**:`PaymentApplicationServiceImpl#doSyncKingdee` 门禁抛"收款方客商为高风险/黑名单,付款特批审核中…特批完成后方可推送金蝶"; -- 合规审批完成后**回调 `paymentLegal/result`**(见 §4.4):`APPROVED` → 恢复"审批通过"放行(金蝶门禁解除);`REJECTED` → 联动付款审批驳回(`approvalStatus=returned` + `currentNode="已驳回"`),走"重新编辑→提交→审批→重新特批"闭环(提交时重新校验风险与特批附件)。 +- **审批生效后立即发起特批(2026-10-23 起,不再依赖扫描周期)**: + - `/approve` 入口:`PaymentApplicationController#approve` 在 `service.approve` 返回后同步调用 `HcsImmediatePushSupport#pushPaymentAndWait`,审批响应等待 C106-3 返回;失败以 `data=false` 警告返回(审批已生效),单据保留 `failed` 可重推; + - MK/OA 回调入口:`MkProcessBizHandlers.PaymentHandler#approveFromProcess` 调 `HcsImmediatePushSupport#pushPaymentAfterCommit`(afterCommit 异步,不阻塞第三方回调); + - 两个入口均**不受 `push.immediate-enabled` 开关控制**(与项目/合同的即时推送不同,付款特批按"审批即发起"落地); +- C106-3 成功 → `processing` + **挂起 `currentNode="特批审核"`**(`HcsSpecPaySyncSupport#pushSpecPay`),本轮 `hcs_sync_status` 回填 `synced`,扫描任务不会重复发起; +- **特批审核中(need/pushing/processing)不推送下游数据**:`HcsPaymentSyncSupport#pushPayment` 仅发起/等待 C106 后返回,履约计划 C103-9 与履约记录 C108 均不推送;金蝶继续由 `doSyncKingdee` 门禁拦截(见 §4.4); +- 特批通过(合规回调 `paymentLegal/result` 或人工确认)→ `pushAfterSpecApproved` 补推 C103-9 + C108,再发布金蝶同步事件;特批驳回 → 仅联动付款审批驳回(`approvalStatus=returned` + `currentNode="已驳回"`),**不产生履约数据**,走"重新编辑→提交→审批→重新特批"闭环(提交时重新校验风险与特批附件); +- 补推履约数据失败 → `hcs_sync_status=failed`(重试计数+1),不阻断金蝶补推,由手动重推或扫描任务兜底。 ### 3.3 TMS 侧留痕字段(`blade_payment_application`,`PaymentApplication.java:41`) @@ -189,8 +195,8 @@ need(存量遗留,2026-10-13 起不再产生;重推时自愈:报文带 代码库中**不存在独立的"结算单付款"特批实体**。"结算付款特批"是**付款申请(PaymentApplication)的 HCS 特批流程在 HCS 侧的表单名称**——单据主题固定 `结算付款特批-{paymentNo}`(`HcsSpecPaySyncSupport.java:129/158`)。即: -- §三(付款特批)= **触发侧**:提交时 C106-1 超额置 `need`; -- 本节(结算付款特批)= **推送侧**:审批通过后发起 C106-3 / 更新 C106-4。 +- §三(付款特批)= **触发侧**:提交时高风险/黑名单或 C106-1 超额置 `need`; +- 本节(结算付款特批)= **推送侧**:审批通过即发起 C106-3 / 更新 C106-4。 佐证:`PaymentApplication.paymentType` 含 `settlement_payment`(`TransportBusiConstant.PAYMENT_TYPE_SETTLEMENT`,:35),BFI 申请事由即称"结算付款申请"(`PaymentApplicationServiceImpl.java:1207-1213`);`FormalSettlementPayment`(正式结算付款记录,`blade_formal_settlement_payment`)**没有任何 hcs/特批字段**,仅在付款完成后联动生成,不参与特批。 @@ -198,14 +204,18 @@ need(存量遗留,2026-10-13 起不再产生;重推时自愈:报文带 | 入口 | 位置 | 说明 | | --- | --- | --- | -| 定时扫描 | `HcsPushTask#pushHcsPayment`(:163,cron 默认 `0 2/5 * * * ?`,开关 `push.payment.sync-enabled` 默认 false) | `pushUnsyncedPayments`(:285-309):`approvalStatus=approved` 且 `hcs_sync_status ∈ {unsynced, failed}` 且重试未超限 → `HcsPaymentSyncSupport#pushPayment` | -| 手动重推 | `POST /hcs/sync/payment/{id}`(`HcsSyncController.java:111`)→ `repushPayment`(:95-113);批量 `POST /hcs/sync/payment`(:129) | — | +| 即时推送(2026-10-23 新增) | `HcsImmediatePushSupport#pushPaymentAndWait`(`/approve` 同步)/ `#pushPaymentAfterCommit`(MK 回调 afterCommit 异步) | 审批通过即发起 C106-3;**不受 `push.immediate-enabled` 开关控制**;失败留痕,由扫描/手动重推兜底 | +| 定时扫描(兜底) | `HcsPushTask#pushHcsPayment`(:163,cron 默认 `0 2/5 * * * ?`,开关 `push.payment.sync-enabled` 默认 false) | `pushUnsyncedPayments`(:285-309):`approvalStatus=approved` 且 `hcs_sync_status ∈ {unsynced, failed}` 且重试未超限 → `HcsPaymentSyncSupport#pushPayment` | +| 手动重推 | `POST /hcs/sync/payment/{id}`(`HcsSyncController.java:111`)→ `repushPayment`(:168);批量 `POST /hcs/sync/payment`(:129) | 特批审核中(processing)重推只返回等待提示,不重复发起;特批通过后重推为幂等补推 | -`HcsPaymentSyncSupport#pushPayment`(`HcsPaymentSyncSupport.java:75-91`): +`HcsPaymentSyncSupport#pushPayment`(`HcsPaymentSyncSupport.java:84`,2026-10-23 调整编排): -1. **① 结算付款特批**:`hcs_spec_status=need` 且未发起时(:77-80)调 `HcsSpecPaySyncSupport#pushSpecPay`(C106-3 成功后 `processing` + 挂起 `currentNode="特批审核"`); -2. ② 履约记录 C108(默认关); -3. 最后统一 `markSynced` / `markFailed` 回写整体同步状态。 +1. **① 结算付款特批**:`hcs_spec_status=need` 调 `HcsSpecPaySyncSupport#pushSpecPay`(C106-3 成功后 `processing` + 挂起 `currentNode="特批审核"`;C106-4 更新路径同样归一为 `processing`),随后 `markSynced` 并返回,**本轮不推下游**; +2. `pushing/processing`:仅回写"付款特批审核中,待特批通过后推送履约数据",不推履约计划与履约记录; +3. 特批通过(`none/approved`):② 履约计划重推 C103-9(付款审批款项金额累加行)→ ③ 履约记录 C108(默认关)→ `markSynced`; +4. 推送失败统一 `markFailed`(重试计数+1),由手动重推或扫描任务兜底。 + +> 特批通过后补推入口 `pushAfterSpecApproved`(`HcsPaymentSyncSupport.java:152`):在合规回调/人工确认将 `hcs_spec_status` 落库为 `approved` 后调用,补推失败仅置 `failed`,不阻断后续金蝶补推。 > `need` 触发源(2026-10-13 起):提交时收款方外部客商高风险/黑名单(须特批附件)或 C106-1 额度超额(`credit.check-enabled=false` 未对接时仅前者可达)。 @@ -240,8 +250,9 @@ need(存量遗留,2026-10-13 起不再产生;重推时自愈:报文带 特批结果由合规系统审批完成后**回调 `paymentLegal/result` 通知 TMS**,并联动付款审批状态(2026-10-13 起): -- `POST /hcs/paymentLegal/result`(`HcsSyncController`,blade.secure 放行,网关注册 `/gwzh/HTHG/paymentLegal/result`)→ `HcsPaymentSyncSupport#handleLegalResult`(:156-189):先校验 `sourceSystem`(不符抛"来源系统标识错误"异常),`requestId`=付款申请ID 定位,`status=APPROVED` → 特批通过 + 恢复 `currentNode="审批通过"` 放行(金蝶推送门禁解除);`status=REJECTED` → 特批驳回 + **联动付款审批驳回**(`approvalStatus=returned` + `currentNode="已驳回"`,`syncPaymentOnSpecResult` :191-202),走"重新编辑→提交→审批→重新特批"闭环; -- 等效兜底:页面人工确认 `POST /hcs/spec-pay/confirm`(仅 `processing` 可确认,与回调同样联动付款审批状态); +- `POST /hcs/paymentLegal/result`(`HcsSyncController`,blade.secure 放行,网关注册 `/gwzh/HTHG/paymentLegal/result`)→ `HcsPaymentSyncSupport#handleLegalResult`(:229):先校验 `sourceSystem`(不符抛"来源系统标识错误"异常),`requestId`=付款申请ID 定位,`status=APPROVED` → 特批通过 + 恢复 `currentNode="审批通过"` 放行(金蝶推送门禁解除);`status=REJECTED` → 特批驳回 + **联动付款审批驳回**(`approvalStatus=returned` + `currentNode="已驳回"`,`syncPaymentOnSpecResult` :280),走"重新编辑→提交→审批→重新特批"闭环; +- **特批通过后补推(2026-10-23 起)**:`handleLegalResult`/`confirmSpecResult` 将 `hcs_spec_status=approved` 落库后调用 `pushAfterSpecApproved`(:152)补推履约计划 C103-9 与履约记录 C108,随后 `publishKingdeeAutoSyncOnSpecApproved`(:267)发布金蝶同步事件;补推失败置 `failed`,不影响金蝶补推; +- 等效兜底:页面人工确认 `POST /hcs/spec-pay/confirm` → `confirmSpecResult`(:195,仅 `processing` 可确认,与回调同样联动付款审批状态并补推履约数据); - 与合同特批(contractLegal/result + C103-4 定时查询兜底)不同,付款特批**仅回调通知**(合规未提供 C106 结果查询接口),无定时查询兜底,回调未达时靠人工确认。 --- @@ -250,9 +261,10 @@ need(存量遗留,2026-10-13 起不再产生;重推时自愈:报文带 | 机制 | 合同特批(fdSepcailContract/contractLegal/result/C103-4 兜底) | 付款/结算付款特批(C106-3/4/paymentLegal/result) | | --- | --- | --- | -| 定时扫描 | `HcsPushTask#pushHcsContract`(默认 `0 1/5 * * * ?`,同轮附带特批结果查询兜底 `syncProcessingSpecResults`) | `HcsPushTask#pushHcsPayment`(默认 `0 2/5 * * * ?`);Redis 任务锁 TTL 240s、分钟位错峰 | -| 即时推送 | `HcsImmediatePushSupport#pushContractAfterCommit`(afterCommit 异步,开关默认 false,单条锁 TTL 120s) | 无 | -| 结果推送接收 | `POST /hcs/contractLegal/result`(blade.secure 放行,sourceSystem=WCCK,contractCode=合同编号定位,success 联动审批状态,原文留痕) | `POST /hcs/paymentLegal/result`(blade.secure 放行,requestId=付款申请ID,回写特批状态并**联动付款审批状态**:approved 恢复放行 / rejected 联动审批驳回;报文仍为旧结构待合规方字段表确认) | +| 定时扫描 | `HcsPushTask#pushHcsContract`(默认 `0 1/5 * * * ?`,同轮附带特批结果查询兜底 `syncProcessingSpecResults`) | `HcsPushTask#pushHcsPayment`(默认 `0 2/5 * * * ?`,2026-10-23 起仅作即时发起的兜底);Redis 任务锁 TTL 240s、分钟位错峰 | +| 即时推送 | `HcsImmediatePushSupport#pushContractAfterCommit`(afterCommit 异步,开关默认 false,单条锁 TTL 120s) | `HcsImmediatePushSupport#pushPaymentAndWait`(`/approve` 同步)/ `#pushPaymentAfterCommit`(MK 回调 afterCommit 异步)——**审批即发起,不受 `push.immediate-enabled` 控制**(2026-10-23 起),单条锁 TTL 120s | +| 下游履约数据 | C103-9 履约规则随合同推送同步(一期默认关) | **特批审核中不推**;特批通过后 `pushAfterSpecApproved` 补推 C103-9(付款审批款项金额累加行)+ C108 履约记录(默认关) | +| 结果推送接收 | `POST /hcs/contractLegal/result`(blade.secure 放行,sourceSystem=WCCK,contractCode=合同编号定位,success 联动审批状态,原文留痕) | `POST /hcs/paymentLegal/result`(blade.secure 放行,requestId=付款申请ID,回写特批状态并**联动付款审批状态**:approved 恢复放行并补推履约数据 / rejected 联动审批驳回;报文仍为旧结构待合规方字段表确认) | | 人工确认 | `POST /hcs/contract/spec/confirm` | `POST /hcs/spec-pay/confirm` | | 手动发起/重推 | `POST /hcs/sync/contract/{id}`(spec-apply 已随 C103-8 删除,2026-10-13) | `POST /hcs/sync/payment/{id}`、`POST /hcs/sync/payment` | @@ -267,7 +279,7 @@ need(存量遗留,2026-10-13 起不再产生;重推时自愈:报文带 | `risk.check-on-payment` | true | 付款提交 C101-1 校验开关(收款方外部客商高风险/黑名单须特批附件并标记待特批) | | `credit.check-enabled` | **false** | C106-1 额度校验,一期未对接(付款特批第二触发源关闭,高风险/黑名单触发不受影响) | | `contract.special-contract-enabled` | false | C103-1/C103-11 报文 `fdSepcailContract` 强制 true(默认关;高风险/黑名单判定自动带 true,本开关可强制全量走特批,联调验证用) | -| `push.immediate-enabled` | false | 审批通过后即时推送 | +| `push.immediate-enabled` | false | 审批通过后即时推送(项目/合同受控;付款特批按"审批即发起"**不受该开关控制**,2026-10-23 起) | | `push.contract.sync-enabled` / `push.contract.cron` | — / `0 1/5 * * * ?` | 合同定时扫描 | | `push.payment.sync-enabled` / `push.payment.cron` | — / `0 2/5 * * * ?` | 付款定时扫描 | | `spec-pay.payment-purpose/nature/type` | — | C106 报文付款用途/性质/类型 |