文件
hl-api-changelog/changelogs-v2/2026-10/01_8673_应付款列表默认只看欠款+付款明细补全量支付状态-修改接口-管理后台.md
T
2026-10-01 13:32:32 +08:00

148 行
7.3 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
---
schema: "hl-changelog/v2"
ticket: "8673"
title: "应付款:列表默认只看欠款 + 付款明细补全量支付状态(#8673)"
consumer: "admin"
author: "yst(GIT)"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "not_required"
frontend_status: "implemented"
frontend_owner: "hl-admin(claude-opus-4-8)"
frontend_ref: "1be140db4ac9fde579b06e934078c0675db1b6b8"
target_release: "v2.1"
verified_at: "2026-10-01"
status_note: "应付款两处调整。①【破坏性】按团号/按供应商列表默认空 status 从「全部」改为「只看欠付 OWED」:已付清/金额归零的团和供应商默认不再返回,需显式传 status=PAID 或 ALL 回看;status 过滤从内存过滤下沉 SQL,修复了分页 total 与返回行数不一致的 bug。②付款建议明细出参新增 payableAmount/paidAmount/appliedAmount/payStatus 四件套(additive),入参新增 includePaid(默认 false);includePaid=true 时已付清行也返回(payStatus=PAID 置灰),点付款可看到「哪些已付、哪些未付」全景。payStatus 判据=无可申请余额即 PAID(覆盖真已付清 + applied 全额占用)。前端已交付:统计列表筛选项对齐 OWED/PAID/ALL、默认显式钉 OWED 只看欠款(回看切 PAID/ALL);两个付款面板与应付款详情均 includePaid=true 全景,PAID 行置灰禁勾显「已付清」、PARTIAL 显「部分已付」。"
updated_at: "2026-10-01"
base: "dev-v3"
---
# finance:应付款列表默认只看欠款 + 付款明细补全量支付状态(管理后台)
> ⚠️ **破坏性变更**:`GET /admin/finance/payments/stats/by-team` 和 `/by-supplier` 不传 `status` 时,从「返回全部(含已付清)」改为「只返回有欠付(OWED)的行」。已付清的团/供应商默认从列表消失,需显式传 `status=PAID` 或 `status=ALL` 回看。
> ✅ **additive**:付款建议明细出参新增 4 字段、入参新增 `includePaid`,旧前端不传不受影响。
## 1. 接口背景
财务「应付款」按团号/按供应商两个列表,原把头表所有行(含已付清、金额归零)都返回,干扰财务看「还欠谁的」;且 status 过滤是后端内存过滤,只滤当前页导致分页 total 不准。点付款时的明细只给「剩余可申请余额」,看不到每个资源「该付多少、付了多少、还差多少」,已付清的资源行直接被滤掉。
本次:列表默认只看欠款 + 修 total 不准;付款明细补全量支付状态。
## 2. 变更清单
| # | 接口 | 变更 | 类型 |
|---|---|---|---|
| 1 | GET /payments/stats/by-team | 默认空 status=只看 OWED;status 新增 ALL;过滤下沉修 total | ⚠️ 行为变更 |
| 2 | GET /payments/stats/by-supplier | 同上 | ⚠️ 行为变更 |
| 3 | GET /payments/suggestions | 出参加 4 字段;入参加 includePaid | ✅ additive |
| 4 | GET /payments/suggestions/by-supplier | 同上 | ✅ additive |
## 3. 接口详情
统一前缀 `GET /admin/finance/payments/**`(业务调用**不带**服务前缀,网关按 `/admin/finance/**` 路由)。
## 4. 入参
### 4.1 列表(by-team / by-supplier)
| 参数 | 说明 |
|---|---|
| keyword | 团号/产品名/客人名(by-team)或供应商名(by-supplier)模糊 |
| status | ⚠️ `OWED` 有欠付 / `PAID` 已付款 / `ALL` 全部;**空=默认只看 OWED(新)** |
### 4.2 付款建议(suggestions / by-supplier)
| 参数 | 说明 |
|---|---|
| orderId / supplierId | 必填 |
| includePaid | 新增,默认 `false`;`true` 时返回含已付清行的全量明细 |
## 5. 出参
### 5.1 列表行(不变)
by-team:`teamNo, productName, customerName, orderNos, departDate, returnDate, payableAmount, appliedAmount, paidAmount, owedAmount, supplierCount, status`
by-supplier:`supplierId, supplierName, category, payableAmount, appliedAmount, paidAmount, owedAmount, teamCount, status`
### 5.2 付款建议行(PaymentSuggestionRowVO 新增 4 字段)
原字段 + 新增:
| 字段 | 说明 |
|---|---|
| payableAmount | 该行该付总额 |
| paidAmount | 已付金额 |
| appliedAmount | 已申请占用金额(在途付款单) |
| payStatus | `UNPAID` 未付 / `PARTIAL` 部分已付 / `PAID` 已付清(无可申请余额) |
## 6. 枚举/数据字典
### status(列表筛选 + 行出参)
| 值 | 含义 |
|---|---|
| OWED | 有欠付(欠付 > 0) |
| PAID | 已付款(欠付 <= 0,含金额归零) |
| ALL | 全部(仅筛选用,回看已付清) |
### payStatus(付款建议行出参,新增)
| 值 | 含义 |
|---|---|
| UNPAID | 未付(已付=0,仍可申请) |
| PARTIAL | 部分已付(已付>0 且仍有可申请余额) |
| PAID | 无可申请余额(含真已付清 + applied 全额占用,置灰不可再勾选) |
## 7. 错误码
无新增。
## 8. 示例
### 8.1 典型:默认只看欠款
```http
GET /admin/finance/payments/stats/by-team
→ 只返回有欠付的团,已付清团不出现;total 与返回行数一致
```
### 8.2 回看已付清
```http
GET /admin/finance/payments/stats/by-team?status=ALL
→ 返回全部(含已付清团,status=PAID)
```
### 8.3 点付款看全量(含已付清行置灰)
```http
GET /admin/finance/payments/suggestions?orderId=66001&includePaid=true
→ rows 含已付清行:
{"resourceName":"呼和塔拉草原","payableAmount":240.00,"paidAmount":240.00,"appliedAmount":0,"payStatus":"PAID",...}
{"resourceName":"阿尔山门票","payableAmount":500.00,"paidAmount":100.00,"appliedAmount":0,"payStatus":"PARTIAL",...}
{"resourceName":"白桦林","payableAmount":300.00,"paidAmount":0,"appliedAmount":0,"payStatus":"UNPAID",...}
```
## 9. 业务边界
- 列表默认 OWED 视图下,金额归零(行全取消)的团因 owed<=0 归 PAID,自然隐藏。
- includePaid=true 返回的已付清行(payStatus=PAID)**不可再发起付款申请**,前端置灰禁勾选。
- 列表 status 过滤已下沉 SQL,分页 total 与返回行严格一致。
## 10. 修改前后对比
| 项 | 修改前 | 修改后 |
|---|---|---|
| 列表空 status | 返回全部(含已付清/归零) | 只返回有欠付 OWED |
| status 过滤 | 内存过滤,total 不准 | SQL 下沉,total 准确 |
| status 取值 | OWED/PAID | OWED/PAID/ALL |
| 付款明细行金额 | 只有余额 amount | 加 payable/paid/applied/payStatus |
| 已付清资源行 | 被滤掉看不到 | includePaid=true 可见(置灰) |
## 11. 影响评估/回滚
- **列表默认变更**:老前端不传 status 时已付清行消失,需前端确认是否接受/补 status 控件。
- **付款明细**:additive,旧前端不传 includePaid、不读新字段则零影响。
- 回滚:恢复 selectPage 旧签名 + Service 默认口径即可。
## 12. 注意事项
- ⚠️ 列表默认只看欠款是**破坏性变更**,前端若依赖「默认看到已付清历史」需改为显式传 status=ALL。
- payStatus=PAID 的语义是「无可申请余额」(含 applied 全额占用),非严格「已付清」,前端置灰即可。
- 供应商维度中 supplierId= null 的降级行计入团头但不计入任何供应商,两视图金额可能对不上(历史口径,本次未改)。
## 13. 关联/联系人
- Issue:https://git.1814.love/wx/HL/issues/8673
- PR:https://git.1814.love/wx/HL/pulls/8674
- merge commit:a8cf8e13109ea713c28e8be527d0a27d0f2e63fb
- 后端负责人:腰苏图