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
126 lines
4.9 KiB
Markdown
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 的设计结论与实现判断
|
|
```
|