6.6 KiB
schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base
| schema | ticket | title | consumer | author | change_type | backend_status | gateway_status | frontend_status | frontend_owner | frontend_ref | target_release | verified_at | status_note | updated_at | base |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hl-changelog/v2 | finance-reimburse-partial-receive | 报账款支持部分收款(司导组合还款分多次,新增 PARTIAL_RECEIVED 状态) | admin | yst(GIT) | 修改接口 | merged | verified | verified | mmg | 76adad4b2788de1a7f9cb35a7d6b6c4ec1155289 | 2026-09-17 | 报账款收款确认入账 confirm-in 支持部分收款(司导组合还款分多次:如 600 银行卡+300 现金+100 微信)。①confirm-in 入参加必填 amount(本次收款额,此前无金额字段默认全额);②状态机新增 PARTIAL_RECEIVED 部分收讫中间态(没付齐保持未完结,收齐翻 RECEIVED);③报账详情/队列出参补 receivedAmount/remainingAmount/receivedAt;④资金流水接口加 bizId 过滤(按单据捞收款明细);⑤超额硬拦新错误码 598611。付款侧 pay 不动。已合并 dev-v3(PR #7840),657 测试全绿。 前端 hl-admin 2026-09-17 done:收款入账弹窗加 amount 必填框(默认剩余待收,规则 >0 且 ≤ 剩余),状态字典补 PARTIAL_RECEIVED「部分收款」且该态可续收不可反审,详情补已收/剩余/最后收款时间。 | 2026-09-17 | dev-v3 |
报账款支持部分收款(司导组合还款分多次)
服务: hl-order-service-v3(hl-finance 模块) 类型: ✏️ 修改接口(入参加必填字段 + 出参加字段 + 状态枚举新增 + 新错误码) 日期: 2026-09-16 接口:
POST /admin/finance/cashier/confirm-in(收款确认入账)+GET /admin/finance/reimburses/{id}+GET /admin/finance/cashier/queue+GET /admin/finance/fund-flows/page关联: Issue #7838 / PR #7840
🔴 一句话给前端
司导还款(报账款 RECEIVABLE 方向)现在支持分多次组合收款:一笔应收可以拆成「600 银行卡 + 300 现金 + 100 微信」分次登记,没付齐单据保持「部分收款」未完结,收齐才完结。
前端必改:confirm-in 入参新增必填 amount(本次收款金额),不再默认全额。
一、收款确认入账 confirm-in 入参变化
POST /admin/finance/cashier/confirm-in(bizType=REIMBURSE 时):
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
amount |
number | ✅ 新增必填 | 本次收款金额(>0,≤ 剩余待收)。此前无此字段(默认全额 settle_amount),现在必传 |
其余入参(bizType/bizId/payAccountId/payMethod/payChannel/voucherNo/voucherUrl/payDate)不变。
典型场景(组合还款分 3 次)
应收 1000(RECEIVABLE 单,settleAmount=1000):
| 次数 | 请求 amount | 方式 | 结果 |
|---|---|---|---|
| 第1次 | 600 | 银行卡 | 记流水 +600,已收 600,状态 PARTIAL_RECEIVED |
| 第2次 | 300 | 现金 | 记流水 +300,已收 900,状态 PARTIAL_RECEIVED |
| 第3次 | 100 | 微信 | 记流水 +100,已收 1000=应收,状态翻 RECEIVED 完结 |
每次收款一个账户一种方式,记一条独立资金流水;同一单可多次调 confirm-in 直到收齐。
二、新增状态 PARTIAL_RECEIVED
报账款单据状态枚举新增中间态:
| 状态 | 中文 | 说明 |
|---|---|---|
PARTIAL_RECEIVED |
部分收款(新增) | 已收一部分但未收齐,可继续收款,非终态 |
RECEIVED |
已回款 | 收齐终态(原有) |
状态流转:APPROVED →(首次收款,未收齐)→ PARTIAL_RECEIVED →(续收至收齐)→ RECEIVED;一次收全额则 APPROVED → RECEIVED 直达。
⚠️ PARTIAL_RECEIVED 资金已动(已记流水),不可反审、不可反确认核单(同 PAID/RECEIVED)。前端审核操作按钮对该态应禁用。
三、出参新增字段(报账详情 + 出纳队列行)
GET /admin/finance/reimburses/{id} 详情 + GET /admin/finance/cashier/queue 队列行,均新增:
| 字段 | 类型 | 说明 |
|---|---|---|
receivedAmount |
number | 累计已收金额(部分收款快照,未收过为 0) |
remainingAmount |
number | 剩余待收 = settleAmount − receivedAmount |
receivedAt |
string | 最后收款时间(yyyy-MM-dd HH:mm:ss,未收过为 null) |
前端可据此显示「已收 X / 剩余 Y」,并对 remainingAmount=0 的单隐藏「确认到账」入口。
四、资金流水接口加 bizId 过滤(查收款明细)
GET /admin/finance/fund-flows/page 入参新增:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
bizId |
number | 否 | 业务单据ID。配合 bizType=REIMBURSE 按单据捞该单全部收款流水(收款明细) |
收款明细查询:GET /admin/finance/fund-flows/page?bizType=REIMBURSE&bizId={报账单ID},返回该单每次收款的流水(方式/账户/金额/凭证/时间,flowAt 倒序)。
五、新错误码
| 错误码 | 触发 | 说明 |
|---|---|---|
598611 |
confirm-in 金额 > 剩余待收 | 「收款金额超过剩余待收」——本次收款 ≤ settleAmount − receivedAmount,多还走退款链路 |
598605 |
amount 缺失/≤0 | 「收款金额非法」(复用既有码) |
六、示例(confirm-in 请求 + 响应)
请求(第 1 次收 600 银行卡):
{
"bizType": "REIMBURSE",
"bizId": "2100084841021145090",
"payAccountId": "70001",
"payMethod": "BANK",
"amount": 600.00,
"payDate": "2026-09-16",
"voucherNo": "SK001"
}
响应(记流水成功,单据翻 PARTIAL_RECEIVED):
{
"code": 0,
"data": {
"flowId": "66020",
"flowNo": "LS202609160020",
"balanceAfter": 10600.00,
"bizId": "2100084841021145090"
}
}
七、影响评估 / 回滚
- 入参变化(必看):confirm-in 新增必填
amount——前端必须传,否则 598605。原「不传=全额」改为「传全额=全额」(收全额时传 remainingAmount/settleAmount 即可)。 - 出参新增:receivedAmount/remainingAmount/receivedAt/bizId 纯新增,老前端不读不影响。
- 状态枚举新增:PARTIAL_RECEIVED 新值,前端状态映射表需补中文名「部分收款」。
- 付款侧 pay 不变。已合并 dev-v3,657 测试全绿。