--- schema: "hl-changelog/v2" ticket: "5691" title: "改派页确认改单日期对所有出行日回显(修复只展示1天)" consumer: "admin" author: "wx" change_type: "修改接口" backend_status: "deployed" gateway_status: "verified" frontend_status: "not_required" frontend_owner: "" frontend_ref: "" target_release: "" verified_at: "" status_note: "后端完成:PR #5696 合并 dev-v3(007dc20ad86088c22604ffed7d79e20df1318a51)并部署 TEST,网关验证改派页确认改单日期对所有出行日回显。待前端确认改派页用 activeAssignments[].serviceDates 渲染逐日。" updated_at: "2026-08-08" base: "dev-v3" generated: "2026-08-08T13:25:00+08:00" --- # 改派页确认改单日期对所有出行日回显(#5691) ## Bug(wx 实测) 26-8778 周梦洁(8/17-8/20 4 天行程),改派页「确认改单日期与逐日费用」**只展示 8月17日 一天**——4 天行程只显示 1 天,无法逐日看/改全部。 ## 根因 改派页「确认改单日期」用 `GET /admin/fleet/board/orders/{orderId}` 返回的 **`activeAssignments[].serviceDates`** 渲染。该单是**已派全程行**(`service_date=NULL`、`start=8/17 end=8/20`、`dispatch_plan_finalized=0` 未按逐日敲定、但已派有车+司机): - `currentServiceDatesByGroup` 过滤 `dispatch_plan_finalized==1`,全程行展开(expandFullTripDailyRows)的 slice 因 finalized=0 被滤 → **`serviceDates` 返回空** → 改派页只展示 1 天(fallback 到 startDate)。 - 而 `dailyVehiclePlan` / `dailyVehicleFees` 都正常 4 天(不过滤 finalized)——日期与逐日费用天数不一致。 ## 修改接口:`GET /admin/fleet/board/orders/{orderId}` `activeAssignments[].serviceDates` 行为修正(无字段结构变化): | 场景 | 修复前 | 修复后 | |---|---|---| | 已派全程行(finalized=0,有车+司机) | `serviceDates=[]`(空) | `serviceDates=[start...end]` 全部出行日 | | 逐日行(finalized=1) | 正常 | 不变 | | 未派资源(无车/司机)未敲定切片 | 不纳入 | 不变(仍按 finalized==1 限定) | ### 前端交接 - 改派页「确认改单日期」继续用 `activeAssignments[].serviceDates` 渲染——现在对**已派全程行**也返回所有出行日(不再空)。 - 「逐日费用」用 `activeAssignments[].dailyVehicleFees` / `dailyVehiclePlan`——天数与 `serviceDates` 一致(配套展示)。 - 结合 #5676 按天改派:改派页每天一行展示,点某天【改派】调 `POST /admin/fleet/assignments/{assignmentId}/change` 传 `serviceDates=[该天]` 只改该天。 ## 验证 - BoardOrderServiceTest **88/88**(新增 1:已派全程行 finalized=0 回显全部服务日;红→绿验证修复前失败);dev-v3 全量 verify 3286/0F/0E。 - 网关实证(TEST,周梦洁 order 2085922371843125250):修复后 `activeAssignments[0].serviceDates=[8/17,8/18,8/19,8/20]` 4 天(修复前空),与 dailyVehiclePlan 天数一致。