feat(changelog): 司导预支(司导借款)支付链接通——出纳 ADVANCE 页签 queue/pay 真实接通(Epic #7901,PR #7902/#7906/#7910 已合并 dev-v3 部署测试服 E2E 通过;原 598607 空壳下线,金额锁死 598610,新增错误码 599500-599505)
changelog-filename-gate / validate (push) Failing after 2s

这个提交包含在:
yaosutu
2026-09-18 11:28:02 +08:00
父节点 0119ffca67
当前提交 26e995a97e
@@ -0,0 +1,438 @@
---
schema: "hl-changelog/v2"
ticket: "advance-cashier-pay-link"
title: "司导预支(司导借款)支付链接通——出纳 ADVANCE 页签 queue/pay 两端点真实接通(原 598607 空壳下线)"
consumer: "admin"
author: "yst(GIT)"
change_type: "新增接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "pending"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: "2026-09-18"
status_note: "财务出纳「司导借款支付」页签(ADVANCE)此前在拆壳合芯 #7855 中为预留空壳,queue/pay 调用一律 598607「预留未接通,前端勿接」。本次 Epic #7901(PR #7902/#7906/#7910,已全部合并 dev-v3 并部署测试服,E2E 验证通过)真实接通:order 域预支审批通过后自动推送生成财务执行单 fin_advance(APPROVED)进入出纳待支付队列;出纳登记付款后记资金流水 OUT、执行单回写 PAID,并事件回写 order 域 order_advance PAID。路径沿用拆壳时已分配的 GET/POST /admin/finance/cashier/advance/{queue,pay}(非 /v3 前缀),入参/出参结构与拆壳契约一致,本次仅把行为从 598607 改为真实业务;付款金额锁死=队列行 amount(598610),前端应禁用金额输入直接回填。"
updated_at: "2026-09-18"
base: "dev-v3"
---
# 司导预支(司导借款)支付链接通(管理后台)
> **服务**: hl-order-service-v3(hl-finance 模块,端口 8086,财务表与 order v3 同库 hl_order_service_v3)
> **类型**: 预留空壳真实接通(路径/入参/出参字段结构沿用 #7855 拆壳契约不变,行为从 598607 改为真实业务,前端视角等价新增可对接接口)
> **日期**: 2026-09-18
> **影响范围**: 管理后台财务域「出纳支付管理 - 司导借款支付(ADVANCE)」页签(原置灰/勿接,现可对接)
> **覆盖 Epic**: #7901(PR #7902 地基 fin_advance 表+错误码 / PR #7906 审批推送+队列接通 / PR #7910 出纳付款接通+事件回写+菜单)
---
## 一、接口背景
司导预支(司导借款)= 订单执行中司机/导游向公司预借的备用金,从公司资金账户真实出款,属于出纳付款业务。完整链路:
```
订单详情创建预支(SUBMITTED 待审批)
-> 财务审批通过(order 域 order_advance APPROVED)
-> 自动推送生成财务执行单 fin_advance(状态 APPROVED,进入出纳 ADVANCE 待支付队列)
-> 出纳在「司导借款支付」页签登记付款(记资金流水 OUT)
-> fin_advance 回写 PAID;同事务事件回写 order 域 order_advance PAID(队列出队)
```
关键口径:
- **队列只有一笔状态**:队列内单据 status 恒为 APPROVED(已审批待支付);付款成功翻 PAID 后自动出队。无草稿/审批中/驳回单,也没有独立复核环节。
- **金额推送时冻结**:财务执行单金额是审批通过时的快照,出纳付款金额**锁死**(须严格等于队列行 amount,不一致 598610 硬拦),不允许改额。
- **队列无手续费**:预支线无手续费概念,队列行 fee 恒为 0、actualAmount = amount;付款入参 fee 不传或传 0。
- **付款成功有最终一致旁路**:order 域预支单状态由事件 AFTER_COMMIT 回写,极端情况下回写失败只告警不影响付款主链(财务侧已 PAID、钱已出账为准)。
此前状态(#7855 拆壳合芯,见 changelog 台账 214):ADVANCE 页签两个端点是契约占位空壳,调用一律返 **598607「付款类型非法…ADVANCE 司导预支」预留未接通**,前端被要求勿接。**本次起该页签真实可用,598607 不再可能由这两个端点返回。**
---
## 二、变更清单
| # | 方法 | 路径 | 变更类型 | 说明 |
|---|------|------|----------|------|
| 1 | GET | /admin/finance/cashier/advance/queue | 空壳转接通 | 司导预支待付款队列:原一律 598607,现真实返回 fin_advance 中 status=APPROVED 分页 |
| 2 | POST | /admin/finance/cashier/advance/pay | 空壳转接通 | 司导预支登记付款:原一律 598607,现真实记 OUT 流水 + 回写 PAID + 事件回写 order_advance |
| 3 | 错误码段位 599500-599599 | 新增 | 预支支付链专属段位(hl-finance),启用 599500/599501/599502/599504/599505(599503 预留) |
| 4 | 页签标识 ADVANCE | 可启用 | 出纳 8 页签之一;台账接口 bizType=ADVANCE 同步可见(已付款流水) |
> 路径前缀为 /admin/finance/cashier/advance(**无 /v3 版本前缀**,与其余 7 个出纳页签一致,经网关 /admin 路由到 hl-finance)。
---
## 三、接口详情
| 项 | 说明 |
|---|---|
| 使用场景 | 管理后台「财务 - 出纳支付管理 - 司导借款支付」页签:拉待支付队列、对单笔预支登记付款 |
| 认证 | 管理后台 JWT(网关统一鉴权),需出纳付款相关菜单/按钮权限 |
| 幂等性 | queue 只读幂等。pay 为 APPROVED 到 PAID 条件更新(CAS):服务端先对单据行 SELECT ... FOR UPDATE 行锁 + 锁内状态校验,重复付款/并发重复提交后到的请求返 **599502**,资金流水随事务回滚不留孤儿流水,重复提交安全 |
| 限流 | 走网关统一限流,无模块特殊限流 |
| ID 序列化 | 所有 Long 型 ID(队列行 id、入参 bizId/payAccountId、出参 flowId/bizId)JSON 中均为 **String**,防 JS 精度丢失;前端回传 bizId 时按字符串原样回传即可 |
| 单据状态机 | APPROVED(已审批待支付,推送即此态,队列内唯一状态)到 PAID(已支付,出纳付款回写,终态) |
| 排序与分页 | 队列按 advance_id 倒序(最新推送在前),分页 page/pageSize,默认 page=1、pageSize=20 |
---
## 四、接口入参
### 4.1 待付款队列 GET /admin/finance/cashier/advance/queue(Query 参数 CashierQueueFormReqVO)
| 字段 | 类型 | 必填 | 默认 | 说明 | 校验 |
|------|------|------|------|------|------|
| page | Integer | 否 | 1 | 页码 | 大于等于 1;兼容别名 pageNo(传 pageNo 等价) |
| pageSize | Integer | 否 | 20 | 每页条数 | 1-100,超 100 返 400 |
> 无任何业务筛选参数(不按状态/日期/单号筛选),队列固定只捞 APPROVED 单。
### 4.2 登记付款 POST /admin/finance/cashier/advance/pay(JSON body CashierPayFormReqVO)
| 字段 | 类型 | 必填 | 说明 | 校验/联动 |
|------|------|------|------|-----------|
| bizId | Long(JSON 字符串) | 是 | 业务单据ID,**取队列行 id**(fin_advance.advance_id) | 非空;不存在/已软删 -> 599500 |
| payAccountId | Long(JSON 字符串) | 是 | 出账公司账户ID(fin_fund_account,资金账户下拉选择) | 非空;账户不存在/停用 -> 598603 |
| payMethod | String | 建议必传 | 付款方式,字典 fin_pay_way 码值:CASH 现金 / BANK 银行转账 / THIRD_PARTY 三方支付 | 与 payChannel、账户类型三级联动(见 §六、§九);不传时跳过方式-账户校验,不建议前端留空 |
| payChannel | String | 条件必填 | 付款渠道:WXPAY 微信支付 / ALIPAY 支付宝;**仅 payMethod=THIRD_PARTY 时传**,CASH/BANK 不得传 | 最长 20;组合不匹配 -> 598608 |
| amount | Number | 是 | 付款金额,**必须等于队列行 amount(金额锁死,前端禁用编辑直接回填)** | 非空且大于 0(否则 598605);与快照不一致 -> 598610 |
| fee | Number | 否 | 手续费(大于等于 0,挂出账流水);预支线固定传 0 或不传 | 负数 -> 598605 |
| voucherNo | String | 否 | 付款凭证号(如银行回单流水号) | - |
| voucherUrl | String | 否 | 付款凭证影像 URL(OSS 地址) | - |
| payDate | String | 是 | 付款日期,格式 **yyyy-MM-dd**,可回溯补录(允许选今天以前的日期) | 非空;格式非法 -> 400 |
> 入参里**没有** bizType/payType(路径即类型),也**没有**经办人/operatorName(后端自动取当前登录人快照,前端伪造无效)。
---
## 五、出参字段
### 5.1 队列出参:Result<PageResult<AdvanceQueueRowRespVO>>
外层为统一包装 Result(code/message/data/traceId/success),data 为分页结构 records / total / page / pageSize。
records[] 每行字段(共 10 个):
| 字段 | 类型 | 说明 |
|------|------|------|
| id | String | 单据ID(fin_advance 雪花 ID)。**付款时作为 bizId 原样回传** |
| bizNo | String | 业务单号 = 预支单号,格式 YZ- + yyyyMMdd + 4 位序号(如 YZ-20260918-0007) |
| amount | Number | 付款金额(审批通过时快照冻结,**即付款金额锁死基准**) |
| fee | Number | 手续费,预支线**恒为 0** |
| actualAmount | Number | 实付 = amount − fee;预支线下恒等于 amount |
| operatorName | String | 借款对象姓名快照(收款人/司导姓名 payeeName,改名不追溯) |
| createTime | String | 推送时间,yyyy-MM-dd HH:mm:ss(fin_advance 建单时间,即审批通过推送时间) |
| occurDate | String | 发生日期(yyyy-MM-dd);**fin_advance 无来源列,恒返回 null**,前端渲染用「-」兜底即可 |
| status | String | 单据状态,队列内恒为 APPROVED |
| remark | String | 备注;**fin_advance 无备注列,恒返回 null** |
> 队列行不返回订单号/借款类型/收款人 ID 等字段(单号 YZ- 与借款对象姓名为页面展示锚点;如需订单号需走 order 域预支详情接口,不在本页签契约内)。
### 5.2 付款出参:Result<CashierPayRespVO>
| 字段 | 类型 | 说明 |
|------|------|------|
| flowId | String | 资金流水ID(fin_fund_flow 雪花 ID) |
| flowNo | String | 资金流水号,格式 LS + yyyyMMdd + 4 位序号(如 LS202609180012) |
| balanceAfter | Number | 本笔记完后出账账户结存快照(可用于付款成功提示「账户余额 xxx」) |
| bizId | String | 业务单据ID(fin_advance.advance_id,已回写 PAID),与入参 bizId 相同 |
---
## 六、枚举 / 数据字典
### 6.1 单据状态 status(队列行出参)
| 值 | 中文 | 是否在队列 |
|----|------|-----------|
| APPROVED | 已审批待支付 | 是,队列内唯一值 |
| PAID | 已支付(终态) | 否,付款后出队 |
### 6.2 付款方式 payMethod(字典 fin_pay_way)
| 值 | 中文 | 渠道约束 | 账户约束 |
|----|------|----------|----------|
| CASH | 现金 | 不得传 payChannel | 须选现金类账户 |
| BANK | 银行转账 | 不得传 payChannel | 须选银行类账户 |
| THIRD_PARTY | 三方支付 | **必传** payChannel=WXPAY/ALIPAY | 须选对应渠道的商户号账户 |
### 6.3 付款渠道 payChannel
| 值 | 中文 |
|----|------|
| WXPAY | 微信支付 |
| ALIPAY | 支付宝 |
### 6.4 页签标识 ADVANCE
出纳已付款流水台账 GET /admin/finance/cashier/payments/page(8 页签共用,本次契约不变)查本页签已付款流水时传 bizType=ADVANCE;台账中 ADVANCE 单号前缀为 YZ-。
---
## 七、错误码
响应体形态:{"code": 码值, "message": "文案", "traceId": "...", "success": false},HTTP 状态码通常仍为 200(业务错误码在 body.code)。
### 7.1 预支支付链专属(段位 599500-599599,本次新增)
| code | message | 触发场景 | 前端处理建议 |
|------|---------|----------|-------------|
| 599500 | 预支单不存在 | bizId 无效或已被软删(如拿旧队列数据付款) | 提示「预支单不存在」并刷新队列 |
| 599501 | 预支单非待支付状态 | 单据既不是 APPROVED 也不是 PAID(异常中间态/并发状态漂移) | 提示后刷新队列 |
| 599502 | 预支单已支付 | 重复付款:单据已 PAID;含并发下 CAS 条件更新 0 行兜底 | 提示「该单已支付,请勿重复付款」并刷新队列(该单应已消失) |
| 599503 | 预支金额非法 | **预留码,当前付款链路不抛出(勿按此码写分支)**;语义为 amount 为 null 或小于等于 0 的脏数据拦截 | - |
| 599504 | 预支单已推送过财务 | order 域审批推送侧防重复推送(uk 约束/取号撞号重试耗尽)。**出纳前端正常操作遇不到** | 出现属后端异常,报 traceId |
| 599505 | 预支推送快照数据非法 | order 域推送入口快照字段缺失/金额小于等于 0 fail-fast。**出纳前端遇不到** | 出现属后端异常,报 traceId |
### 7.2 复用车看出纳通用码(段位 598600-598699)
| code | message | 触发场景 |
|------|---------|----------|
| 598603 | 出账账户不存在或已停用 | payAccountId 无效 / 账户被停用(弹窗前请重新拉账户下拉) |
| 598604 | 账户余额不足且不允许透支 | 出账账户余额不够且未开透支 |
| 598605 | 付款金额无效(金额须大于0,手续费不得为负) | amount 小于等于 0 / null,或 fee 小于 0(前端锁死回填正常不会触发) |
| 598608 | 收付方式与收付渠道不匹配(THIRD_PARTY 须传渠道 WXPAY/ALIPAY,其余方式不得传渠道) | THIRD_PARTY 没传/传了非法 payChannel;或 CASH/BANK 带了 payChannel |
| 598609 | 收付账户与收付方式不匹配(现金方式须选现金账户、银行转账须选银行账户、三方支付须选对应渠道商户号账户) | 付款方式与所选账户类型不一致;THIRD_PARTY 时渠道与账户渠道不一致 |
| 598610 | 付款金额与单据应付金额不一致(出纳付款须严格按审批应付金额,不得修改) | **金额锁死**:amount 不等于队列行快照金额(含前端误传/用户改额) |
| 598607 | 付款类型非法(含 ADVANCE 司导预支文案) | **接通后这两个端点不会再返回**;若仍见到 598607 说明打到旧版本后端,先确认部署版本 |
### 7.3 参数校验错误
JSR-303 注解校验失败(bizId/payAccountId/amount/payDate 为空、pageSize 大于 100、payDate 格式错误等)走全局 400 校验响应,字段级 message 为中文(如「业务单据ID不能为空」「付款日期不能为空」)。
---
## 八、示例
### 8.1 典型成功——拉队列 -> 登记银行转账付款
**第 1 步:拉待付款队列**
请求:
```
GET /admin/finance/cashier/advance/queue?page=1&pageSize=20
Authorization: Bearer <管理后台 JWT>
(无请求体)
```
响应:
```json
{
"code": 200,
"message": "成功",
"data": {
"records": [
{
"id": "1962180000000000101",
"bizNo": "YZ-20260918-0007",
"amount": 3000.00,
"fee": 0,
"actualAmount": 3000.00,
"operatorName": "布仁",
"createTime": "2026-09-18 09:12:35",
"occurDate": null,
"status": "APPROVED",
"remark": null
}
],
"total": 1,
"page": 1,
"pageSize": 20
},
"traceId": "a1b2c3d4-e5f6-7890",
"success": true
}
```
无待支付单时(空态):
```json
{
"code": 200,
"message": "成功",
"data": { "records": [], "total": 0, "page": 1, "pageSize": 20 },
"traceId": "a1b2c3d5-e5f6-7891",
"success": true
}
```
**第 2 步:登记付款(金额回填队列 amount,禁用编辑)**
请求:
```
POST /admin/finance/cashier/advance/pay
Authorization: Bearer <管理后台 JWT>
Content-Type: application/json
```
```json
{
"bizId": "1962180000000000101",
"payAccountId": "1956000000000000001",
"payMethod": "BANK",
"amount": 3000.00,
"fee": 0,
"voucherNo": "TRANS20260918007",
"voucherUrl": "https://oss.example.com/voucher/20260918/yz0007.pdf",
"payDate": "2026-09-18"
}
```
响应:
```json
{
"code": 200,
"message": "成功",
"data": {
"flowId": "1962190000000000202",
"flowNo": "LS202609180012",
"balanceAfter": 87600.00,
"bizId": "1962180000000000101"
},
"traceId": "b2c3d4e5-f6a7-8901",
"success": true
}
```
付款成功后该单 fin_advance 已 PAID 并出队;前端刷新队列此单消失,可在已付款流水台账(bizType=ADVANCE)查到 LS202609180012。
### 8.2 边界情况——重复付款被拦截(599502)
**场景**:同一队列行连续点了两次「确认付款」(或两个出纳同时操作)。第一笔成功,第二笔在服务端行锁内见到单据已 PAID。
请求(与 8.1 第 2 步完全相同的报文再发一次)
响应:
```json
{
"code": 599502,
"message": "预支单已支付",
"traceId": "c3d4e5f6-a7b8-9012",
"success": false
}
```
前端处理:提示「该预支单已支付,请勿重复付款」,重新拉队列(该单已不在队列),不要重试原请求。
> 同形态的陈旧数据边界:拿着已过期的队列缓存付款,若单据已支付同样是 599502;若单据被软删则是 599500。
### 8.3 业务失败——付款金额与单据不一致(598610,金额锁死)
**场景**:前端未锁死金额(或被人为改成 2800.00)。
请求:
```
POST /admin/finance/cashier/advance/pay
Authorization: Bearer <管理后台 JWT>
Content-Type: application/json
```
```json
{
"bizId": "1962180000000000101",
"payAccountId": "1956000000000000001",
"payMethod": "BANK",
"amount": 2800.00,
"payDate": "2026-09-18"
}
```
响应:
```json
{
"code": 598610,
"message": "付款金额与单据应付金额不一致(出纳付款须严格按审批应付金额,不得修改)",
"traceId": "d4e5f6a7-b8c9-0123",
"success": false
}
```
其他高频失败形态(响应结构同上,换 code/message):
- 三方支付没选渠道:598608「收付方式与收付渠道不匹配…」
- 现金方式选了银行账户:598609「收付账户与收付方式不匹配…」
- 账户余额不足:598604「账户余额不足且不允许透支」
- 必填缺失(如 payDate 未传):HTTP 400 全局校验响应,message「付款日期不能为空」
---
## 九、业务边界
- **适用**:队列仅展示 status=APPROVED 的预支财务执行单(来源:order 域预支审批通过自动推送);出纳对其登记付款。
- **不适用**:
- 草稿 / 待审批 / 已驳回的预支不进队列(在 order 域审批链路,出纳看不到)。
- 已支付 PAID 单不出现在队列;拿旧 bizId 再付款 -> 599502。
- 队列查询不支持按单号/借款人/日期筛选(后端固定捞全量 APPROVED 分页)。
- **金额锁死(最重要)**:pay.amount 必须与队列行 amount 完全一致(BigDecimal 按数值比较,3000 与 3000.00 视为相等),不一致一律 598610。**前端付款弹窗金额输入框应禁用/只读,打开弹窗时用队列行 amount 回填**,不要给出纳留改额入口。
- **方式-渠道-账户三级匹配**:THIRD_PARTY 必须带 WXPAY/ALIPAY 且选对应渠道商户号账户(否则 598608/598609);CASH/BANK 不得带 payChannel。
- **并发安全**:双人同时付同一单不会重复出款——行锁 + CAS,后到者 599502,资金流水随事务回滚。
- **余额与透支**:账户余额不足且不允许透支 -> 598604,付款整笔失败,单据仍是 APPROVED 留在队列,可换账户/充值后重试。
- **payDate 可补录**:允许选历史日期(出纳补登场景),不允许空、格式必须 yyyy-MM-dd。
- **支付后状态回写有旁路延迟**:财务侧 PAID 与出账为同事务强一致;订单侧 order_advance 状态由事件提交后异步回写,前端「订单详情-预支列表」若短时间仍显示待支付可提示刷新,不影响资金结果。
---
## 十、修改前后对比
### 10.1 行为对比(本次为同路径空壳接通)
| 项 | 接通前(#7855 空壳) | 接通后(#7901,本次) |
|----|----------------------|----------------------|
| GET .../advance/queue | 直接抛 598607,无任何数据 | 返回 fin_advance APPROVED 分页(10 字段强类型行) |
| POST .../advance/pay | 直接抛 598607,不出账 | 行锁校验 -> 金额锁死 -> 记 OUT 流水 -> 回写 PAID -> 事件回写 order_advance |
| 前端策略 | 页签置灰/不接入(文档明确「勿接」) | **正式对接,放开页签** |
| 路径 / HTTP 方法 / 入参字段 / 出参字段 | - | **完全不变**(拆壳时已按强类型契约建好) |
| 页签 bizType=ADVANCE 台账 | 无 ADVANCE 流水 | 付款后可见 LS- 流水(台账接口本身无改动) |
### 10.2 错误码对比
| 场景 | 接通前 | 接通后 |
|------|--------|--------|
| 调 queue/pay | 598607(任何入参都抛) | 正常业务响应;失败按原因返 599500/599501/599502/598603/598604/598605/598608/598609/598610 |
| 重复付款 | 598607 | 599502 预支单已支付 |
> 因字段契约零变化,无字段级增删改;前端此前若已按 #7855 文档预埋了 ADVANCE 类型定义,可直接启用。
---
## 十一、影响评估 / 回滚
### 11.1 影响评估
- **是否破坏向后兼容**:否。路径、方法、入参/出参结构均未变;仅行为从「返 598607」变为真实业务,此前无前端真实调用(空壳期约定勿接)。
- **前端是否必须同步上线**:否,但需要**主动放开**原被要求置灰/勿接的「司导借款支付」页签并接线;不接线不影响其他 7 个页签。
- **数据/DDL**:PR-1 新建财务执行单表 fin_advance(Flyway 随 hl-finance 部署),队列与付款只读写该表及 fin_fund_flow;老订单无预支数据时队列自然为空。
- **部署状态**:3 个 PR 已全部合并 dev-v3 并部署测试服,队列 -> 付款 -> PAID 回写 -> order 域状态回写 E2E 验证通过(2026-09-18)。
### 11.2 回滚方案
- 回滚方式:revert PR #7910(付款接通)/ #7906(队列与推送)即可恢复空壳/停推;纯应用层回滚,已产生的 fin_advance/流水数据保留无害。
- 回滚后队列端点会重新返回 598607,前端页签重新置灰即可,无数据迁移、无缓存清理。
---
## 十二、注意事项(给前端的落地清单)
1. **金额控件锁死**:付款弹窗 amount 用队列行 amount 回填且只读,fee 固定 0;不要做可编辑金额框(后端 598610 会硬拦,放开输入只会制造失败弹窗)。
2. **bizId 用队列行 id 字符串**:雪花 ID 全程按字符串处理(列表已序列化为 String,直接回传,不要 Number 化)。
3. **空字段兜底**:队列行 occurDate、remark 恒为 null,列表列用「-」展示,不要当成异常。
4. **operatorName = 借款对象(司导姓名)**:列名建议展示为「借款对象」,不是「申请人」。
5. **付款成功后动作**:关闭弹窗 -> 成功提示(可附带 flowNo 与 balanceAfter)-> 重拉 queue(该单应消失);不要只在本地列表删行后不刷新。
6. **599502 是正常业务拦截不是系统错误**:按「重复付款」语义提示并刷新队列;599500/599501 同样提示后刷新。599504/599505 出纳端正常不会出现,出现请带 traceId 找后端。
7. **若 queue/pay 仍收到 598607**:说明请求落到未部署新代码的旧实例/旧环境,先核对环境版本,不要改前端代码适配。
8. **页签标识**:ADVANCE;单号前缀 YZ-;已付款流水走共用台账 GET /admin/finance/cashier/payments/page?bizType=ADVANCE(契约沿用出纳台账既有约定)。
9. **业务上游入口**:预支申请/审批在订单详情(order 域端点 /v3/admin/order/{orderId}/advance、/v3/admin/order/advance/{advanceId}/approve 等),出纳页签只负责付款,不负责申请与审批。
---
## 十三、关联 / 联系人
### 13.1 链接
- **Epic Issue**: [#7901](https://git.1814.love:8443/wx/HL/issues/7901)
- **PR-1(地基 fin_advance + 错误码 5995xx)**: [#7902](https://git.1814.love:8443/wx/HL/pulls/7902) | merge commit [4d4d69a8](https://git.1814.love:8443/wx/HL/commit/4d4d69a8588c2394b525e33e5073a8cce5df95b2)
- **PR-2(审批推送 + 出纳队列接通)**: [#7906](https://git.1814.love:8443/wx/HL/pulls/7906) | merge commit [9d54a66e](https://git.1814.love:8443/wx/HL/commit/9d54a66ecf7c03ba4b84fbd20fc5e0a7c2d53eeb)
- **PR-3(出纳付款接通 + 事件回写 + 菜单)**: [#7910](https://git.1814.love:8443/wx/HL/pulls/7910) | merge commit [4cf4ae73](https://git.1814.love:8443/wx/HL/commit/4cf4ae73f3a5f1a10e7ba35f962bb056a669c667)
- **前序契约(空壳期)**: PR #7855 出纳支付拆壳合芯 changelog《17_7842_出纳支付接口拆壳合芯-修改接口-管理后台》(ADVANCE 当时标注「预留未接通,前端勿接」)
### 13.2 联系人
- **后端负责人**: @yst(腰苏图)