实现 M002 订单任务入站与队列规则

This commit is contained in:
andy
2026-07-07 14:29:43 +08:00
parent 7e276469ef
commit f7d77b45bd
78 changed files with 11703 additions and 1 deletions

View File

@@ -82,6 +82,11 @@
- `server/src/main/resources/db/migration/V1__create_source_message_inbox.sql`
- `server/src/main/resources/db/migration/V2__create_source_message_original_access_audit.sql`
当前 M002 订单任务相关 migration
- `server/src/main/resources/db/migration/V3__create_reservation_ai_task_workflow.sql`
- `server/src/main/resources/db/migration/V4__harden_reservation_task_queue_and_manual_conversion.sql`
上线前确认:
- 目标数据库为空库或 Flyway history 与当前代码一致。
@@ -89,6 +94,31 @@
- migration 在 UAT 或测试库已经跑过。
- 表和字段中文注释能正常创建。
- 数据库时间按 UTC 写入,接口层负责返回 ISO 8601。
- 执行 V4 前,如果目标库已有 M002 试运行数据,必须先检查 ACTIVE 订单业务号重复和同订单任务队列序号重复。
V4 前置检查 SQL
```sql
SELECT hotel_id, order_key_type, order_business_key, COUNT(*) AS duplicate_count
FROM workflow_reservation_order
WHERE order_status = 'ACTIVE'
AND order_key_type IN ('GROUP_CODE', 'CONFIRMATION_NUMBER')
AND order_business_key IS NOT NULL
GROUP BY hotel_id, order_key_type, order_business_key
HAVING COUNT(*) > 1;
SELECT hotel_id, order_id, queue_participation, execution_order, COUNT(*) AS duplicate_count
FROM workflow_reservation_task
GROUP BY hotel_id, order_id, queue_participation, execution_order
HAVING COUNT(*) > 1;
```
处理要求:
- 如果任一 SQL 返回记录,不要继续执行 V4。
- ACTIVE 订单业务号重复时,先由业务确认保留哪一条 ACTIVE其他订单应转为 `LOGIC_DELETED``ENDED` 或完成任务迁移后再上线。
- 同订单任务队列序号重复时,先按来源顺序和审计证据重新分配 `execution_order`,确认前置任务关系正确后再上线。
- 不要为了让唯一索引创建成功而随意删除订单、任务或 AI 原始记录。
禁止事项: