实现 M002 CP5 任务确认与 OPERA 模拟骨架

This commit is contained in:
andy
2026-07-07 16:24:17 +08:00
parent f7d77b45bd
commit bd7b791bee
37 changed files with 2548 additions and 57 deletions

View File

@@ -6,7 +6,7 @@
| --- | --- |
| 文档版本 | 0.2 |
| 日期 | 2026-07-07 |
| 状态 | 第二版需求草稿 |
| 状态 | 第二版需求与后端阶段实现记录 |
| 适用范围 | SourceMessage 之后的 AI 过渡层、订单挂靠、任务卡、人工确认、OPERA 模拟操作主流程 |
| 主要读者 | 产品、后端、前端、测试、后续协作 agent |
@@ -14,7 +14,7 @@
本文是 `M002-order-task-workflow-v1.md` 的第二版修正,目标是把本项目已经讨论确认的订单任务主流程,与 2026-07-06 导入的 AI 任务卡契约对齐。
本文定义业务边界、数据语义和后续实现约束,不代表已经开始写代码。后续开发前仍需要拆分 checkpoint并补充接口契约、表结构、状态机、前端页面和测试验收标准
本文定义业务边界、数据语义和后续实现约束。当前后端已经按拆分 checkpoint 实现了 AI 结果接收、订单任务基础流转、任务草稿保存、最终确认、审计列表和 OPERA 模拟骨架;前端页面、真实 OPERA、普通任务切换订单和 SuperAgent 查询上下文接口仍未实现
## 2. 本版核心修正
@@ -427,6 +427,15 @@ Fallback 处理规则:
一个任务可能产生多条 OPERA 模拟操作。任务详情页应展示每条模拟操作的结果、状态、失败原因、重试次数和最近执行时间。重试必须保留历史记录,不能覆盖原始失败记录。
第一版后端实现中,任务最终确认后固定生成两条 OPERA 模拟操作:
| 顺序 | 操作代码 | 中文说明 |
| --- | --- | --- |
| 1 | `SIMULATE_PRECHECK` | OPERA 模拟预检查 |
| 2 | `SIMULATE_WRITE` | OPERA 模拟写入 |
当前模拟操作只保存请求/响应摘要和 attempt 记录,不接真实 OPERA也不从模拟结果回填订单业务号。失败时只把对应操作标记为 `FAILED`,任务保持未完成,避免用户绕过失败操作。
## 16. 审计要求
以下行为必须记录审计:
@@ -462,28 +471,26 @@ Fallback 处理规则:
本版暂不定义:
- SuperAgent 调本系统的正式 HTTP 接口契约
- 幂等键到底由 SuperAgent 生成还是本系统生成。
- 订单完整状态机。
- 任务完整状态机。
- SuperAgent 查询上下文接口
- OPERA 模拟结果 JSON 字段名。
- 真实 OHIP / OPERA 接口地址、鉴权和返回结构。
- 前端具体页面布局和交互细节。
- 全量 158 条任务卡字段配置复制版。
- Rate Code 和房型规则的代码实现。
- 普通任务切换订单接口和前端交互。
- 用户身份、权限和真实 actor 注入。
## 18. 待确认问题
- SuperAgent 创建任务接口的 URL、Method、Header、鉴权和错误响应格式。
- SuperAgent 查询上下文接口暂不在本 checkpoint 实现,但 SuperAgent 侧已经在整理,后续梳理未完成事项时必须持续提醒。
- `source_event_index`、批次 item index、`execution_order` 的最终编号规则是否都从 1 开始。
- `idempotency_key` 的来源和冲突处理策略
- 订单状态机有哪些稳定状态。
- 任务状态机有哪些稳定状态。
- SuperAgent 查询上下文接口的 URL、入参、返回字段和鉴权方式
- `Message Notification` 是否需要在前端订单列表上单独标识为只读提醒。
- OPERA 模拟结果中 Confirmation No.、Group Code、Block Code、Allotment Code 的具体字段路径。
- 临时订单在无任务后是否立即逻辑删除,还是保留一段时间便于追溯。
- 用户是否允许强制完成任务;如果允许,需要什么权限和审计原因
- 普通任务切换订单接口何时纳入实现
- 用户身份和权限体系何时接入,审计 `actor` 如何从登录态获取。
## 19. 后续建议 checkpoint
@@ -494,7 +501,7 @@ Fallback 处理规则:
3. 定义系统主任务类型、任务卡类型、`result_type`、任务状态和订单状态枚举。
4. 实现 AI 结果接收、幂等、顺序保存和任务卡创建。
5. 实现订单自动挂靠、临时订单创建和人工订单切换。
6. 实现任务详情字段展示、编辑、确认和 `confirmed_payload_json`
7. 实现任务队列阻塞规则和 `Message Notification` 只读归档规则。
8. 实现 OPERA 模拟操作结果底表、重试和订单业务号回填。
6. 实现任务详情字段展示、编辑、确认和 `confirmed_payload_json`当前后端已实现保存草稿和最终确认接口,前端页面待定。
7. 实现任务队列阻塞规则和 `Message Notification` 只读归档规则。当前后端已实现阻塞规则和只读提醒归档的基础能力,前端页面待定。
8. 实现 OPERA 模拟操作结果底表、重试和订单业务号回填。当前后端已实现固定两条模拟操作、attempt、执行、重试和审计列表订单业务号回填待真实 OPERA 返回结构确认后再做。
9. 根据前端页面范围实现列表、详情和只读/可处理状态展示。