--- schema: "hl-changelog/v2" ticket: "7013" title: "供应商清账归档启用" consumer: "admin" author: "lc(GIT)" change_type: "修改接口" backend_status: "deployed" gateway_status: "verified" frontend_status: "verified" frontend_owner: "mmg" frontend_ref: "f3134941" target_release: "" verified_at: "2026-09-03" status_note: "归档接口已可成功归档;前端需移除旧 395032 禁用提示并接入归档请求。" updated_at: "2026-09-03" base: "dev-v3" --- # 供应商模块:清账归档启用 > **服务**: `hl-resource-service`(8082) > **Issue**: #7013 > **PR**: #7017 > **影响范围**: 管理后台供应商列表与详情的“归档”操作 ## ⚠️ 关键变化 此前“归档固定返回 `395032`、前端保持禁用”的约定已失效。符合条件的供应商现在可调用归档接口,成功后状态变为 `ARCHIVED`。 ## 二、变更接口清单 | # | 接口 | 方法 | 路径 | 变更类型 | 说明 | |---|---|---|---|---|---| | 1 | 归档供应商 | POST | `/admin/supplier/items/{supplierId}/archive` | 行为修改 | `SUSPENDED/BLACKLIST → ARCHIVED` | ## 三、接口详情 ### 1. 归档供应商 `POST /admin/supplier/items/{supplierId}/archive` **VO**: `SupplierArchiveRespVO` #### 使用场景 在供应商列表或详情中归档当前状态为 `SUSPENDED` 或 `BLACKLIST` 的供应商。 #### 入参 | 字段 | 位置 | 类型 | 必填 | 约束 | 说明 | |---|---|---|---|---|---| | supplierId | Path | String | 是 | 正整数雪花 ID | 无请求体 | #### 出参 `Result` | 字段 | 类型 | 说明 | |---|---|---| | supplierId | String | 已归档供应商 ID | | status | String | 固定为 `ARCHIVED` | | clearanceRequestId | String / null | 当前固定为 `null` | | checkedAt | String / null | 当前固定为 `null` | | ledgerRevision | String / null | 当前固定为 `null` | | updateTime | String | 归档后的并发版本,格式 `yyyy-MM-dd HH:mm:ss` | #### 请求示例 ```http POST /admin/supplier/items/2094672459314745346/archive ``` #### 响应示例 ```json { "code": 200, "message": "成功", "data": { "supplierId": "2094672459314745346", "status": "ARCHIVED", "clearanceRequestId": null, "checkedAt": null, "ledgerRevision": null, "updateTime": "2026-09-03 10:20:00" }, "success": true } ``` #### 空数据 / 降级响应 写接口无空成功结果,也不提供降级成功。 #### 错误响应 ```json { "code": 395005, "message": "当前状态不允许执行该操作", "data": null, "success": false } ``` #### 业务边界 | code | 场景 | 前端处理 | |---|---|---| | `401` | 未登录 | 进入既有登录失效流程 | | `395004` | 无归档权限 | 不展示或禁止操作 | | `395005` | 当前状态不是 `SUSPENDED/BLACKLIST`,或已归档后重复请求 | 刷新列表或详情状态 | | `100502` | 短时间重复提交 | 保持当前页面并提示勿重复操作 | - `395032` 仅为历史兼容错误码,当前归档入口不再主动返回。 ## 四、契约约束与正确调用方式 - 当前状态为 `SUSPENDED` 或 `BLACKLIST` 且用户具备归档权限时,显示可点击的“归档”。 - 点击后调用 `POST /admin/supplier/items/{supplierId}/archive`,不传请求体。 - 必须同时判断 `success` 与 `code`;成功后使用响应中的 `ARCHIVED` 和 `updateTime` 刷新列表或详情。 ## 五、数据库行为 归档成功会写入审核记录与状态变更审计,并在同一事务中把供应商主表状态更新为 `ARCHIVED`。 ## 六、边界行为 - 仅 `SUSPENDED` 和 `BLACKLIST` 可归档;其他状态返回 `395005`。 - 归档成功后供应商只允许查看,前端不得继续显示写操作。 - 接口路径、请求方式和响应字段均未改变。 ## 六.5、枚举 / 数据字典 | 值 | 中文 | 菜单语义 | |---|---|---| | `SUSPENDED` | 暂停合作 | 可归档 | | `BLACKLIST` | 黑名单 | 可归档 | | `ARCHIVED` | 已归档 | 仅查看,不再显示归档操作 | ## 六.6、修改前后对比 | 场景 | 修改前 | 修改后 | |---|---|---| | 合法来源状态归档 | 固定返回 `395032`,前端禁用 | 返回成功结果,状态更新为 `ARCHIVED` | ## 六.7、影响评估 - **是否破坏向后兼容**: 否;接口路径和响应字段未变,仅启用成功行为。 - **前端是否必须同步上线**: 是。 - **前端 workaround 清理点**: 删除“归档(暂无法确认财务已清账)”禁用项及 `395032` 固定失败判断。 ## 七、不影响范围 - **仅影响**: 管理后台供应商归档操作。 - **零影响**: 其他供应商状态操作、收款账户、合同、资源绑定及小程序接口。 ## 八、测试环境已验证 TEST Gateway 已验证合法来源状态归档返回 `ARCHIVED`,审核记录与主表状态同步更新。 ## 十、相关文档 - [Issue #7013](https://git.1814.love:8443/wx/HL/issues/7013) - [PR #7017](https://git.1814.love:8443/wx/HL/pulls/7017) - 本条覆盖 [#6979 旧归档约定](https://git.1814.love:8443/wx/hl-api-changelog/src/branch/main/changelogs-v2/2026-09/03_6979_%E7%BB%9F%E4%B8%80%E4%BE%9B%E5%BA%94%E5%95%86%E6%9A%82%E5%81%9C%E7%8A%B6%E6%80%81%E4%B8%8E%E6%8B%89%E9%BB%91%E5%BD%92%E6%A1%A3%E6%B5%81%E8%BD%AC-%E4%BF%AE%E6%94%B9%E6%8E%A5%E5%8F%A3-%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0.md) 中“固定返回 `395032`”的说明。 ## 前端动作与当前状态 - 移除归档菜单的固定禁用状态和旧清账提示。 - 对 `SUSPENDED/BLACKLIST` 接入归档请求;成功后刷新为 `ARCHIVED`。 - **当前状态:待前端处理。** ## 关联 / 联系人 - **Issue**: [#7013](https://git.1814.love:8443/wx/HL/issues/7013) - **PR**: [#7017](https://git.1814.love:8443/wx/HL/pulls/7017) - **后端负责人**: @lc