---
schema: "hl-changelog/v2"
ticket: "5828"
title: "看板已取消卡片不再显示旧车/司机 + 下线换车请求 tab"
consumer: "admin"
author: "wx"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "12684a44"
target_release: ""
verified_at: "2026-08-16"
status_note: "后端完成：PR #5938（取消卡片隐藏旧安排+下线换车请求tab）已合并 dev-v3 并部署 TEST。已取消槽位读侧不再回填车牌/车型/座位/车队/司机名/电话（落库 vehicle_id/driver_id 一字未动，撤销取消/退保/对账反查不受影响）；换车请求 tab 下线，statuses=change_requested 返明确参数错误。已取消 tab 只收订单真取消（#5923，PR #5978 已部署）。"
updated_at: "2026-08-16"
base: "dev-v3"
generated: "2026-08-16T01:00:00+08:00"
---

# 看板已取消卡片不再显示旧车/司机 + 下线换车请求 tab（#5828）

## 背景

订单/派单取消后，看板「已取消」卡片顶部仍残留「当前安排 蒙A-E5555 阿木古愣」——取消时占用早已释放（占用按 `holding/assigned` 实时判定），但读侧仍回填车牌/司机，造成误导。另「换车请求」tab 是 M1 占位空壳（对应表不存在，永远为 0）。

## 变更接口与行为变化

| 接口 | 变更 |
| --- | --- |
| `GET /admin/fleet/board/orders` / 槽位视图 | **已取消（canceled）槽位读侧不再回填** `vehiclePlate`/`vehicleModel`/`vehicleSeats`/`vehicleFleetTeam*`/`driverName`/`driverPhone`（卡片「当前安排」对 canceled 行显示为空） |
| `GET /admin/fleet/board/orders?statuses=` | **移除 `change_requested` 筛选值**；传 `statuses=change_requested` 返明确参数错误（合法值：unassigned/unassigned_urgent/holding/holding_urgent/assigned/canceled/completed） |
| 看板 tab 列表 | 「换车请求」tab 下线 |

## 关键口径（前端需知）

- **落库字段一字未动**：`vehicle_id`/`driver_id` 等仍保留（是「撤销取消」恢复依据 + 退保/对账反查键），仅**读侧展示**不回填。撤销取消后车/司机原样恢复。
- **占用本就释放**：canceled 行不被任何占用/冲突查询命中，车与司机当场释放，无独立占用记录需清。
- **已取消 tab 只收「订单真取消」**（#5923）：车务删槽/换版跟随/占位撤销/手动取消的联动取消行不再误挂已取消 tab。
- 多槽位进度 `assignmentProgress` 各态独立计数（含 canceledSlots），不再漏算 unassigned。

## 前端动作

- 已取消卡片**不再显示**「当前安排 车牌/司机」（后端返 null，前端勿兜底旧缓存）。
- 删除「换车请求」tab；勿再传 `statuses=change_requested`（会返参数错误）。
- `AssignmentOperationTypeEnum.CHANGE_REQUESTED` 操作日志类型**保留**（与看板派生态无关）。

## 验证证据

- BoardOrderServiceTest +166 / BoardSummaryServiceTest 全绿（canceled 槽位各展示字段 null、撤销取消不受影响、change_requested 拒绝）；FleetRedLineArchTest 13 + spotless 绿。
- 已取消 tab 只收订单真取消的过滤语义由 #5923 的 172 单测覆盖（PR #5978 已部署 TEST 实测）。
