fujian_water_biz_doc/superpowers/specs/2026-07-13-sold-adjustment-red-flush-fix-design.md

46 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 已销调整与红冲记录缺陷修复设计
## 目标
修复腾讯文档“测试组测试问题”中无歧义的四组问题:
1. 已销调整默认展示已收费、未结账且可调整的账单勾选“历史”后展示柜台已结账账单252
2. 已销调整多选筛选参数与后端契约一致195/197
3. 红冲记录收费员筛选改为下拉选择271
4. 红冲记录列表与导出补充操作员、收费时间字段272/273
不实现含义未确认的红冲记录“操作按钮”。
## 设计
### 已销调整
前端继续保留“历史”复选框,默认值设为 `false`。默认查询 `PAID` 可调整记录,勾选后查询 `SETTLED` 已结账历史记录;`buildQueryParams()` 必须显式传递 `isHistory`。多选控件分别传递 `collectionMethodList``custTypeList``waterNatureList``meterTypeList`,不再把数组写入后端单值字段。
后端已有 `isHistory=true -> PayStateEnum.SETTLED` 的查询规则,不改变状态模型。补充契约测试,保证前端请求参数和后端 VO 字段一致。
### 红冲记录
收费员筛选复用系统用户精简列表,显示用户名称并以用户 ID 查询。查询接口继续使用 `cashierId`,不改变后端筛选语义。
后端响应新增 `operatorName``chargeTime`
- 已结账红冲:操作员来自结账明细 `procPerson`,收费时间来自原支付记录 `payTime`
- 未结账红冲:操作员优先取反向支付记录收费员,收费时间来自原支付记录 `payTime`
列表和 Excel 导出统一使用同一响应模型字段,避免页面与导出数据口径不同。导出标题继续由现有 Excel 工具生成。
## 测试
- 前端契约测试验证已销调整默认 `isHistory=false`,并发送 `isHistory` 和四个 `*List` 参数。
- 后端已销调整单测验证 `isHistory=false` 查询 `PAID``isHistory=true` 只查询 `SETTLED`
- 前端红冲记录契约测试验证收费员下拉和新增列。
- 后端红冲服务单测验证已结账、未结账两条映射路径。
- 导出表头测试验证“操作员”“收费时间”。
## 非目标
- 不调整已销调整申请原因、账单名称权威来源或其他旧营收字段。
- 不新增红冲记录操作按钮。
- 不改变柜台结账聚合或红冲业务状态机。