From 91e38984ab8ad964a1800058e02d48bc4a7dd97c Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Sun, 13 Sep 2026 16:32:00 +0800 Subject: [PATCH] docs(changelog): add #7633 revoke reason handoff --- ...撤销在途审批失败显式提示-修改接口-管理后台.md | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/changelogs-v2/2026-09/13_7487_供应商撤销在途审批失败显式提示-修改接口-管理后台.md b/changelogs-v2/2026-09/13_7487_供应商撤销在途审批失败显式提示-修改接口-管理后台.md index ba763d60..d2ad22b3 100644 --- a/changelogs-v2/2026-09/13_7487_供应商撤销在途审批失败显式提示-修改接口-管理后台.md +++ b/changelogs-v2/2026-09/13_7487_供应商撤销在途审批失败显式提示-修改接口-管理后台.md @@ -8,27 +8,28 @@ change_type: "修改接口" backend_status: "deployed" gateway_status: "verified" frontend_status: "not_required" -frontend_owner: "mmg" +frontend_owner: "" frontend_ref: "" target_release: "" -verified_at: "2026-09-13" -status_note: "PR #7630 已合并 dev-v3,TEST 部署 merge 83626f88f;真实 Gateway 验证 HTTP 200 + 业务码 395029,失败不改本地状态。管理端消费确认待 mmg 完成。 前端实证 not_required(2026-09-13, mmg):撤销在途注册审批端点 POST /admin/supplier/items/{id}/approval/revoke 前端零调用(src/api/supplier/approvals.js 仅 approval-records/approval-history 两个审批记录 GET,无撤销写操作;供应商详情 VETTING 态无「撤销审批」入口)。返回语义修改(企微未生效返 395029)对前端零影响——无消费方。将来若接该端点,395029 走 request.js 拦截器统一透后端 message 即可。" +verified_at: "" +status_note: "PR #7630 已合并 dev-v3,TEST 部署 merge 83626f88f;真实 Gateway 验证 HTTP 200 + 业务码 395029,失败不改本地状态。前端实证 not_required(2026-09-13, mmg):撤销端点当前零调用,若将来接入则由 request.js 统一透后端 message。#7633 / PR #7634 补充:395029 的 message 现在会带出具体原因;前端若对该码硬编码了文案需同步,否则会覆盖后端可执行指引。TEST 任务分支 9c70e86c6 已验证完整指引。" updated_at: "2026-09-13" base: "dev-v3" --- # 供应商撤销在途审批失败显式提示 -供应商管理端撤销在途企微注册审批时,不再把企微未生效误报为成功。接口结构、HTTP 状态和 Feign 签名不变;调用方必须读取 `Result.code`。 +供应商管理端撤销在途企微注册审批时,不再把企微未生效误报为成功。#7633 进一步保留 user-service 返回的可执行原因。接口结构、HTTP 状态和 Feign 签名不变;调用方必须读取 `Result.code`,并直接展示后端 `message`。 > **服务**: `hl-resource-service`、`hl-user-service` > **PR**: [#7630](https://git.1814.love:8443/wx/HL/pulls/7630) > **Issue**: [#7487](https://git.1814.love:8443/wx/HL/issues/7487) > **Merge commit**: [`83626f88f`](https://git.1814.love:8443/wx/HL/commit/83626f88f18cd3bfce21f462d9aaaad5b375d32f) +> **Follow-up**: [Issue #7633](https://git.1814.love:8443/wx/HL/issues/7633) / [PR #7634](https://git.1814.love:8443/wx/HL/pulls/7634) ## ⚠️ 关键变化 -- 企微未生效时,管理端撤销返回业务码 `395029`、文案「企业微信撤销下发失败」。 +- 企微未生效时,管理端撤销返回业务码 `395029`;#7633 起 `message` 会带出具体原因,例如「企业微信撤销下发失败:企业微信暂不支持接口撤销审批,请申请人在企业微信中撤销该审批单,撤销后系统会自动将供应商退回草稿」。 - user-service 不再请求不存在的 `/oa/approval/revoke`,改为返回明确失败和申请人操作指引。 - `AUTO-*`、空单号与企微未配置路径保持原行为。 - 企业微信没有服务端撤销 API;申请人需在企微客户端撤销,既有回调/轮询收到 `spStatus=4` 后自动退回 `DRAFT`。 @@ -63,7 +64,7 @@ base: "dev-v3" | 字段 | 类型 | 说明 | |------|------|------| | `code` | Integer | `200` 表示下发成功;`395029` 表示企微撤销未生效 | -| `message` | String | 成功文案或「企业微信撤销下发失败」 | +| `message` | String | 成功文案;或「企业微信撤销下发失败」加具体原因。传输异常固定为「企业微信撤销下发失败,请稍后重试」 | | `data` | Void | 固定为 `null` | | `success` | Boolean | 仅 `code=200` 时为 `true` | @@ -91,7 +92,7 @@ base: "dev-v3" 本接口没有列表或空对象降级语义。user-service 返回空 `Result`、业务非 200 或 Feign 传输异常时,统一升级为 `395029`;不得降级成成功。 ```json -{ "code": 395029, "message": "企业微信撤销下发失败", "data": null, "success": false } +{ "code": 395029, "message": "企业微信撤销下发失败,请稍后重试", "data": null, "success": false } ``` #### 错误响应 @@ -99,7 +100,7 @@ base: "dev-v3" ```json { "code": 395029, - "message": "企业微信撤销下发失败", + "message": "企业微信撤销下发失败:企业微信暂不支持接口撤销审批,请申请人在企业微信中撤销该审批单,撤销后系统会自动将供应商退回草稿", "data": null, "traceId": null, "success": false @@ -122,7 +123,7 @@ base: "dev-v3" | code | message | 触发条件 | 管理端处理 | |---|---|---|---| -| `395029` | `企业微信撤销下发失败` | resource 调用 user 得到非 200、空响应或传输异常 | 不得提示撤销成功;提示失败并引导申请人到企微客户端撤销 | +| `395029` | `企业微信撤销下发失败:<具体原因>`;传输异常为 `企业微信撤销下发失败,请稍后重试` | resource 调用 user 得到非 200、空响应或传输异常 | 直接展示后端 `message`;不得硬编码覆盖具体原因,不得提示撤销成功 | 管理端建议同时展示在途审批单号;客户端撤销后等待回调/轮询自动退回草稿。 @@ -152,15 +153,15 @@ base: "dev-v3" | 行为 | 修改前 | 修改后 | |---|---|---| | user-service 实际企微撤销失败 | `Result.code=200` | `Result.code=500` + 申请人操作指引 | -| resource-service 收到非 200 / 空响应 / 传输异常 | 非 200 仅日志、异常误用 395021 | 统一抛业务码 `395029` | +| resource-service 收到非 200 / 空响应 / 传输异常 | 非 200 仅日志、异常误用 395021 | 统一抛业务码 `395029`;非空安全原因透传,空响应/传输异常使用固定重试文案 | | 本地状态 | 不应修改 | 仍不修改,并有 DB 前后证据 | ## 六.7、影响评估 -- 管理端 supplier revoke → resource-service → user-service 的失败结果不再丢失。 +- 管理端 supplier revoke → resource-service → user-service 的失败结果及可执行原因均不再丢失。 - 撤销失败不会修改本地供应商或审批状态。 - 新码不进入 `SUPPLIER_WECOM_SUBMIT_FAILED(395021)` 的恢复逻辑;其余提交路径和文案未改。 -- 前端需要按业务码处理 `395029`,不可只看 HTTP 200。 +- 前端需要按业务码处理 `395029`,不可只看 HTTP 200;`message` 现在会带出具体原因,若对该码硬编码了文案需同步。 ## 七、不影响范围 @@ -179,6 +180,13 @@ base: "dev-v3" - 隔离夹具按 `hl-data-cleanup/v1` manifest 创建并精确清理,最终 0 残留。 - Gateway jar mtime 后 `git log origin/dev-v3 -- hl-gateway` 无提交,无需重部署。 +### #7633 跟进验证 + +- resource 定向 6 tests、user 撤销两组定向 16 tests;resource 全量 2902 tests、user 全量 4004 tests,全部 0 failures/errors。 +- TEST 取证前人工确认 resource/user 均为 `fix/7633-supplier-revoke-guidance@9c70e86c6`、`BEHIND` 右侧 `N`、`STATE=ok`;`hl-gateway` 行也为右侧 `N`、`STATE=ok`。 +- Gateway 真实响应:HTTP 200、`code=395029`、`message=企业微信撤销下发失败:企业微信暂不支持接口撤销审批,请申请人在企业微信中撤销该审批单,撤销后系统会自动将供应商退回草稿`。 +- 失败后隔离 fixture 仍为 `VETTING / PENDING / NOT_APPLIED`;已按批准 manifest 精确清理为 0 残留。 + ### 前端验收建议 1. `VETTING` 且有在途企微单时点击撤销。 @@ -190,6 +198,8 @@ base: "dev-v3" - Issue [#7487](https://git.1814.love:8443/wx/HL/issues/7487) - PR [#7630](https://git.1814.love:8443/wx/HL/pulls/7630) +- Follow-up Issue [#7633](https://git.1814.love:8443/wx/HL/issues/7633) +- Follow-up PR [#7634](https://git.1814.love:8443/wx/HL/pulls/7634) ## 关联 / 联系人