Files
junhong_cmp_fiber/.scratch/ur37-wecom-approval-foundation/issues/10-unknown-submission-recovery.md
2026-07-22 16:58:26 +09:00

2.3 KiB
Raw Blame History

10 — 完成提交结果未知的高风险恢复闭环

What to build: 超级管理员或具备企微审批异常恢复权限的平台账号可以为提交结果未知的实例安全绑定已存在的 sp_no,或在人工确认企微未创建后重新发送同一审批;系统完整保留恢复原因、校验依据、前后状态和每次技术尝试,避免重复企微审批。

Blocked by:

  • 05 — 完成附件上传与企微异步提交闭环
  • 07 — 接入加密回调与权威详情同步
  • 09 — 交付审批运行查询、权限投影与立即同步
  • .scratch/tech-global-audit/issues/01-audit-event-write-loop.md — 01 — 交付不可变 Audit Event 写入闭环

Status: ready-for-agent

架构通道: 复杂写 Application + Domain企微核对位于 Infrastructure Adapter。

完整业务边界: 本票收口提交结果未知的两个明确恢复动作和高风险审计。明确不允许编辑业务申请、不创建业务审批轮次、不恢复已经进入明确终态的审批,退款驳回后的再次申请仍属于 UR#35 新业务单。

  • 两个恢复接口只允许超级管理员或具备独立异常恢复权限的平台账号调用,请求必须包含非空恢复原因;企微运营权限本身不能执行恢复。
  • 绑定已有 sp_no 前查询企微详情并核对企业、模板版本、实际企微发起身份及来源、业务场景、真实业务提交人字段和提交业务快照,任一不匹配均拒绝绑定。
  • 成功绑定使用非空 sp_no 全局唯一约束和预期状态条件更新,随后进入统一权威同步;重复调用不能覆盖其他实例或制造第二次终态。
  • 确认未创建后重新发送保留原尝试,并在同一审批实例记录新的技术提交尝试;不创建新业务 ID、审批实例或审批轮次。
  • 已经进入通过、驳回、撤销、通过后撤销、删除等明确终态的实例禁止恢复;并发恢复、重复操作和状态变化时安全失败。
  • 两种恢复均写高风险 Audit Event 并保留 Integration Log测试覆盖无权限、非法状态、sp_no 不存在、逐项快照不匹配、成功绑定、重新发送、重复并发和审计事务完整性;新增 Handler 同步路由、RouteSpec 和两个 OpenAPI 文档生成器。