# 12 — 交付历史审批与待处理数据迁移接缝

**What to build:** 发布人员可以幂等盘点退款和线下充值的历史本地审批，把已结束记录保留为只读 `legacy` 事实，并对仍待处理记录执行真实提交人、企微身份、模板和业务资料预检，输出可迁移项与明确待人工处理清单。

**Blocked by:**

- 02 — 完成平台账号本人扫码绑定闭环
- 03 — 发布审批场景与首个模板版本
- 04 — 提供审批创建前置检查与事务接入契约
- 05 — 完成附件上传与企微异步提交闭环
- 06 — 完成场景安全暂停、模板换版与失效检测
- 07 — 接入加密回调与权威详情同步

**Status:** ready-for-agent

**架构通道:** 主通道为 Infrastructure，辅助通道为 Application。

**完整业务边界:** 本票收口公共审批迁移分类、预检、幂等实例创建接缝和回滚边界。明确不猜测退款或充值业务事实，不修改其金额、资金或处理状态；各业务表字段回填和旧路由下线分别由 UR#35、UR#34 的纵向切片负责。

- [ ] 历史已结束的本地审批只投影为 `approval_source=legacy`，保留原业务事实，不创建虚假 `sp_no`、企微审批人、意见、附件或时间线。
- [ ] 待处理记录按业务类型核对真实创建人、账号类型、本人绑定或固定代理身份、当前场景/模板以及业务提供的必需快照和附件事实。
- [ ] 满足条件的记录可通过公共事务接缝幂等创建唯一企微审批实例及提交事件；重复执行不会生成第二个实例、`sp_no` 或 Outbox。
- [ ] 缺少平台绑定、代理固定身份、真实提交人、模板、金额或附件等事实时进入结构化待处理清单，不继续调用旧审批动作，也不由迁移脚本猜测或补造。
- [ ] 应用回滚保留已经形成的企微实例、身份/模板快照、Outbox、Integration Log 和 Audit Event；真实企微审批开始后不得恢复旧本地审批按钮。
- [ ] 迁移测试覆盖历史终态、平台/代理待处理、缺失事实、重复执行、并发唯一性、停止条件、安全输出和只清理本次隔离夹具。
