:fix: 特批结果回传接口改为secure白名单放行,移除PERMIT_ALL注解

This commit is contained in:
刘泉佳
2026-10-12 11:36:54 +08:00
parent 6f774d50c7
commit e44270e6f0
6 changed files with 29 additions and 12 deletions
@@ -415,7 +415,7 @@ thirdParty:
| # | 事项 | 影响 |
|---|---|---|
| U1 | **特批流程结果回传方式**:v4 无查询/回调接口 → **已决(2026-10-12)**:合规经 `contractLegal/result`(合同)/`paymentLegal/result`(付款)主动推送 TMS | 推送接收端点已实现(PERMIT_ALL);人工确认保留等效兜底 |
| U1 | **特批流程结果回传方式**:v4 无查询/回调接口 → **已决(2026-10-12)**:合规经 `contractLegal/result`(合同)/`paymentLegal/result`(付款)主动推送 TMS | 推送接收端点已实现(blade.secure 放行,免登免授权);人工确认保留等效兜底 |
| U2 | 组织/人员引用体系:HCS `{fdId,fdName}` 的 fdId 与 TMS 部门ID 不同源;登录名是否同源(见原文登录名截图) | 立项/合同操作人字段解析方式 |
| U3 | 字典值映射:fd_settlement_type、fd_invoice_type、付款用途/性质/类型、CONTRACT_STATUS 是否必传 | 各映射配置 |
| U4 | C103-3/C102-3/C111-1 conditions 是否支持 fdNumber/fd_num/fdKingdeeId 精确查询;HCS 是否按 fd_kingdee_id 幂等 | 判重与防重方案 |
@@ -62,8 +62,8 @@
| `POST /hcs/sync/{bizType}/{id}` | 单条重推(bizType:project / contract / payment / invoice-application / invoice-receipt),重置 unsynced+清零计数后立即推送 |
| `POST /hcs/sync/{bizType}` | 批量推送一轮(复用扫描逻辑) |
| `POST /hcs/spec-pay/confirm?id=&result=approved|rejected` | 特批结果人工确认(仅 processing 可确认) |
| `POST /hcs/contractLegal/result` | 合同特批结果回传接收(合规推送,PERMIT_ALL,2026-10-12 替代 B103) |
| `POST /hcs/paymentLegal/result` | 付款特批结果回传接收(合规推送,PERMIT_ALL) |
| `POST /hcs/contractLegal/result` | 合同特批结果回传接收(合规推送,blade.secure 放行,2026-10-12 替代 B103) |
| `POST /hcs/paymentLegal/result` | 付款特批结果回传接收(合规推送,blade.secure 放行) |
| `POST /hcs/master-data/refresh` | 刷新主数据缓存并校验模板映射 |
| `GET /hcs/recon/project?projectCode=` | 项目立项对账(C102-3) |
| `GET /hcs/recon/contract?contractNo=` | 合同对账(C103-3) |
@@ -113,7 +113,7 @@ POST /hcs/contract/spec-apply (body:{ contractId, attachments: [{fdId,
→ C103-8 v4 未含报文,联调前按上述预估实现并加 TODO 标注(§7-U1)
POST /hcs/contractLegal/result (合规系统推送特批结果,2026-10-12 替代未建设的 B103)
公开端点(@PreAuth(AuthConstant.PERMIT_ALL)),iPaaS 网关注册映射 /gwzh/HTHG/contractLegal/result → 本端点
免登免授权端点(blade.secure skip-url + auth permitAll 放行),iPaaS 网关注册映射 /gwzh/HTHG/contractLegal/result → 本端点
body(HcsLegalResultDTO):{ sourceSystem="WLTMS", requestId=TMS合同ID, status=APPROVED|REJECTED, reason }
处理:按 requestId 定位合同 → status 大小写不敏感识别 → 回写 hcs_spec_status + 原文(含 reason)留痕 blade_hcs_check_log
→ approved 恢复 currentNode="审批通过"(C103-1 已起草,无需再推送);rejected 联动审批驳回,reason 随原文见 hcs_spec_msg
@@ -108,7 +108,7 @@ none(默认) ──触发──▶ need(挂起"特批审核")──发
| 路径 | 接口 | 实现 |
| --- | --- | --- |
| 合规推送 | `POST /hcs/contractLegal/result`(`HcsSyncController`,`@PreAuth(PERMIT_ALL)`,网关注册 `/gwzh/HTHG/contractLegal/result`) | `handleLegalResult`:`requestId`=合同ID(selectById)定位 → `status=APPROVED/REJECTED` 大小写不敏感识别(其他值仅留痕)→ 原文(含 reason)留痕,报文模型 `HcsLegalResultDTO` |
| 合规推送 | `POST /hcs/contractLegal/result`(`HcsSyncController`,blade.secure 放行,网关注册 `/gwzh/HTHG/contractLegal/result`) | `handleLegalResult`:`requestId`=合同ID(selectById)定位 → `status=APPROVED/REJECTED` 大小写不敏感识别(其他值仅留痕)→ 原文(含 reason)留痕,报文模型 `HcsLegalResultDTO` |
| 人工确认 | `POST /hcs/contract/spec/confirm`(:251-257) | `confirmSpecResult`(:139-157,仅 processing 可确认) |
联动 `syncContractOnSpecResult`(:312-320):
@@ -229,7 +229,7 @@ none(默认) ──触发──▶ need(挂起"特批审核")──发
特批结果由合规系统审批完成后主动推送(2026-10-12 起,替代原计划的 B103,§9-U1 已闭环):
- `POST /hcs/paymentLegal/result`(`HcsSyncController`,`@PreAuth(PERMIT_ALL)`,网关注册 `/gwzh/HTHG/paymentLegal/result`)→ `HcsPaymentSyncSupport#handleLegalResult`:`requestId`=付款申请ID 定位,`status=APPROVED/REJECTED` 回写 `hcs_spec_status`,不联动付款审批状态;
- `POST /hcs/paymentLegal/result`(`HcsSyncController`,blade.secure 放行,网关注册 `/gwzh/HTHG/paymentLegal/result`)→ `HcsPaymentSyncSupport#handleLegalResult`:`requestId`=付款申请ID 定位,`status=APPROVED/REJECTED` 回写 `hcs_spec_status`,不联动付款审批状态;
- 等效兜底:页面人工确认 `POST /hcs/spec-pay/confirm`(仅 `processing` 可确认,置 `approved/rejected`);
- **付款特批结果不联动付款审批状态**(与合同特批的 `syncContractOnSpecResult` 不同,无驳回联动)。
@@ -241,7 +241,7 @@ none(默认) ──触发──▶ need(挂起"特批审核")──发
| --- | --- | --- |
| 定时扫描 | `HcsPushTask#pushHcsContract`(默认 `0 1/5 * * * ?`) | `HcsPushTask#pushHcsPayment`(默认 `0 2/5 * * * ?`);Redis 任务锁 TTL 240s(:92)、分钟位错峰(:75-77) |
| 即时推送 | `HcsImmediatePushSupport#pushContractAfterCommit`(afterCommit 异步,开关默认 false,单条锁 TTL 120s) | 无 |
| 结果推送接收 | `POST /hcs/contractLegal/result`(PERMIT_ALL,requestId=合同ID,原文留痕+联动审批状态) | `POST /hcs/paymentLegal/result`(PERMIT_ALL,requestId=付款申请ID,回写特批状态) |
| 结果推送接收 | `POST /hcs/contractLegal/result`(blade.secure 放行,requestId=合同ID,原文留痕+联动审批状态) | `POST /hcs/paymentLegal/result`(blade.secure 放行,requestId=付款申请ID,回写特批状态) |
| 人工确认 | `POST /hcs/contract/spec/confirm` | `POST /hcs/spec-pay/confirm` |
| 手动发起/重推 | `POST /hcs/contract/spec-apply`(:226)、`POST /hcs/sync/contract/{id}`(:110) | `POST /hcs/sync/payment/{id}`(:111)、`POST /hcs/sync/payment`(:129) |