---
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 天数一致。
