实现M002 V3 P0.1 Parent Group路由修订

This commit is contained in:
andy
2026-07-12 11:42:01 +08:00
parent 0358b34159
commit 92489af18e
42 changed files with 3971 additions and 79 deletions

View File

@@ -0,0 +1,78 @@
# 新订
## 适用业务
用于当前邮件要求创建新的:
- FIT Reservation
- Group Block
- Allotment / Control Block
- QBD/LianTai 当前新订行
- Parent Group 完整拆成 Child Groups 时的 child group
## 判断
- 小于 5 间通常按 FIT。
- 5 间及以上通常按 Group Block。
- 独立新建请求明确 allotment、allocation、control block、控房、配额、取配、配合房时按控房/配额对象优先。
- Parent Group 完整拆成 Child Groups 是上述控房/配额对象优先规则的明确例外:每个 child 固定输出 `New Booking``extracted_fields.booking_object_type=Group Block`;不得因为 split evidence 出现 allocation、allotment 或 `AMEND TO` 就把 child 归为 `Allotment / Control Block` 或普通 Update。
- 独立新建 `Allotment / Control Block` 就是新建 Parent Group`case_keys.group_code``case_keys.block_code` 必须按 `31-allotment-control-block.md` 归一为同一 code。Child 和普通 Group Block 仍只填 `group_code`
## 不适用
- 修改既有订单。
- 取消。
- 只有 voucher 或 payment evidence。
- 只有 Rooming List。
- 旧 Group Code 改新 Group Code。
- 只有 Trace 或 extra bed。
- 动作只在历史邮件中。
## 必要证据
普通候选事件需要:
- 当前创建动作。
- 目标 key 或足够清楚的新对象身份。
-`54-stay-date-parsing.md` 可安全识别的入住/离店、房型房量、客人或团队信息等最小新订字段。
- 系统上下文没有 existing valid record、pending/open task、lock 或 active workflow 阻塞。
- 涉及必需房型、Rate Code 或 Fix Charge 时,必须有对应 reference 唯一支持;业务必需字段不唯一时不得用 downstream hard validation 代替人工确认。
## 抽取字段
保留:
- group code / confirmation number如有
- arrival / departure / nights
- date evidence`hotel_date_raw``tour_date_raw``action_date_raw``sheet_month_year``date_inference_basis`
- guest or group name
- room items保留 raw room type 和 mapped room code
- supplier / channel
- booking object type
- QBD/LianTai row evidence
- parent allocation context
- Rate Code / settlement price evidence
- Fix Charge evidence
## Linked Trace
New Booking 同事件出现 extra bed、Meeting、meal、arrival notice、room preference/setup、已确定的 payment information 或其他具体预订补充信息时,按目标额外生成一个 linked `Trace`。补充信息即使只是告知,也生成 Trace主任务已经完整承接的入住日期、房型、房量等核心参数不得重复生成 Trace。
同一目标的多条补充信息合并到一个 Trace多个目标分别生成 Trace。Extra bed 不计入房量,不影响 FIT/Group不作为 PMS 房型,不决定 Rate Code。
## 业务复核
当前证据已经能确定 `event_type=New Booking``booking_object_type` 时,以下问题不得把事件改成 Fallback。保留 `New Booking` 及其 subtype 判别字段,并使用非空、完整的 `manual_review`
- key identity 不清。
- 已有订单、pending task、open task 或 active workflow。
- current/history boundary 不清,但当前创建动作和对象类型已经确定。
- 多对象无法安全拆分。
- QBD/LianTai 当前行已确定为 New但必要行证据不可读。
- 必需 room mapping、Rate Code 或 settlement price 不唯一。
- Fix Charge 无法安全解析。
- Parent split 的 child 身份和 Group Block subtype 已确定,但 child line 的必需字段不完整。
保留所有已确认字段;无法确定的 PMS 房型或其他必需值保持 `null`,并在 `manual_review.missing_fields[]` 中使用指向当前 event 的 RFC 6901 JSON Pointer。
只有当前证据无法确定是 New、Update、Cancel 或 group-code change或者无法确定 `booking_object_type` subtype 时,才输出 `event_type=Need Manual Review` 的 Fallback 复核。