tangweijie 3eccab2cf9 docs: 文档治理统一 — AGENTS.md 生命周期规则 + 模块归档 + DDL 修正
1. AGENTS.md 更新
   - water-docs: 新增 specs/ 与 docs/design/ 生命周期规则章节
   - water-backend: 更新协作引用(建设期/建成后、evidence 模块化)

2. specs/ 重复合并
   - 006-reminder-event-design 合并入 003-rev006-reminder-event-design
   - 001-rev004-accounting 删除冗余 data-model.md + contracts/
   - 002-rev005-invoice-flow 删除冗余 data-model.md + contracts/

3. evidence 按模块归档
   - 35 个 REV-004 文件归入 evidence/rev004-accounting/
   - 7 个通用 bugfix 文件归入 evidence/bugfix/ 和 bugfix/frontend/
   - 新建 rev005-invoice/、rev006-reminder/、rev007-statistics/ 目录

4. guides/ 清理
   - 14 个 REV004_*.md 移入 evidence/rev004-accounting/

5. 遗留文件处理
   - docs/research/ 归档到 Archive/06_Migration_Plans/
   - backend-check detached worktrees 清理

6. 交叉引用修复
   - 006-reminder-event-design → 003-rev006-reminder-event-design
   - docs/guides/REV004_ → docs/evidence/rev004-accounting/REV004_

7. DB 设计文档修正(01_Database_Design.md)
   - biz_invoice 明确为开票配置表,非发票记录表
   - 新增 biz_invoice_record 为发票申请/结果主表
   - 新增 biz_charge_invoice_rel 账单-发票关联说明
   - REV-005 承接口径表名全部修正

8. 发票审计证据
   - 新增 evidence/rev005-invoice/2026-06-16-invoice-document-audit.md
2026-06-16 11:47:16 +08:00

126 lines
4.9 KiB
Markdown

# Data Model: REV-006 催缴与通知事件设计收口
## 1. Reminder Candidate
**说明**: 催缴任务的输入对象,由欠费账单和客户上下文组合形成。
| 字段 | 类型 | 说明 | 约束 |
|------|------|------|------|
| candidateId | String | 候选对象标识 | 可由任务生成阶段派生,不要求独立持久化主键 |
| custId | String | 客户标识 | 必填 |
| accountId | String | 账户标识 | 必填 |
| chargeIds | List<String> | 命中的欠费账单集合 | 至少 1 条 |
| billPeriods | List<String> | 账期集合 | 必填 |
| arrearsAmount | Decimal | 欠费总金额 | 必须大于 0 |
| agingBucket | String | 账龄分组 | 必填 |
| custCategory | String | 客户类别 | 必填 |
| preferredChannels | List<String> | 渠道偏好 | 至少 1 个渠道 |
| strategyCode | String | 命中的催缴策略编码 | 必填 |
| frequencyWindow | String | 频控窗口 | 用于重复触达拦截 |
**关系**:
- 一个 `Reminder Candidate` 可生成一个或多个 `Reminder Task`
- `Reminder Candidate` 来源于 `biz_charge``biz_charge_detail` 等营业账对象
## 2. Reminder Strategy
**说明**: 约束候选对象筛选、任务分组和渠道优先级的规则集合。
| 字段 | 类型 | 说明 | 约束 |
|------|------|------|------|
| strategyCode | String | 策略编码 | 唯一 |
| strategyName | String | 策略名称 | 必填 |
| agingRule | String | 账龄规则 | 必填 |
| amountRule | String | 金额规则 | 必填 |
| custCategoryRule | String | 客户类别规则 | 可为空,表示不限 |
| channelPriority | List<String> | 渠道优先级 | 至少 1 项 |
| frequencyControl | String | 频控规则 | 必填 |
| disposalAttentionFlag | Boolean | 是否关注后续处置 | 必填 |
**状态转换**:
- 启用
- 停用
## 3. Reminder Task
**说明**: 正式催缴执行单元,是 `IF-REV-013` 的核心业务对象。
| 字段 | 类型 | 说明 | 约束 |
|------|------|------|------|
| taskNo | String | 催缴任务号 | 唯一、必填 |
| eventNo | String | 业务事件号 | 唯一、必填 |
| strategyCode | String | 策略编码 | 必填 |
| channelType | String | 执行渠道 | 必填 |
| triggerType | String | 触发类型 | 自动 / 人工 |
| status | String | 当前状态 | 仅允许 `PENDING` / `SUCCESS` / `FAIL` / `MANUAL_VERIFIED` |
| chargeIds | List<String> | 关联账单 | 至少 1 条 |
| receiver | String | 触达对象 | 可为手机号、微信标识或站内账号 |
| sendTime | Datetime | 发送发起时间 | 可空,待触发后填写 |
| lastCallbackTime | Datetime | 最近结果回写时间 | 可空 |
| failReason | String | 失败原因 | `FAIL` 时建议记录 |
| manualVerifyNote | String | 人工核查说明 | `MANUAL_VERIFIED` 时建议记录 |
**状态转换**:
1. 新建任务后进入 `PENDING`
2. 外部触达成功后进入 `SUCCESS`
3. 外部明确失败后进入 `FAIL`
4. 外部结果长期未定或人工补记后进入 `MANUAL_VERIFIED`
## 4. Reminder Result
**说明**: 承接 `SYS-010` 回写结果与业务侧最终状态语义。
| 字段 | 类型 | 说明 | 约束 |
|------|------|------|------|
| taskNo | String | 对应任务号 | 必填 |
| eventNo | String | 对应事件号 | 必填 |
| status | String | 四态结果 | 必填 |
| channelType | String | 渠道类型 | 必填 |
| externalResultCode | String | 外部结果码 | 可空 |
| externalResultMessage | String | 外部结果说明 | 可空 |
| failReason | String | 业务失败原因 | `FAIL` 时可必填 |
| callbackTime | Datetime | 回写时间 | 必填 |
| sourceSystem | String | 回写来源系统 | 默认 `SYS-010` |
## 5. Disposal Link
**说明**: 催缴任务与停水、复水、工单、人工跟进之间的追溯引用。
| 字段 | 类型 | 说明 | 约束 |
|------|------|------|------|
| taskNo | String | 关联催缴任务号 | 必填 |
| disposalType | String | 处置类型 | 停水 / 复水 / 工单 / 人工跟进 |
| disposalRefNo | String | 处置引用号 | 必填 |
| disposalStatus | String | 处置状态摘要 | 可空 |
| linkedAt | Datetime | 建联时间 | 必填 |
| note | String | 追溯说明 | 可空 |
## 6. Governance Record
**说明**: 用于治理台账登记本轮设计收口结论与后续研发建议。
| 字段 | 类型 | 说明 | 约束 |
|------|------|------|------|
| reqCode | String | 需求编号 | 固定为 `SYS002-REQ-011` |
| featureName | String | Speckit feature 名称 | 固定为 `rev003-rev006-reminder-event-design` |
| implementationStatus | String | 当前实现判断 | `未见实现` |
| docStatus | String | 文档状态 | 设计已收口 / 待同步 / 待验证 |
| nextAction | String | 后续动作 | 研发立项 / 文档补证 / 治理同步 |
| evidenceRefs | List<String> | 证据来源 | 必填 |
## 7. 关系总览
```text
Reminder Strategy
-> Reminder Candidate
-> Reminder Task
Reminder Task
-> Reminder Result
-> Disposal Link
Governance Record
-> 引用 Reminder Task / Reminder Result 的设计结论与实现判断
```