diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/HcsSyncController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/HcsSyncController.java
index dd48c78c..ef580dba 100644
--- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/HcsSyncController.java
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/HcsSyncController.java
@@ -34,7 +34,6 @@ import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.secure.annotation.PreAuth;
-import org.springblade.core.secure.constant.AuthConstant;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
@@ -258,14 +257,14 @@ public class HcsSyncController {
}
/**
- * 合同特批结果回传接收(合规系统 contractLegal/result 推送,替代未建设的 B103,公开端点 + 原文留痕)
+ * 合同特批结果回传接收(合规系统 contractLegal/result 推送,替代未建设的 B103,原文留痕)
*
+ * 免登免授权:blade.secure skip-url + auth permitAll 放行(doc/nacos/blade.yaml);
* iPaaS 网关注册映射:/gwzh/HTHG/contractLegal/result → /hcs/contractLegal/result;
* 报文 {sourceSystem, requestId=TMS合同ID, status=APPROVED/REJECTED, reason},
* approved 恢复流程展示,rejected 联动合同审批驳回。
*/
@PostMapping("/contractLegal/result")
- @PreAuth(AuthConstant.PERMIT_ALL)
@ApiOperationSupport(order = 15)
@Operation(summary = "合同特批结果回传接收", description = "合规系统推送合同特批结果,按合同ID定位并联动特批状态,原文留痕")
public R contractLegalResult(@RequestBody(required = false) HcsLegalResultDTO param) {
@@ -273,13 +272,13 @@ public class HcsSyncController {
}
/**
- * 付款特批结果回传接收(合规系统 paymentLegal/result 推送,公开端点)
+ * 付款特批结果回传接收(合规系统 paymentLegal/result 推送)
*
+ * 免登免授权同合同接口(blade.secure 放行);
* iPaaS 网关注册映射:/gwzh/HTHG/paymentLegal/result → /hcs/paymentLegal/result;
* 报文同合同接口(requestId=TMS付款申请ID),付款特批结果不联动付款审批状态(§4.4)。
*/
@PostMapping("/paymentLegal/result")
- @PreAuth(AuthConstant.PERMIT_ALL)
@ApiOperationSupport(order = 16)
@Operation(summary = "付款特批结果回传接收", description = "合规系统推送付款特批结果,按付款申请ID定位并回写特批状态")
public R paymentLegalResult(@RequestBody(required = false) HcsLegalResultDTO param) {
diff --git a/doc/docs/hcs合同/2026-09-27-桂物合同合规系统HCS接入技术设计.md b/doc/docs/hcs合同/2026-09-27-桂物合同合规系统HCS接入技术设计.md
index dde633b5..a37ddc36 100644
--- a/doc/docs/hcs合同/2026-09-27-桂物合同合规系统HCS接入技术设计.md
+++ b/doc/docs/hcs合同/2026-09-27-桂物合同合规系统HCS接入技术设计.md
@@ -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 幂等 | 判重与防重方案 |
diff --git a/doc/docs/hcs合同/2026-09-28-HCS接入实施状态与确认清单.md b/doc/docs/hcs合同/2026-09-28-HCS接入实施状态与确认清单.md
index 31285bef..c838e533 100644
--- a/doc/docs/hcs合同/2026-09-28-HCS接入实施状态与确认清单.md
+++ b/doc/docs/hcs合同/2026-09-28-HCS接入实施状态与确认清单.md
@@ -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) |
diff --git a/doc/docs/hcs合同/2026-10-09-项目立项与合同HCS前端接入设计.md b/doc/docs/hcs合同/2026-10-09-项目立项与合同HCS前端接入设计.md
index b23a0d7a..22796a11 100644
--- a/doc/docs/hcs合同/2026-10-09-项目立项与合同HCS前端接入设计.md
+++ b/doc/docs/hcs合同/2026-10-09-项目立项与合同HCS前端接入设计.md
@@ -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
diff --git a/doc/docs/hcs合同/2026-10-12-合同特批与结算付款特批流程梳理.md b/doc/docs/hcs合同/2026-10-12-合同特批与结算付款特批流程梳理.md
index 9f2f67c5..828d22b4 100644
--- a/doc/docs/hcs合同/2026-10-12-合同特批与结算付款特批流程梳理.md
+++ b/doc/docs/hcs合同/2026-10-12-合同特批与结算付款特批流程梳理.md
@@ -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) |
diff --git a/doc/nacos/blade.yaml b/doc/nacos/blade.yaml
index d73eb7db..dedb8470 100644
--- a/doc/nacos/blade.yaml
+++ b/doc/nacos/blade.yaml
@@ -231,6 +231,11 @@ blade:
- /feign/client/businessProcess/getProcessInfo
- /feign/client/customerArchive/syncProcessNode
- /feign/client/mkProcess/**
+ # HCS 合同/付款特批结果回传:合规系统经 iPaaS 网关无令牌调用,免登免授权
+ - /blade-transport/hcs/contractLegal/result
+ - /hcs/contractLegal/result
+ - /blade-transport/hcs/paymentLegal/result
+ - /hcs/paymentLegal/result
#授权认证配置
auth:
- method: ALL
@@ -251,6 +256,19 @@ blade:
- method: POST
pattern: /dashboard/submit
expression: "hasAnyRole('administrator', 'admin', 'user')"
+ # HCS 合同/付款特批结果回传:合规系统经 iPaaS 网关无令牌调用,免登免授权
+ - method: POST
+ pattern: /blade-transport/hcs/contractLegal/result
+ expression: "permitAll()"
+ - method: POST
+ pattern: /hcs/contractLegal/result
+ expression: "permitAll()"
+ - method: POST
+ pattern: /blade-transport/hcs/paymentLegal/result
+ expression: "permitAll()"
+ - method: POST
+ pattern: /hcs/paymentLegal/result
+ expression: "permitAll()"
#基础认证配置
basic:
- method: ALL