docs(changelog-v2): 房务待办+日历+不限库存前端重新对接(#4411 #4413)

待办排序倒置修正/stats枚举常量key+随筛选/urgency三层/UNDELIVERED下线;日历每晚落点+下钻stayDate/询房中桶/异常桶;不限库存unlimited字段。测试服实测通过。
这个提交包含在:
API Changelog Bot 2026-06-25 23:43:41 +08:00
父节点 69070e1d39
当前提交 8819ddbf24

查看文件

@ -0,0 +1,67 @@
# 房务「待办 + 日历」模块逻辑修复 + 不限库存读路径修复 — 前端需重新对接
> 变更类型:🐛 逻辑修复(后端,**房务管家前端需对照重新对接待办/日历/库存展示**
> 端类型:管理后台(房务管家·待办看板 / 日历视图 / 配房候选)
> 日期2026-06-25 工单:#4411 + #4413 PR#4412 + #4414 服务hl-order-service-v3 + hl-resource-service双实例已部署 health UP,**测试服 API+DB 实测通过**
---
## 背景
34-agent 深度逻辑审计 + 17-agent 跨 PR 集成检验,确认并修复房务待办、日历、库存读路径一批逻辑 bug。前端需对照以下变更重新对接。
---
## 一、待办看板GET /v3/admin/order/todos
### 1. 排序已修正(后端自动,前端无需改但行为变)
- 修复前:列表按 urgency 字符串降序,导致 **danger最紧急换酒店/退订/加急)排在最底**、warn 反而置顶(字典序 bug
- 修复后:后端按权重 **danger > warn > normal**(同级按创建时间倒序)排序,最紧急的恒置顶。前端直接按返回顺序渲染即可。
### 2. stats 分类计数 key 改为枚举常量(**前端必改**
- stats 各类计数的 JSON key 由 camelCase`swapHotel`)改为**枚举常量**`SWAP_HOTEL`/`REFUND`/`INQUIRY_TIMEOUT`/`INQUIRY_ESCALATED`/`INVENTORY_CHECK_OVERDUE`),与 list 行的 `todoType`、筛选入参口径统一。前端读 stats 的 key 要改。
### 3. stats 随筛选收窄(行为变)
- stats 现**跟随 scopemine/others与结构性筛选收窄**:切「我的」只数你负责的、切「同事」数同事的。(不随 Tab 选择/urgency/keyword 收窄,避免切 Tab 把其余红点打 0。
### 4. urgency 三层智能升级(后端推导,前端展示颜色)
- urgency 现由后端三层推导:基线 + **待办挂久自动升级**(挂满 2h→warn、4h→danger+ **临近出行升红**(距出行 ≤24h→danger、≤7天→warn。前端按返回的 urgency 渲染红/黄/灰即可。
### 5. UNDELIVERED「未送达」类型下线
- 该类型无生产者、恒 0,已从 stats/异常集合移除。前端**别再展示「未送达」分类**。
---
## 二、日历视图GET /admin/house/calendar?month=yyyy-MM
### 6. 已配房按「每个入住晚」落点 + 下钻传 stayDate**前端必改**
- 多晚订单现在月历上**每个入住晚都有一个点**(住 3 晚 → 3 天各一点)。
- 点某天下钻列表时,**请带上该天的 `stayDate` 参数**(下钻接口 `GET /v3/admin/order/grab-pool/my-claims/hotel` 已支持 `stayDate` 可选过滤)——否则多晚订单点中间晚会跳转出空列表(这是本次修的 bug
### 7. 「询房中」桶补显示已抢未配的订单
- 已抢单、还没配房、但已发了询房PENDING的订单,现在也会出现在日历「询房中」桶之前完全不显示
### 8. 异常桶口径对齐
- 日历异常桶现并入 `house_status=EXCEPTION`,与「我的接单」异常计数口径一致。
---
## 三、不限库存展示(配房候选 / 库存日历,**前端必改**
### 9. 不限库存房型新增 `unlimited` 字段
- 房务把某房型某日设为「不限库存」stock=NULL后,配房候选 `GET /v3/admin/hotel-candidates``roomTypes[]` 与库存日历,该房型现返回 **`unlimited=true`(此时 `available=null``inventoryStatus=AVAILABLE`**。
- 修复前:不限库存被错当成 `available=0/FULL`,房务在候选弹窗看到「满房/不可选」——明明永远可订却选不出来。现已修正。
- **前端识别 `unlimited=true` 时展示「不限」**(而非数字 0 或 null
- 酒店卡级 `matchedRoomTypeAvailable` 在 matched 房型不限时为占位值 `99`(仅排序用),前端展示**以 room 项的 `unlimited` 为准**。
---
## 四、后端行为(前端知悉即可,无需对接)
- 待办 RESOLVE 闭环补全(退订/换酒店/异常处置完成/重发询房自动解,列表不再积压幽灵待办);转单/释放后待办归属自动迁移给新房务。
- 配房「同步协议价」开关新增 roomTypeId 归属校验防越权改别家酒店协议价;CONFIRMED/EXCEPTION 需求不再被 submit 误改/误翻态。
---
## 测试服实测(已通过)
- 不限库存:嘉世豪豪华大床房 stock=NULL → `unlimited=true/available=null/AVAILABLE`,对照 stock=20 房型正常。
- 越权:配房同步协议价传别家酒店房型 → 808112 拒。
- 待办/日历接口 200 渲染正常;Flyway 迁移 success=1。