46 lines
2.3 KiB
Markdown
46 lines
2.3 KiB
Markdown
# 已销调整与红冲记录缺陷修复设计
|
||
|
||
## 目标
|
||
|
||
修复腾讯文档“测试组测试问题”中无歧义的四组问题:
|
||
|
||
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`。
|
||
- 前端红冲记录契约测试验证收费员下拉和新增列。
|
||
- 后端红冲服务单测验证已结账、未结账两条映射路径。
|
||
- 导出表头测试验证“操作员”“收费时间”。
|
||
|
||
## 非目标
|
||
|
||
- 不调整已销调整申请原因、账单名称权威来源或其他旧营收字段。
|
||
- 不新增红冲记录操作按钮。
|
||
- 不改变柜台结账聚合或红冲业务状态机。
|