92 行
5.2 KiB
Markdown
92 行
5.2 KiB
Markdown
---
|
||
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
|