fujian_water_biz_doc/docs/evidence/rev004-accountprocess-ui-element-matrix-2026-04-13.md

251 lines
16 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.

# REV004 / accountProcess 页面元素勾稽矩阵2026-04-13
## 目的
`accountProcess` 当前后端真实口径进一步整理成:
**页面元素 / 弹窗能力 -> 字段 -> 接口 -> 当前证据状态**
便于:
- 前端逐项对表
- UAT 做验收勾稽
- 后端明确哪些已被真实库证实,哪些仍属于页面编排层缺口
> 本表基于当前 `water-backend` 代码、Req/RespVO、已落地真实库 canary 测试结果整理。
---
## 证据状态说明
- **已真实库验证**:已有真实 PostgreSQL + Spring + MockMvc canary 覆盖
- **已代码确认**:可从当前 Controller/RespVO/Service 明确确认,但尚未单独做真实库断言
- **待补证据**:当前还缺更细粒度验证或 UI 编排验证
---
## 一、预存调整页
### A. 列表区
| 页面元素 | 后端字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 列表记录主键 | `id` | `GET /prestorage-page` | 已真实库验证 | 提交后可回查 detail |
| 调整单号 | `adjustmentNo` | `GET /prestorage-page` | 已真实库验证 | 提交后 page 可见 |
| 客户ID | `custId` | `GET /prestorage-page` | 已代码确认 | Response VO 已定义 |
| 工单状态 | `workOrderStatus` | `GET /prestorage-page` | 已真实库验证 | 已验证提交后为 `2=已完成` |
| 调整类型 | `adjustmentType` | `GET /prestorage-page` | 已代码确认 | page/detail 都有 |
| 客户编号 | `custCode` | `GET /prestorage-page` | 已真实库验证 | `REV004_IT_SRC` 已验证 |
| 目标户号 | `targetCustCode` | `GET /prestorage-page` | 已代码确认 | 转账/转预存场景使用 |
| 客户名称 | `custName` | `GET /prestorage-page` | 已代码确认 | |
| 客户地址 | `custAddress` | `GET /prestorage-page` | 已代码确认 | |
| 调整余额 | `adjustAmount` | `GET /prestorage-page` | 已代码确认 | |
| 期初余额 | `preBalance` | `GET /prestorage-page` | 已代码确认 | |
| 期末余额 | `postBalance` | `GET /prestorage-page` | 已代码确认 | |
| 调整原因 | `adjustReason` | `GET /prestorage-page` | 已代码确认 | |
| 备注 | `remark` | `GET /prestorage-page` | 已代码确认 | |
| 登记时间 | `createTime` | `GET /prestorage-page` | 已代码确认 | |
| 登记人员 | `creatorName` | `GET /prestorage-page` | 已代码确认 | |
| 是否可撤销 | `canRevoke` | `GET /prestorage-page` | 已代码确认 | 撤销能力由状态推导 |
| 是否可查看附件 | `canViewAttachment` | `GET /prestorage-page` | 已代码确认 | |
### B. 统计区
| 页面元素 | 后端字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 总条数 | `totalCount` | `GET /prestorage-stat` | 已真实库验证 | |
| 调整余额合计 | `totalAdjustAmount` | `GET /prestorage-stat` | 已代码确认 | |
| 期初余额合计 | `totalPreBalance` | `GET /prestorage-stat` | 已代码确认 | |
| 期末余额合计 | `totalPostBalance` | `GET /prestorage-stat` | 已代码确认 | |
| 预存转账数量 | `transferCount` | `GET /prestorage-stat` | 已真实库验证 | 已验证退款场景下为 0 |
| 预存退款数量 | `refundCount` | `GET /prestorage-stat` | 已真实库验证 | 已验证退款场景下为 1 |
### C. 提交弹窗
| 页面元素 | 入参/出参字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 源客户编号 | `custCode` | `POST /prestorage-submit` | 已真实库验证 | |
| 目标户号 | `targetCustCode` | `POST /prestorage-submit` | 已真实库验证 | 转账场景可用;退款场景未单独验证 |
| 退款金额 | `refundAmount` | `POST /prestorage-submit` | 已真实库验证 | |
| 转账金额 | `transferAmount` | `POST /prestorage-submit` | 已代码确认 | 未单独真实库验证 |
| 原因 | `applyReason` | `POST /prestorage-submit` | 已真实库验证 | |
| 备注 | `remark` | `POST /prestorage-submit` | 已真实库验证 | |
| 附件引用 | `attachmentRefs` | `POST /prestorage-submit` | 已代码确认 | 未单独真实库验证 |
| 调整单号回显 | `adjustmentNo` | `POST /prestorage-submit` 返回 | 已真实库验证 | |
| 结果状态 | `resultStatus` | `POST /prestorage-submit` 返回 | 已真实库验证 | `SUCCESS` |
| 回写状态 | `writeBackStatus` | `POST /prestorage-submit` 返回 | 已真实库验证 | `UPDATED` |
| 提示文案 | `msg/message` | `POST /prestorage-submit` 返回 | 已代码确认 | |
### D. 详情 / 附件 / 流程 / 撤销
| 页面元素 | 后端字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 详情对象类型 | `objectType` | `GET /prestorage-detail` | 已代码确认 | |
| 详情结果状态 | `resultStatus` | `GET /prestorage-detail` | 已真实库验证 | |
| 详情审批状态 | `approvalStatus` | `GET /prestorage-detail` | 已代码确认 | |
| 详情回写状态 | `writeBackStatus` | `GET /prestorage-detail` | 已真实库验证 | |
| 流程任务ID | `processInstanceId` | `GET /prestorage-detail` | 已代码确认 | |
| 附件引用 | `attachmentRefs` | `GET /prestorage-detail` | 已代码确认 | |
| 查看流程 | `processState/stages[]` | `GET /prestorage-process` | 已代码确认 | 预存页流程接口存在,未单独真实库验证 |
| 查看附件 | `ref/resolved/...` | `GET /prestorage-attachments` | 已代码确认 | 预存页附件接口存在,未单独真实库验证 |
| 撤销动作 | `actionType/resultStatus/writeBackStatus` | `POST /prestorage-revoke` | 已真实库验证 | 余额恢复已验证 |
---
## 二、已销调整页
### A. 列表区
| 页面元素 | 后端字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 账单ID | `id` | `GET /sold-page` | 已真实库验证 | |
| 客户ID | `custId` | `GET /sold-page` | 已代码确认 | |
| 账务年月 | `accountMonth` | `GET /sold-page` | 已代码确认 | |
| 客户编号 | `custCode` | `GET /sold-page` | 已真实库验证 | |
| 客户名称 | `custName` | `GET /sold-page` | 已代码确认 | |
| 客户地址 | `custAddress` | `GET /sold-page` | 已代码确认 | |
| 用水性质 | `waterNature` | `GET /sold-page` | 已代码确认 | |
| 开账水量 | `billedWaterVolume` | `GET /sold-page` | 已代码确认 | |
| 实收金额 | `actualAmount` | `GET /sold-page` | 已真实库验证 | stat 已验证 80.00 |
| 开账金额 | `billedAmount` | `GET /sold-page` | 已代码确认 | |
| 违约金 | `penaltyAmount` | `GET /sold-page` | 已代码确认 | |
| 收费方式 | `collectionMethod` | `GET /sold-page` | 已代码确认 | |
| 收费员 | `collector` | `GET /sold-page` | 已代码确认 | |
| 收费日期 | `collectionDate` | `GET /sold-page` | 已代码确认 | |
| 是否可调整 | `canAdjust` | `GET /sold-page` | 已代码确认 | |
| 是否可批量撤销 | `canBatchRevoke` | `GET /sold-page` | 已真实库验证 | 提交后仍可撤销 |
### B. 统计区
| 页面元素 | 后端字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 总条数 | `totalCount` | `GET /sold-stat` | 已真实库验证 | |
| 开账水量合计 | `totalBilledWaterVolume` | `GET /sold-stat` | 已代码确认 | |
| 实收金额合计 | `totalActualAmount` | `GET /sold-stat` | 已真实库验证 | 80.00 |
| 开账金额合计 | `totalBilledAmount` | `GET /sold-stat` | 已代码确认 | |
| 违约金合计 | `totalPenaltyAmount` | `GET /sold-stat` | 已代码确认 | |
### C. 提交 / 批量撤销
| 页面元素 | 入参/出参字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 营业账ID | `chargeId` | `POST /sold-submit` | 已真实库验证 | |
| 原因 | `applyReason` | `POST /sold-submit` | 已真实库验证 | |
| 是否红冲发票 | `redInvoice` | `POST /sold-submit` | 已代码确认 | |
| 备注 | `remark` | `POST /sold-submit` | 已真实库验证 | |
| 附件引用 | `attachmentRefs` | `POST /sold-submit` | 已代码确认 | |
| 调整单号 | `adjustmentNo` | `POST /sold-submit` 返回 | 已真实库验证 | |
| 结果状态 | `resultStatus` | `POST /sold-submit` 返回 | 已真实库验证 | `PENDING_APPROVAL` |
| 审批状态 | `approvalStatus` | `POST /sold-submit` 返回 | 已真实库验证 | `PENDING_APPROVAL` |
| 批量撤销入参 | `chargeIds[]` | `POST /sold-batch-revoke` | 已真实库验证 | 不是 `adjustmentNo[]` |
| 批量撤销结果 | `successCount/failCount/items[]` | `POST /sold-batch-revoke` | 已真实库验证 | |
---
## 三、未销调整页
### A. 列表区
| 页面元素 | 后端字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 账单ID | `id` | `GET /unsold-page` | 已代码确认 | |
| 客户ID | `custId` | `GET /unsold-page` | 已代码确认 | |
| 客户编号 | `custCode` | `GET /unsold-page` | 已代码确认 | |
| 客户名称 | `custName` | `GET /unsold-page` | 已代码确认 | |
| 客户地址 | `custAddress` | `GET /unsold-page` | 已代码确认 | |
| 用水性质 | `waterType` | `GET /unsold-page` | 已代码确认 | |
| 账务年月 | `accountMonth` | `GET /unsold-page` | 已代码确认 | |
| 用水量 | `waterVolume` | `GET /unsold-page` | 已代码确认 | |
| 合计金额 | `totalAmount` | `GET /unsold-page` | 已代码确认 | |
| 账单金额 | `billAmount` | `GET /unsold-page` | 已代码确认 | |
| 违约金 | `penaltyAmount` | `GET /unsold-page` | 已代码确认 | |
| 用水费/污水/垃圾/资源税/超定额/季节性 | 对应费用字段 | `GET /unsold-page` | 已代码确认 | |
| 是否可调整 | `canAdjust` | `GET /unsold-page` | 已代码确认 | |
| 是否可分账 | `canSplit` | `GET /unsold-page` | 已代码确认 | |
| 是否可违约金减免 | `canLateFeeReduce` | `GET /unsold-page` | 已代码确认 | |
| 是否可价差调整 | `canPriceDiffAdjust` | `GET /unsold-page` | 已代码确认 | |
| 是否可呆坏账调整 | `canBadDebtAdjust` | `GET /unsold-page` | 已代码确认 | |
### B. 统计区
| 页面元素 | 后端字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 用水量合计 | `sumWaterVolume` | `GET /unsold-stat` | 已代码确认 | |
| 合计金额 | `sumTotalAmount` | `GET /unsold-stat` | 已代码确认 | |
| 账单金额 | `sumBillAmount` | `GET /unsold-stat` | 已代码确认 | |
| 违约金 | `sumPenaltyAmount` | `GET /unsold-stat` | 已代码确认 | |
| 费用组成合计 | `sumWaterFee/...` | `GET /unsold-stat` | 已代码确认 | |
### C. 五类弹窗动作
| 弹窗 | 关键入参 | 返回口径 | 当前状态 | 说明 |
|---|---|---|---|---|
| 调整 | `chargeId/applyReason/remark/targetBillWater/targetExtendedAmount/targetBillAmount` | `adjustmentNo/resultStatus/writeBackStatus` | 已真实库验证 | AMOUNT happy path 已验证 |
| 分账 | `chargeId/applyReason/remark/splitCount` | `adjustmentNo/objectType/resultStatus=PENDING_APPROVAL` | 已真实库验证 | |
| 违约金减免 | `chargeId/applyReason/remark/lateFeeReduceAmount` | `adjustmentNo/objectType/resultStatus=PENDING_APPROVAL` | 已真实库验证 | |
| 价差调整 | `chargeId/applyReason/remark/priceDiffAmount` | `adjustmentNo/objectType/resultStatus=PENDING_APPROVAL` | 已真实库验证 | |
| 呆坏账 | `chargeId/applyReason/remark/badDebtAmount` | `adjustmentNo/objectType=result BAD_DEBT_RECORD / PENDING_APPROVAL` | 已真实库验证 | |
---
## 四、账务日志页
### A. 列表区
| 页面元素 | 后端字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 日志ID | `id` | `GET /log-page` | 已代码确认 | |
| 调整单号 | `adjustmentNo` | `GET /log-page` | 已真实库验证 | |
| 账务年月 | `accountMonth` | `GET /log-page` | 已代码确认 | |
| 客户ID/编号/名称/地址 | `custId/custCode/custName/custAddress` | `GET /log-page` | 部分已真实库验证 | `custCode` 已验证 |
| 账务类型 | `accountTypeCode/accountType` | `GET /log-page` | 已代码确认 | |
| 处理方式 | `processMethodCode/processMethod` | `GET /log-page` | 已代码确认 | |
| 金额 | `amount` | `GET /log-page` | 已代码确认 | |
| 描述 | `description` | `GET /log-page` | 已代码确认 | |
| 登记人/处理人 | `registrant/handler` | `GET /log-page` | 已代码确认 | |
| 处理时间/创建时间 | `handleTime/createTime` | `GET /log-page` | 已代码确认 | |
| 页面状态 | `statusCode/status` | `GET /log-page` | 已真实库验证 | `SUCCESS` 场景已验证 |
| 目标户号 | `targetCustCode` | `GET /log-page` | 已代码确认 | |
| 原/新预存 | `originalPrestore/newPrestore` | `GET /log-page` | 已代码确认 | |
| 原/新账单 | `originalBill/newBill` | `GET /log-page` | 已代码确认 | |
| 原/新水量 | `originalWaterVolume/newWaterVolume` | `GET /log-page` | 已代码确认 | |
| 原/新违约金 | `originalPenalty/newPenalty` | `GET /log-page` | 已代码确认 | |
| 变化量 | `billChange/waterVolumeChange/penaltyChange` | `GET /log-page` | 已代码确认 | |
| 是否可撤销/退款/转预存 | `canRevoke/canRefund/canPrestore` | `GET /log-page` | 已代码确认 | |
### B. 统计区
| 页面元素 | 后端字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 总条数 | `totalCount` | `GET /log-stat` | 已真实库验证 | |
| 调整金额 | `totalAmount` | `GET /log-stat` | 已代码确认 | |
| 调整水量 | `totalWaterVolume` | `GET /log-stat` | 已代码确认 | |
| 已完成数量 | `completedCount` | `GET /log-stat` | 已真实库验证 | |
| 未完成数量 | `pendingCount` | `GET /log-stat` | 已真实库验证 | sold 提交后场景已间接证明 pending |
| 已撤销数量 | `cancelledCount` | `GET /log-stat` | 已代码确认 | |
### C. 详情 / 流程 / 附件
| 页面元素 | 后端字段 | 接口 | 当前状态 | 说明 |
|---|---|---|---|---|
| 详情调整单号 | `adjustmentNo` | `GET /log-detail` | 已真实库验证 | |
| 对象类型 | `objectType` | `GET /log-detail` | 已代码确认 | |
| 结果状态 | `resultStatus` | `GET /log-detail` | 已真实库验证 | |
| 审批状态 | `approvalStatus` | `GET /log-detail` | 已代码确认 | |
| 回写状态 | `writeBackStatus` | `GET /log-detail` | 已代码确认 | |
| 原交易流水号 | `originalTranSeq` | `GET /log-detail` | 已真实库验证 | |
| 原系统流水号 | `originalSysTranSeq` | `GET /log-detail` | 已代码确认 | |
| 附件引用 | `attachmentRefs[]` | `GET /log-detail` | 已真实库验证 | |
| 详情明细 | `details[]` | `GET /log-detail` | 已代码确认 | |
| 流程状态 | `processState` | `GET /log-process` | 已真实库验证 | |
| 流程阶段 | `stages[]` | `GET /log-process` | 已代码确认 | |
| 附件原始引用 | `ref` | `GET /log-attachments` | 已真实库验证 | |
| 附件解析状态 | `resolved` | `GET /log-attachments` | 已真实库验证 | |
| 附件元数据 | `id/name/link/size/extension` | `GET /log-attachments` | 已代码确认 | 当前 mock-ref 未解析为真实附件 |
### D. 日志页二次动作弹窗
| 弹窗 | 关键入参 | 返回口径 | 当前状态 | 说明 |
|---|---|---|---|---|
| 转退款 | `adjustmentNo/reasonCode/reason` | `adjustmentNo/objectType/resultStatus/writeBackStatus` | 已真实库验证 | 且 bank 后续流水已验证 |
| 转预存 | `adjustmentNo/targetCustCode/reason` | `adjustmentNo/resultStatus` | 已真实库验证 | 目标余额变化已验证 |
| 撤销 | `adjustmentNo/comment` | `actionType/resultStatus/writeBackStatus` | 已真实库验证 | 回滚账单状态/余额已验证 |
---
## 五、当前最适合前端/UAT对表的使用方式
1. **动作成功后的即时展示**:直接用 `AccountingAdjustRespVO / AccountingAdjustActionRespVO`
2. **页面列表展示**:按页面查各自 `*-page / *-stat`
3. **动作留痕与二次操作**:统一以 `log-*` 视角看 `adjustmentNo`
4. **已销批量撤销特别注意**:当前后端口径是 `chargeIds[]`,不是 `adjustmentNo[]`
---
## 六、仍待补的更细证据
- `unsold-page / unsold-stat` 的真实库回看断言还未单独补
- 预存页 `attachments/process` 还未像 log 页一样做完整真实库链路断言
- 页面元素到字典标签展示(例如名称 label 是否完全满足 UI 文案)还缺单独验收