--- schema: "hl-changelog/v2" ticket: "finance-reimburse-detail-lines-voucher-reviewlogs" title: "报账详情补透出支出行凭证 voucherUrls + 审核流水 reviewLogs(复核留痕可追溯)" consumer: "admin" author: "yst(GIT)" change_type: "修改接口" backend_status: "deployed" gateway_status: "verified" frontend_status: "verified" frontend_owner: "mmg" frontend_ref: "9c9190d0b5b9572563d42d2364ceb75d189449a3" target_release: "" verified_at: "2026-09-16" status_note: "报账详情 GET /admin/finance/reimburses/{id} 出参两处增强(纯新增字段,无存量变更):①支出行明细 lines 每项补透出凭证附件 voucherUrls(Epic #7764 跨域映射此前未透传,复核核对垫付需看发票/收据影像);②详情新增 reviewLogs 审核流水(复核批准/退回/反审每次留痕,含操作人/时间/动作/意见/前后状态,单据反复审核可追溯,#7791)。已部署测试服并造数实证(BZ-202609160003:lines 8 行 voucherUrls 非空、reviewLogs 2 条留痕时间升序)。;前端 hl-admin 9c9190d0 已实现:详情抽屉 lines 补凭证列(非空才出列,影像新窗打开)+审核记录区块(OperationLogTimeline,动作中文/意见/状态流转,空不显),spec 11/11,checkpoint 全绿。" updated_at: "2026-09-16" base: "dev-v3" --- # 报账详情补透出支出行凭证 voucherUrls + 审核流水 reviewLogs > **服务**: hl-order-service-v3(hl-finance 模块) > **类型**: ✏️ 修改接口(**纯出参字段新增**,无存量字段/路径/语义变更,向后兼容) > **日期**: 2026-09-16 > **接口**: `GET /admin/finance/reimburses/{id}`(报账执行单详情) > **关联**: Issue #7790 / #7791,PR #7794 / #7795 --- ## 🔴 一句话给前端 报账详情接口出参加了两块,都是**纯新增字段**,老前端不读也不影响: | 新增字段 | 位置 | 内容 | |---|---|---| | `voucherUrls` | `lines[]` 每一项 | 该支出行的凭证 URL 数组(发票/收据影像),无凭证为 null | | `reviewLogs` | 详情顶层 | 该单的审核流水列表(复核批准/退回/反审每次一条),按审核时间升序 | --- ## 一、支出行明细 lines 补凭证 `voucherUrls` 复核人员核对垫付时,现在能直接在详情里看到每笔支出的凭证影像,不用再跳核单详情页。 **`lines[]` 项新增字段**: | 字段 | 类型 | 说明 | |---|---|---| | `voucherUrls` | `string[]` | 凭证 URL 数组(发票/收据影像);**无凭证时为 null**(前端做好空态) | 其余 `lines[]` 字段不变(category/categoryName/itemName/unitPrice/quantity/amount/reimburseAmount/paymentMethod/paymentMethodName/date/remark)。 ## 二、详情新增审核流水 `reviewLogs` 报账单复核(审核)现在**全程留痕**:每次批准/退回/反审都记一条,单据被反复审核也能追溯每一步。 **详情顶层新增字段**: | 字段 | 类型 | 说明 | |---|---|---| | `reviewLogs` | `ReviewLogVO[]` | 审核流水,按审核发生时间**升序**;无记录返回空数组 `[]` | **`ReviewLogVO` 字段**: | 字段 | 类型 | 说明 | |---|---|---| | `logId` | string | 审核流水 ID(string 序列化) | | `action` | string | 审核动作:`APPROVE` 批准 / `RETURN` 退回 / `UN_APPROVE` 反审 | | `operatorId` | string | 审核操作人 ID(string 序列化) | | `operatorName` | string | 审核操作人姓名快照 | | `opinion` | string | 审核意见(批准意见 / 退回原因;**反审为 null**) | | `fromStatus` | string | 操作前单据状态(PENDING/APPROVED) | | `toStatus` | string | 操作后单据状态(APPROVED/CLOSED/RETURNED/PENDING) | | `createTime` | string | 审核发生时间(yyyy-MM-dd HH:mm:ss) | ## 三、示例(详情出参节选) ```json { "id": "2100084841021145090", "reimburseNo": "BZ-202609160003", "status": "PENDING", "lines": [ { "category": "HOTEL", "categoryName": "住宿", "itemName": "呼伦贝尔香格里拉大酒店-大床房", "reimburseAmount": 1200.00, "paymentMethod": "CASH_PAID", "voucherUrls": ["https://oss.example.com/voucher-hotel-day1.jpg"] } ], "reviewLogs": [ { "logId": "55501", "action": "APPROVE", "operatorId": "7", "operatorName": "腰苏图", "opinion": "复核无误", "fromStatus": "PENDING", "toStatus": "APPROVED", "createTime": "2026-09-16 12:50:44" } ] } ``` ## 四、前端对接建议 - 详情页「支出行明细」表格每行可加凭证入口(voucherUrls 非空时显示,点击看影像);空数组/null 不显示入口。 - 详情页可加「审核记录」区块,渲染 reviewLogs 时间线(动作中文名映射:APPROVE=批准 / RETURN=退回 / UN_APPROVE=反审),显示操作人/时间/意见/状态流转。 - 两字段都是新增,老前端不升级不影响现有功能。 ## 五、影响评估 / 回滚 - **纯出参新增**,无存量字段/路径变更,向后兼容,无回滚负担。 - 已部署测试服并造数实证通过。 ## 六、关联 / 联系人 - Issue:[#7790](https://git.1814.love:8443/wx/HL/issues/7790)(凭证透出)、[#7791](https://git.1814.love:8443/wx/HL/issues/7791)(审核流水) - PR:[#7794](https://git.1814.love:8443/wx/HL/pulls/7794)、[#7795](https://git.1814.love:8443/wx/HL/pulls/7795) - 前置:[报账款模块接入指引](16_7721_报账款模块接入指引-新增接口-管理后台.md) - 负责人:腰苏图(yst)| 反馈:财务域后端对接群 / 直接 @yst