--- 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