实现 M002 订单任务入站与队列规则
This commit is contained in:
@@ -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 原始记录。
|
||||
|
||||
禁止事项:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user