---
schema: "hl-changelog/v2"
ticket: "5915"
title: "看板删除「换车请求」状态——statusOptions/statusCounts 不再含该无效项，statuses 不再接受 change_requested"
consumer: "admin"
change_type: "修改接口"
author: "wx(GIT)"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "not_required"
frontend_owner: "mmg"
frontend_ref: "58428593"
target_release: ""
verified_at: "2026-08-12"
status_note: "后端已删除并部署测试服，API 实测通过。看板「换车请求」状态依赖 fleet_change_request 表，该表 M1 从未落地：change_requested 派生态恒为空、计数恒 0、筛选恒返空，是无效展示项，按 wx 指示整体删除。实测 summary：statusOptions=[unassigned,holding,assigned,completed,canceled]（无换车请求）、statusCounts 无 changeRequested 字段；statuses=change_requested 现按 100001 参数非法拒绝（原恒返空）。前端待接入（pending）：若看板状态下拉/筛选仍硬编码「换车请求」项需同步移除；若纯渲染后端 statusOptions 则自动受益。"
updated_at: "2026-08-12"
base: "dev-v3"
---

# 看板删除「换车请求」状态（#5915 / PR #5925）

> **服务**: hl-fleet-service
> **PR**: #5925
> **日期**: 2026-08-12
> **背景**: 看板「换车请求」状态依赖 fleet_change_request 表，该表 M1 从未落地 → change_requested 派生态恒为空、计数恒 0、筛选恒返空，是无效展示项。按 wx 指示整体删除该看板状态。

---

## 变更接口

- `GET /admin/fleet/board/summary`（看板汇总）
- `GET /admin/fleet/board/orders`（看板列表，statuses 筛选）

---

## 契约变化

### 1. summary.statusOptions 移除「换车请求」项

| 项 | 旧 | 新 |
|---|---|---|
| `statusOptions[].value` | 含 `change_requested` | 仅 `unassigned/holding/assigned/completed/canceled` |
| `statusOptions[].label` | 含 `换车请求` | 仅 `待派车/排车中/已派车/已完结/已取消` |

实测返回：

```json
"statusOptions": [
  {"value":"unassigned","label":"待派车"},
  {"value":"holding","label":"排车中"},
  {"value":"assigned","label":"已派车"},
  {"value":"completed","label":"已完结"},
  {"value":"canceled","label":"已取消"}
]
```

### 2. summary.statusCounts 移除 changeRequested 字段

| 字段 | 旧 | 新 |
|---|---|---|
| `statusCounts.changeRequested` | 恒 `0`（不落库，占位） | **字段删除**，不再下发 |

实测 `statusCounts` keys = `[unassigned, holding, assigned, completed, canceled, unassignedUrgent, holdingUrgent]`，无 `changeRequested`。

### 3. statuses 筛选不再接受 change_requested

| 入参 | 旧 | 新 |
|---|---|---|
| `statuses=change_requested` | 恒返空页（M1 无表，非报错） | **100001 参数非法**：`statuses 含非法状态值：change_requested（合法值：unassigned/unassigned_urgent/holding/holding_urgent/assigned/canceled/completed）` |

实测：

```json
{"code":100001,"message":"参数非法: statuses 含非法状态值：change_requested（合法值：unassigned/unassigned_urgent/holding/holding_urgent/assigned/canceled/completed）","success":false}
```

---

## 保留（不受影响）

「换车请求」作为**操作日志/时间线历史轨迹**保留，与看板状态无关：

- `AssignmentOperationTypeEnum.CHANGE_REQUESTED`（「发起修改派单」操作类型）
- `TimelineEventTypeEnum.CHANGE_REQUESTED`（时间线事件类型）
- 派单操作日志 / 订单时间线对历史 change_requested 记录的解析与展示不变。
- `CreateAssignmentReqVO.changeRequestId` 历史兼容字段保留（当前创建接口不消费）。

## 前端接入提示

- 看板状态**下拉/筛选**：若前端硬编码了「换车请求」选项需同步移除；若纯渲染后端 `statusOptions` 则自动受益、无需改动。
- 不要再向 `statuses` 传 `change_requested`，否则会收到 100001 参数非法。

## 验证证据（测试服 API 实测）

- `GET /admin/fleet/board/summary`：statusOptions 无换车请求、statusCounts 无 changeRequested。
- `GET /admin/fleet/board/orders?statuses=change_requested`：返 100001 参数非法。
- 单测 3679 全绿（含 FleetRedLineArchTest 13 项），spotless 通过。

## 关联 / 联系人

### 联系人

- **后端负责人**: @wx
