--- schema: "hl-changelog/v2" ticket: "finance-review-logs-6domains" title: "6 域审核记录独立查询接口(详情弹窗「审核记录」独立 tab 数据源)" consumer: "admin" author: "yst(GIT)" change_type: "新增接口" backend_status: "merged" gateway_status: "verified" frontend_status: "verified" frontend_owner: "mmg" frontend_ref: "a84f2ffe87612e158c9c9eaffe7aabb05dee69c4" target_release: "" verified_at: "2026-09-17" status_note: "6 单据域(应付款/预付款/报账款/员工借款/费用报销/业务外收支)各新增 1 个审核流水独立查询接口 GET /admin/finance/<域>/{id}/review-logs,6 域共用 FinReviewLogRespVO 8 字段,按审核发生时间升序、无记录空数组。配套原型:单据详情弹窗拆「详情信息/审核记录」两 tab(payex-detail 通用框架),审核记录 tab 数据走本接口。报账详情旧内嵌 reviewLogs 字段标 @Deprecated(保留向后兼容不回删,新接入走 §报账独立接口)。已合并 dev-v3(PR #7814)+ 部署测试服行为级验证 PASS(Flyway 6 表建齐、6 接口 200、approve 落痕可回放)。 前端 hl-admin 2026-09-17 done:五域 api 封装+ReviewLogPane 共享面板(loader/statusLabel 注入、tab 懒加载、docId 变化重拉),报账/预付款/员工借款/费用报销/业务外收支五域详情弹窗两 tab 接线齐;应付款付款单域前端页面占位未交付,封装随页面建设时补。" updated_at: "2026-09-17" base: "dev-v3" --- # 6 域审核记录独立查询接口 > **服务**: hl-order-service-v3(hl-finance 模块) > **类型**: 🆕 新增接口(6 个只读端点;另:报账详情出参 `reviewLogs` 字段标 @Deprecated,向后兼容不回删) > **日期**: 2026-09-16 > **关联**: Issue #7801(PR-2)/ PR #7814 · 原型 #7805 / #7808 --- ## 🔴 一句话给前端 6 类单据(应付款/预付款/报账款/员工借款/费用报销/业务外收支)的**审核记录**,从「详情接口内嵌字段」抽成**独立的审核流水接口**。单据详情弹窗拆成「**详情信息 / 审核记录**」两个 tab:详情信息仍走原详情接口,审核记录 tab 调本新接口。 | | 之前 | 现在 | |---|---|---| | 审核记录来源 | 仅报账款有(内嵌详情出参 `reviewLogs`),其余 5 域无 | 6 域统一独立接口 `GET .../review-logs` | | 详情弹窗 | 审核记录混在详情里 | 「详情信息 / 审核记录」两 tab 分离 | | 报账 `reviewLogs` | 详情出参内嵌数组 | 标 @Deprecated(仍返回、不回删),新接入走独立接口 | --- ## 接口清单(6 个,结构完全一致) | # | 方法 | 路径 | 域 | 单据不存在错误码 | |---|---|---|---|---| | 1 | GET | `/admin/finance/payments/{id}/review-logs` | 应付款付款单 | `598801` | | 2 | GET | `/admin/finance/prepays/{id}/review-logs` | 预付款申请单 | `599001` | | 3 | GET | `/admin/finance/reimburses/{id}/review-logs` | 报账执行单 | `599201` | | 4 | GET | `/admin/finance/staff-loans/{id}/review-logs` | 员工借款单 | `599101` | | 5 | GET | `/admin/finance/expenses/{id}/review-logs` | 费用报销单 | `598701` | | 6 | GET | `/admin/finance/nonbiz-flows/{id}/review-logs` | 业务外收支单 | `598504` | **统一规格**: - 路径占位 `{id}` = 单据主键(Long,string 序列化) - 返回 `Result>`,按审核发生时间 **升序**,无记录返回 **空数组 `[]`**(非 null、非 404) - 单据不存在/已软删 → 抛各域既有 NOT_FOUND 错误码(见上表),**零新增错误码** --- ## 出参(FinReviewLogRespVO,6 域共用) | 字段 | 类型 | 说明 | |---|---|---| | `logId` | String | 流水 ID(Long,string 序列化防 JS 精度丢失) | | `action` | String | 审核动作(词表按域,见下) | | `operatorId` | String | 操作人 ID(Long string;无登录上下文时为 null) | | `operatorName` | String | 操作人真名快照(AdminContextUtil 取当前登录管理员;可空) | | `opinion` | String | 审核意见(可空) | | `fromStatus` | String | 操作前单据状态 | | `toStatus` | String | 操作后单据状态 | | `createTime` | String | 审核发生时间 `yyyy-MM-dd HH:mm:ss` | ### action 词表(按域实证,前端按值渲染文案) | 域 | action 取值 | |---|---| | 应付款 / 预付款 / 员工借款 / 费用报销 | `APPROVE` 批准 / `REJECT` 驳回 | | 业务外收支 | 仅 `APPROVE` 批准(本域无驳回动作) | | 报账款 | `APPROVE` 批准 / `RETURN` 退回 / `UN_APPROVE` 反审(反向操作也留痕) | > 前端展示「操作」列建议:APPROVE=批准 / REJECT=驳回 / RETURN=退回 / UN_APPROVE=反审。配合 `fromStatus→toStatus` 可渲染「从 X 改为 Y」。 --- ## 示例 **请求**:`GET /admin/finance/payments/1962xxxxxxxxxx/review-logs` **典型(有记录)**: ```json { "code": 0, "data": [ { "logId": "2101...", "action": "REJECT", "operatorId": "1962...", "operatorName": "王芳", "opinion": "金额与行程不符", "fromStatus": "SUBMITTED", "toStatus": "REJECTED", "createTime": "2026-09-15 10:20:00" }, { "logId": "2101...", "action": "APPROVE", "operatorId": "1962...", "operatorName": "王芳", "opinion": "重新核对无误", "fromStatus": "SUBMITTED", "toStatus": "APPROVED", "createTime": "2026-09-16 09:05:00" } ], "message": "success" } ``` **边界(无记录)**: ```json { "code": 0, "data": [], "message": "success" } ``` **异常(单据不存在)**: ```json { "code": 598801, "data": null, "message": "付款单不存在" } ``` --- ## 注意事项 1. **详情两 tab 的数据分工**:详情信息 tab 仍调原详情接口;审核记录 tab 调本接口。两个接口独立,可并行/懒加载(切到审核记录 tab 再调)。 2. **报账详情 `reviewLogs` 已 @Deprecated**:字段仍返回(向后兼容不回删),但新接入请改走 `GET /admin/finance/reimburses/{id}/review-logs`。字段语义与本接口一致。 3. **追加写只增不删**:审核流水是完整历史轨迹(一张单反复审核/反审全程留痕),单据本体只留最终态。不要假设最多一条。 4. **空态**:无审核记录返回空数组,前端「审核记录」tab 显示「暂无审核记录」占位即可。 5. 审核动作在翻转单据状态的**同一事务**内落痕,状态翻转与留痕同生共死,不会出现「态已翻、痕没落」。 --- ## 关联 - Issue:https://git.1814.love:8443/wx/HL/issues/7801 - PR:https://git.1814.love:8443/wx/HL/pulls/7814 - 原型对齐:PR #7805(详情两 tab)/ #7808(查看纯只读权限分离) - 负责人:腰苏图