---
schema: "hl-changelog/v2"
ticket: "6022"
title: "一键清空槽位后需求回待派车可重派 + 逐日车费按天拆分"
consumer: "admin"
author: "wx"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "c157cde4"
target_release: "2026-08-18"
verified_at: "2026-08-18"
status_note: "后端完成：PR #6029 已合并 dev-v3（bf80a6f2ac）并部署 TEST（hl-fleet-service jar 15:29 更新、双实例重启）。bug1 看板状态派生识别「槽位清空需求」回待派车；bug2 逐日 vehicle_fee_total 按天拆分 + Flyway V20260818_001 回填存量。测试随 PR 自证。"
updated_at: "2026-08-18"
base: "dev-v3"
generated: "2026-08-18T15:40:00+08:00"
---

# 一键清空槽位后需求回待派车可重派 + 逐日车费按天拆分（#6022）

## 背景

两个 fleet 车务 bug：
- **bug1**：车务派单看板对改期/重配的订单点「一键清空已派车辆槽位」后，整个用车需求被误判成「已取消」，从看板消失、无法重新派车。弹窗本意是「清空后请按新需求重新派车」，但需求消失导致车务失去重派入口。
- **bug2**：确认执行页「逐日车费」只显示 1 天、最终总车费只算 1 天——每条逐日派车行的 `vehicle_fee_total` 被写成了整槽总价（平铺到每一天），而非该天单日价。

## 变更接口

| 接口 | 变更 |
| --- | --- |
| `GET /admin/fleet/board/orders`（看板列表/各 status 分面） | **行为变更**。新增识别「槽位清空需求」：需求下全部行 canceled 且取消来源**非**订单真取消（非 `order_cancelled`）时，记录级覆写回「待派车」（可见、可重派），不再误判「已取消」。已取消 tab 仍只显示订单真取消（#5923 口径零回归） |
| 确认执行页「逐日车费」数据源 | **行为变更**。逐日派车行 `vehicle_fee_total` 落该天**单日协议价**（不再平铺整槽总价），逐日车费显示全部天数、最终总车费=各天单日价之和 |

## 行为口径

- **bug1**：清空=清掉派车占用让重派，不等于把需求作废。清空后需求回「待派车」、被清行的车/司机占用正确释放、订单状态不受影响；stale 陈旧定稿场景同样回待派车。
- **bug2**：核单一致性校验改为 **Σ（求和）口径**——逐日费累加 = 总车费；存量写错的逐日行由 **Flyway `V20260818_001`** 回填为单日价（仅影响展示/司机端总费，核单快照独立落库不受影响）。

## 响应示例（逐日车费，bug2）

确认执行页「逐日车费」接口返回里，**逐日单元格数组**的每个元素 = 一天的派车明细（字段名见下，前端按字段名取）。关键是 **`protocolPrice`（当天派车价/协议价）现在=该天单日价**，不再是整槽总价平铺：

```json
{
  "slotId": "2089597158683455490",
  "serviceDate": "2026-08-24",
  "assignmentId": "2089595940254986242",
  "used": "USED",
  "readOnly": false,
  "vehicleId": "2085539421276286978",
  "driverId": "2067084362829979650",
  "rescheduleResidue": false,
  "canDelete": true,
  "vehiclePlate": "蒙A-E2E99",
  "driverName": "王信",
  "protocolPrice": "1000.00"
}
```

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `slotId` | Long(字符串) | 稳定槽位 ID（当天逐日切片） |
| `serviceDate` | Date | 服务日期（逐日） |
| `assignmentId` | Long(字符串) | 当天逐日派车行 ID（取消/改派按此 ID） |
| `used` | String | `USED`=实际用车 / `UNUSED`=显式不用车 / `null`=未编辑 |
| `readOnly` / `canDelete` | Boolean | 该 cell 只读 / 可删除(取消)标记 |
| `vehicleId` / `driverId` | Long(字符串) | 当天车辆/司机 ID（未派为 null） |
| `rescheduleResidue` | Boolean | 是否改期残留旧日期行（true 挂「改期残留/待清理」徽标） |
| `vehiclePlate` / `driverName` | String | 当天车牌/司机明文（行冻结快照，未派为 null） |
| **`protocolPrice`** | BigDecimal(字符串) | **当天派车价**：`= 该天单日协议价`（chargeable=0→0；缺协议价回退日历参考价，再无则 0）。**改动前=整槽总价平铺到每天，改动后=当天单日价** |

**前端渲染要点**：逐日车费把每一行 `serviceDate` 的 `protocolPrice` 全部列出（3 天=3 行），最终总车费 = 各行 `protocolPrice` 之和（Σ 口径），不要再取单一行或按 `vehicle_fee_total` 旧值。

## 前端动作

- 看板「待派车」分面会正确出现被一键清空的需求，可点入重派；「已取消」分面不再混入清空需求。
- 确认执行页逐日车费正常显示全部行程天数与正确合计。

## 验证证据

- 单测随 PR 自证（一键清空回待派车 + 已取消 tab 口径零回归；逐日费按天拆分 + Σ 校验 + Flyway 回填）。
- PR #6029 squash 合并 dev-v3（merge commit bf80a6f2ac），Deploy Panel 部署 hl-fleet-service（jar 15:29 更新、双实例重启生效）。

## 关联 / 联系人

- Issue：https://git.1814.love:8443/wx/HL/issues/6022
- PR：https://git.1814.love:8443/wx/HL/pulls/6029
- Commit（merge）：https://git.1814.love:8443/wx/HL/commit/bf80a6f2ac
- 后端负责人：wx
