# Data Model: REV-006 催缴事件与通知协同设计 ## 1. Reminder Candidate ### Purpose 表示进入催缴评估范围的欠费账单或客户对象集合,是催缴任务生成的输入对象。 ### Key Fields | Field | Description | Rule | |---|---|---| | `custId` | 客户标识 | 必填;关联客户主档 | | `chargeId` | 账单标识 | 必填;关联欠费账单 | | `billPeriod` | 账期 | 必填;用于催缴分组和历史查询 | | `arrearsAmount` | 欠费金额 | 必填;用于策略匹配 | | `agingBucket` | 欠费账龄分组 | 必填;用于策略筛选 | | `customerCategory` | 客户类别 | 必填;用于差异化催缴 | | `contactChannelSet` | 可用联系方式集合 | 至少存在一个有效触达渠道 | | `strategyCode` | 命中的催缴策略编码 | 必填;来源于策略规则 | ### Relationships - 来自 `biz_charge` / `biz_charge_detail` - 关联客户主档与联系方式 - 可生成一个或多个 `Reminder Task` ## 2. Reminder Strategy ### Purpose 定义催缴对象筛选、任务分组、触达渠道和频控约束的业务规则。 ### Key Fields | Field | Description | Rule | |---|---|---| | `strategyCode` | 策略编码 | 唯一 | | `agingRule` | 账龄匹配规则 | 必填 | | `amountRule` | 金额匹配规则 | 必填 | | `customerCategoryRule` | 客户类别匹配规则 | 可为空;为空表示通用 | | `channelPriority` | 触达渠道优先级 | 必填;至少 1 个渠道 | | `dedupeWindow` | 重复触达拦截窗口 | 必填 | | `escalationFlag` | 是否触发后续处置关注 | 必填 | ### Relationships - 一个 `Reminder Strategy` 可匹配多个 `Reminder Candidate` - 一个 `Reminder Strategy` 可驱动多个 `Reminder Task` ## 3. Reminder Task ### Purpose 表示一次正式催缴执行单元,负责承接业务触发、协同下发和结果回写。 ### Key Fields | Field | Description | Rule | |---|---|---| | `taskNo` | 催缴任务号 | 唯一;正式业务主键 | | `interfaceCode` | 正式接口编号 | 固定使用 `IF-REV-013` | | `eventNo` | 业务事件号 | 唯一;用于与 `SYS-010` 协同 | | `custId` | 客户标识 | 必填 | | `chargeId` | 账单标识 | 必填 | | `strategyCode` | 策略编码 | 必填 | | `channelType` | 触达渠道 | 必填;短信/微信公众号/站内信等 | | `triggerType` | 触发方式 | 必填;自动/人工 | | `status` | 当前任务状态 | 必填;`PENDING` / `SUCCESS` / `FAIL` / `MANUAL_VERIFIED` | | `sourceType` | 任务来源 | 必填;系统任务/人工补发/核查回补 | | `createdTime` | 创建时间 | 必填 | | `lastResultTime` | 最近结果时间 | 可为空;初次发送前为空 | ### State Transitions | From | To | Condition | |---|---|---| | 新建 | `PENDING` | 已生成任务并发起协同 | | `PENDING` | `SUCCESS` | 收到成功回写 | | `PENDING` | `FAIL` | 收到失败回写或确认失败 | | `PENDING` | `MANUAL_VERIFIED` | 人工核查后确认结果 | | `FAIL` | `MANUAL_VERIFIED` | 人工核查补记结果 | ### Relationships - 由一个 `Reminder Candidate` 和一个 `Reminder Strategy` 组合产生 - 关联一个或多个 `Reminder Result` - 可关联一个 `Disposal Link` ## 4. Reminder Result ### Purpose 表示 `SYS-010` 回传或人工核查得到的触达结果。 ### Key Fields | Field | Description | Rule | |---|---|---| | `eventNo` | 业务事件号 | 必填;与 `Reminder Task` 对应 | | `status` | 结果状态 | 必填;仅允许四态 | | `failureReason` | 失败原因 | `FAIL` 时必填 | | `resultChannel` | 实际触达渠道 | 必填 | | `resultTime` | 结果时间 | 必填 | | `verifiedBy` | 核查人 | `MANUAL_VERIFIED` 时必填 | | `verifiedNote` | 核查说明 | `MANUAL_VERIFIED` 时建议填写 | ### Relationships - 归属于一个 `Reminder Task` - 结果会回写到任务状态与历史查询记录 ## 5. Reminder History Record ### Purpose 为历史查询和迁移验收提供最小保留信息集合。 ### Key Fields | Field | Description | Rule | |---|---|---| | `custId` | 客户标识 | 必填 | | `billPeriod` | 账期 | 必填 | | `channelType` | 催缴方式 | 必填 | | `messageContentRef` | 触达内容引用 | 必填;可为模板或摘要引用 | | `receiver` | 接收目标 | 必填;手机号/OpenID/站内信对象 | | `status` | 执行结果 | 必填;使用四态或历史映射值 | | `sendTime` | 发送时间 | 必填 | | `operatorSource` | 操作来源 | 必填;自动/人工/历史迁移 | | `relatedChargeId` | 关联账单 | 必填 | | `relatedDisposalRef` | 关联处置引用 | 可为空;用于停复水/工单追溯 | ### Relationships - 可由 `Reminder Task` 和 `Reminder Result` 聚合生成 - 同时承接历史催缴记录、停水记录、预存短信记录的查询口径 ## 6. Disposal Link ### Purpose 记录催缴结果与停水、复水、工单或人工处置之间的追溯关系。 ### Key Fields | Field | Description | Rule | |---|---|---| | `eventNo` | 关联业务事件号 | 必填 | | `disposalType` | 处置类型 | 必填;停水/复水/工单/人工跟进 | | `triggerCondition` | 触发条件摘要 | 必填 | | `disposalRefNo` | 下游处置引用号 | 可为空;未创建时为空 | | `disposalStatus` | 下游处置状态 | 可为空;仅作追溯,不定义内部流程 | | `linkedTime` | 建立关联时间 | 必填 | ### Relationships - 一个 `Reminder Task` 最多关联一个当前生效的 `Disposal Link` - 不替代下游业务对象,只做引用和追溯