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

75 lines
2.3 KiB
Markdown

# Contract: IF-EXT-008 消息触达协同接口
## 1. 合同定位
- 接口编号:`IF-EXT-008`
- 归属模块:`REV-006 / CS-006`
- 责任系统:`SYS-010`
- 调用方:`SYS-002`
- 合同类型:外部协同接口设计合同
## 2. 业务职责
`IF-EXT-008` 负责:
- 承接 `SYS-002` 传入的通知任务
- 按短信、微信公众号、站内信等渠道执行触达
- 返回受理结果,并在后续回传最终执行结果或失败摘要
`IF-EXT-008` 不负责:
- 生成催缴候选对象
- 定义催缴业务状态体系
- 决定停复水或工单联动流程
## 3. 输入合同
| 字段 | 说明 | 约束 |
|------|------|------|
| eventNo | 业务事件号 | 必填 |
| taskNo | 催缴任务号 | 必填 |
| channelType | 渠道类型 | 必填 |
| receiver | 触达对象 | 必填 |
| messageTemplateCode | 消息模板编码 | 必填 |
| messageParams | 模板参数 | 可为空对象 |
| priority | 优先级 | 可选 |
| callbackUrlOrMode | 结果回传方式 | 必填 |
## 4. 输出合同
### 4.1 受理返回
| 字段 | 说明 |
|------|------|
| accepted | 是否受理 |
| externalRequestNo | 外部请求号 |
| acceptedTime | 受理时间 |
| rejectReason | 拒绝原因 |
### 4.2 结果回传
| 字段 | 说明 |
|------|------|
| eventNo | 业务事件号 |
| taskNo | 催缴任务号 |
| deliveryStatus | 渠道执行结果 |
| deliveryTime | 执行时间 |
| externalResultCode | 外部结果码 |
| externalResultMessage | 外部结果说明 |
## 5. 边界合同
1. `SYS-010` 的执行结果不直接定义 `REV-006` 业务态,而是由 `SYS-002` 映射为 `PENDING``SUCCESS``FAIL``MANUAL_VERIFIED`
2. 若仅返回受理成功、未返回终态,则 `SYS-002` 维持 `PENDING`
3. 若外部长时间无终态回写,业务侧可通过人工核查进入 `MANUAL_VERIFIED`
4. 渠道模板、供应商协议与重试细节由 `SYS-010` 管理,不在 `REV-006` 正式设计中展开。
## 6. 失败与补偿语义
| 场景 | 协同要求 |
|------|----------|
| 渠道受理失败 | 立即回传拒绝原因,由 `SYS-002` 视情况转 `FAIL` |
| 发送成功 | 回传成功结果,由 `SYS-002``SUCCESS` |
| 发送失败 | 回传失败摘要,由 `SYS-002``FAIL` |
| 无终态回写 | 允许保留 `PENDING`,由人工补记收口 |