# Data Model: REV-006 催缴与通知事件设计收口 ## 1. Reminder Candidate **说明**: 催缴任务的输入对象,由欠费账单和客户上下文组合形成。 | 字段 | 类型 | 说明 | 约束 | |------|------|------|------| | candidateId | String | 候选对象标识 | 可由任务生成阶段派生,不要求独立持久化主键 | | custId | String | 客户标识 | 必填 | | accountId | String | 账户标识 | 必填 | | chargeIds | List | 命中的欠费账单集合 | 至少 1 条 | | billPeriods | List | 账期集合 | 必填 | | arrearsAmount | Decimal | 欠费总金额 | 必须大于 0 | | agingBucket | String | 账龄分组 | 必填 | | custCategory | String | 客户类别 | 必填 | | preferredChannels | List | 渠道偏好 | 至少 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 | 渠道优先级 | 至少 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 | 关联账单 | 至少 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 名称 | 固定为 `rev006-reminder-event-design` | | implementationStatus | String | 当前实现判断 | `未见实现` | | docStatus | String | 文档状态 | 设计已收口 / 待同步 / 待验证 | | nextAction | String | 后续动作 | 研发立项 / 文档补证 / 治理同步 | | evidenceRefs | List | 证据来源 | 必填 | ## 7. 关系总览 ```text Reminder Strategy -> Reminder Candidate -> Reminder Task Reminder Task -> Reminder Result -> Disposal Link Governance Record -> 引用 Reminder Task / Reminder Result 的设计结论与实现判断 ```