59 lines
4.4 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.

# Phase 0 Research: REV-006 催缴事件与通知协同设计
## 决策 1`REV-006` 使用新的独立正式接口编号
- **Decision**: `REV-006` 使用新的独立正式接口编号 `IF-REV-013` 作为“催缴任务生成与结果查询/回写承接”的正式业务接口编号;`IF-REV-009` 保留给 `REV-005` 发票结果查询。
- **Rationale**:
- 当前 `03_Interface_Design.md` 已明确 `IF-REV-009` 属于 `REV-005` 发票结果查询,继续复用会造成接口总表、异常码、幂等策略和时序图冲突。
- 现有 `IF-REV-*` 编号已经覆盖到 `IF-REV-012`,顺延 `IF-REV-013` 是最小改动且最不易误解的做法。
- 该决策能直接消除 `12_REV_Detailed.md``REV-006` 与接口主文档的冲突口径。
- **Alternatives considered**:
- 继续复用 `IF-REV-009`:被否决,因为与发票查询主口径冲突。
- 暂不落编号,只写业务能力:被否决,因为会推迟核心冲突到实施阶段。
- 改用 `IF-EXT-*`:被否决,因为 `REV-006` 的业务接口主责仍属于 `SYS-002``IF-EXT-008` 只适用于与 `SYS-010` 的外部协同。
## 决策 2催缴结果状态固定为四态
- **Decision**: `REV-006` 正式状态集固定为 `PENDING``SUCCESS``FAIL``MANUAL_VERIFIED`
- **Rationale**:
- 四态足以覆盖“待回写/待核查”“成功触达”“失败”“人工核查确认”四类评审和实施必需场景。
- 过少状态会导致补偿与人工核查无法落地;过多状态会在当前未实现阶段引入不必要的细粒度设计。
- 四态同时便于后续接口、数据库和台账统一。
- **Alternatives considered**:
- 两态(成功/失败):无法表达未回写和人工核查状态。
- 三态(待处理/成功/失败):无法区分人工核查后的确认结果。
- 更细状态(已送达/已阅读/已补发):当前阶段超出设计收口所需。
## 决策 3停复水仅定义联动边界不展开内部流程
- **Decision**: 本 feature 仅定义催缴结果与停复水之间的联动边界、触发条件、查询字段和追溯关系,不展开停复水内部处置流程、审批节点或现场执行细节。
- **Rationale**:
- 停复水属于后续业务处置链,深入展开会把当前专题扩展到工单/现场作业子系统。
- 当前 `REV-006` 的首要目标是把催缴闭环范围和责任边界收口,而不是设计全部后置处置流程。
- 这样既能满足历史查询和审计追溯,又不破坏范围控制。
- **Alternatives considered**:
- 把停复水完整流程纳入 `REV-006`:被否决,因为会扩大到非本轮范围。
- 完全不写停复水联动:被否决,因为会留下历史查询和后续处置链断点。
## 决策 4历史“催缴记录/停水记录/预存短信”按历史只读口径承接
- **Decision**: 旧系统“催缴记录、停水记录、预存短信记录”继续按历史只读查询对象承接,不新增同名在线主表;在线主模型以 `biz_charge`、操作留痕和消息协同结果为主。
- **Rationale**:
- `01_Database_Design.md` 已对这些对象给出“历史只读保留”口径,且当前 backend 未见明确独立表族。
- 直接新增同名新表会违反“不得臆造已实现事实”和“单一真源”的原则。
- 历史只读策略既能满足迁移验收,也不影响后续按业务链逐步演进。
- **Alternatives considered**:
- 为每个旧菜单新增在线主表:被否决,因为没有实现证据且破坏当前主模型。
- 完全不保留历史查询口径:被否决,因为不满足迁移验收和追溯要求。
## 决策 5`REV-006` 与 `SYS-010` 的职责分界
- **Decision**: `SYS-002/REV-006` 负责催缴对象筛选、任务分组、业务事件生成、状态承接、历史查询和处置关联;`SYS-010` 负责短信、微信公众号、站内信等触达执行与结果回传。
- **Rationale**:
- 该分界与 `03_Interface_Design.md` 中跨系统协同表一致。
- 业务筛选和状态归属留在 `SYS-002`,能保证催缴逻辑与账单口径一致。
- 触达能力放在 `SYS-010`,避免 `REV-006` 越权扩展到消息平台实现。
- **Alternatives considered**:
-`SYS-010` 负责催缴对象筛选:被否决,因为会削弱营收主系统对账单规则的控制。
-`SYS-002` 直接承担全部消息发送:被否决,因为与既有系统边界不一致。