changelog(7149): 复审补漏 PR #7184——汇总跳过自订晚、团单房数为空/0 统一 582099、校验顺序说明
changelog-filename-gate / validate (push) Successful in 2s
changelog-filename-gate / validate (push) Successful in 2s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XYL5S9SsBtkg7aGyFAbrrQ
这个提交包含在:
@@ -21,7 +21,7 @@ base: "dev-v3"
|
||||
|
||||
> **服务**: `hl-order-service-v3`
|
||||
> **Issue**: #7149
|
||||
> **PR**: #7177(squash 合入 dev-v3 `a52365278`)
|
||||
> **PR**: #7177(squash 合入 dev-v3 `a52365278`)、#7184(复审补漏:汇总跳自订晚、团单房数缺失统一 582099)
|
||||
> **日期**: 2026-09-06
|
||||
> **影响范围**: 管理后台团期子订单详情「住宿安排 / 用车安排」提需求弹窗与「订单调整」提交
|
||||
|
||||
@@ -142,7 +142,7 @@ base: "dev-v3"
|
||||
- 团期闸门(房车共用):`RECRUITING / RESOURCE_PREPARING` 放行;`MATERIAL_PREPARING / PENDING_DEPARTURE / TRAVELLING / REVIEWING / SETTLED` 及未知状态 589536;`CANCELLED` / 查不到团期 589501;核心订单不查团期。
|
||||
- 冻结期例外:该户用房需求最新一版为 `REJECTED_TO_CONSULTANT`(团期管理员打回)时放行重提,新版本回到 `PENDING_REVIEW`;之后再改仍 589536,要再改只能再次被打回。
|
||||
- 团单房型间数必填按「段首候选 rooms 行」判,与全团需求汇总 `requirement-summary` 同口径;旧结构(无 `rooms[]`)按段级 `roomCategory + roomCount` 合成一行判。
|
||||
- 校验顺序:结构校验(582098 / 582016 / 582019)→ 订单状态(582017)→ 团期闸门(589536 / 589501)→ 团单房型间数(582099);任一拒绝均在写库之前,无新版本、`room_control_status` 不变。
|
||||
- 校验顺序(PR #7184 起):订单状态(582017)→ 团期闸门(589536 / 589501)→ 晚数匹配(582011)→ 团单房型间数(582099,含房数为空 / 0)→ 通用结构校验(582098 / 582016 / 582019);任一拒绝均在写库之前,无新版本、`room_control_status` 不变。核心订单仍以通用结构校验给码(房数 0 → 582016)。
|
||||
- 成功后 `order_main.room_control_status=PENDING_REVIEW`(既有行为),团期成团时定制师不再产生「房型需求 · 待提交」待办。
|
||||
|
||||
### 2. 订单调整统一提交 `POST /v3/admin/order/{id}/adjustment/submit`
|
||||
@@ -287,6 +287,7 @@ base: "dev-v3"
|
||||
| ✅ 团单某晚客人自订 | `{ "dayNumber": 2, "customerSelfBooked": true }`,无 `segments` | 200,该晚跳过校验 |
|
||||
| ✅ 旧结构团单 | 无 `rooms[]`,段级 `roomCategory` + `roomCount` 齐全 | 200 |
|
||||
| ❌ 团单房型行缺 `roomCategory` | `rooms: [ { "roomCount": 1 } ]` | 582099 |
|
||||
| ❌ 团单房型行房数为空 / 0 | `rooms: [ { "roomCategory": "KING", "roomCount": 0 } ]` | 582099(PR #7184 起;核心订单仍 582016) |
|
||||
| ❌ 团单旧结构缺段级 `roomCategory` | 段级只有 `roomCount`,候选带 `roomTypeId` | 582099 |
|
||||
| ❌ 团单「加晚次空白占位」段 | 候选与段全空 | 582099(核心订单该形态仍放行) |
|
||||
| ❌ 团期物料准备中提交 / 修改 | 任何合法 payload | 589536(该户最新需求被打回除外) |
|
||||
@@ -308,7 +309,7 @@ base: "dev-v3"
|
||||
- **团单不再接受「加晚次空白占位」段**:核心订单允许先提交全空的候选 / 段占位,团期子订单的非自订晚一律按缺房型拒绝(582099「第 N 晚第 M 段」);团单每晚要么填齐 `rooms[]`,要么标 `customerSelfBooked=true`。
|
||||
- **文案「物资准备」= 团期状态芯片「物料准备中」(`MATERIAL_PREPARING`)**:589536 文案沿用代码里的「物资准备」叫法,与状态枚举文案同义,前端直接展示 `message` 即可。
|
||||
- **冻结期打回只给一次重提机会**:重提后最新版变 `PENDING_REVIEW`,再改回到 589536;这是有意设计(改需求须经管理员再次打回)。
|
||||
- **自订晚**:`customerSelfBooked=true` 的晚不做房型校验;前端标记自订后应清空该晚 `segments`,避免残留段进入全团汇总。
|
||||
- **自订晚**:`customerSelfBooked=true` 的晚不做房型校验;全团汇总 `requirement-summary` 也整晚跳过(PR #7184 复审补漏),残留 `segments/rooms` 不计入采购分母、不再出「未知」桶——前端标记自订后仍建议清空该晚 `segments`,但后端不依赖它。
|
||||
- **未知团期状态**按冻结处理(fail closed),不会误放行。
|
||||
|
||||
## 六.5、枚举 / 数据字典(接口出现枚举时必写)
|
||||
@@ -360,7 +361,8 @@ base: "dev-v3"
|
||||
|---|---|---|
|
||||
| 团期子订单提 / 改需求时机 | 团期须为 `RESOURCE_PREPARING`(成团后),否则 589501 | 支付后即可:`RECRUITING / RESOURCE_PREPARING` 放行 |
|
||||
| 团期物料准备及之后 | 589501 | 589536(新码,文案明确「已冻结」),最新需求被打回的户可重提一次 |
|
||||
| 团单缺房型大类 / 房数 | 放行,全团汇总出现「未知」房型 | 582099 拒绝,零副作用 |
|
||||
| 团单缺房型大类 / 房数 | 放行,全团汇总出现「未知」房型 | 582099 拒绝,零副作用(房数为空 / 0 也是 582099,不再先出 582016;PR #7184) |
|
||||
| 自订晚残留段进入全团汇总 | 计入「未知」桶 | 整晚跳过,不计入(PR #7184) |
|
||||
| 团单空白占位段 | 放行 | 582099 拒绝 |
|
||||
| 用车需求 | 同 589501 闸 | 同新闸门,不加必填 |
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户