hl-api-changelog/changelogs-v2/2026-08/12_5895_看板代际筛选放宽与槽位头车型大类字段-修改接口-管理后台.md
Mimingguang 42184e66cb
一些检查失败了
changelog-filename-gate / validate (push) Failing after 2s
docs(changelogs-v2): 回写 #5895 看板代际筛选与槽位头字段前端 not_required
BUG1 取值修复前端透传自动受益;BUG5 vehicleCategoryLabel 前端零消费,车型大类
已走 requiredVehicleTypeLabel 显示,接入新字段属可选卡头增强未做,实证 not_required。
2026-08-12 12:56:45 +08:00

90 行
4.6 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

---
schema: "hl-changelog/v2"
ticket: "5895"
title: "看板代际筛选放宽+槽位头车型大类字段——确认执行页逐日车费完整、槽位卡头显示车型大类名"
consumer: "admin"
change_type: "修改接口"
author: "wx(GIT)"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "not_required"
frontend_owner: "mmg"
frontend_ref: ""
target_release: ""
verified_at: "2026-08-12"
status_note: "后端已修复并部署测试服,API 实测通过。修复两块:(1) BUG1 确认执行页逐日车费 3 天只显示 1 天+总车费「价格不完整」——BoardOrderService.selectCurrentDailyPlanRows 代际筛选放宽为「当前代际 && (finalized=1 或 assigned/holding)」,buildVehicleFeeSummaries 已派切片有 protocolPrice 按日累加、无则读 vehicle_fee_total 兜底;(2) BUG5 排车页「车辆槽位 N」卡片头新增 vehicleCategoryKey/vehicleCategoryLabel 字段(未派=需求车型大类,已派=实际车辆车型大类)。实测订单 26-3698dailyVehiclePlan 返回 3 天08-17/18/19 各 calendarPrice=800.00/assignmentPrice=800.00/priceSource=CALENDAR、vehicleFeeSummaries amount=2400.00;vehicleSlots[0] vehicleCategoryKey=suv/vehicleCategoryLabel=SUV。前端 2026-08-12 实证 not_requiredBUG1 取值修复前端透传自动受益;BUG5 vehicleCategoryLabel 全仓零消费,车型大类已走 requiredVehicleTypeLabel 显示,接入新字段属可选卡头增强未做。"
updated_at: "2026-08-12"
base: "dev-v3"
---
# 看板代际筛选放宽+槽位头车型大类字段(#5895 / PR #5904
> **服务**: hl-fleet-service
> **PR**: #5904本条主修复+ #5907别名标签补丁,另条 changelog
> **日期**: 2026-08-12
> **背景**: 用户报障两个 BUG(BUG1) 确认执行页逐日车费 3 天只显示 1 天、总车费「价格不完整」;(BUG5) 排车页「车辆槽位 N」卡片头只显示车牌,应显示车型大类名多个和车牌一样分割显示
---
## 变更接口
`GET /admin/fleet/board/orders/{orderId}`(看板订单详情)
---
## 改动一BUG1 确认执行页逐日车费完整
**根因**`selectCurrentDailyPlanRows` 代际筛选过严,只认「当前代际且 finalized=1」的派车方案行;换版/改派后旧行被排除 → `dailyVehiclePlan` 漏天、`vehicleFeeSummaries` 算不出总价。
**修复**
- 筛选放宽为「当前代际 && (`dispatch_plan_finalized=1` 或 派单 status=assigned/holding)」——已派/已锁定的实际执行行也纳入。
- `buildVehicleFeeSummaries` 计费:已派切片有 `protocolPrice` 按日累加;无 `protocolPrice` 时读 `vehicle_fee_total` 兜底(不再恒返「价格不完整」)。
**响应字段(值修复,无结构变化)**
| 字段 | 旧 | 新 |
|---|---|---|
| `dailyVehiclePlan` | 只返回 1 天 | 返回完整服务天数26-3698 实测 3 天) |
| `vehicleFeeSummaries[].amount` | 「价格不完整」 | 正确总价26-3698 实测 2400.00 = 3×800 |
| `dailyVehiclePlan[].calendarPrice/assignmentPrice/priceSource` | 漏天 | 逐日正确800.00 / 800.00 / CALENDAR |
## 改动二BUG5 槽位头车型大类字段(新增)
`vehicleSlots[]` 每项新增两个字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| `vehicleCategoryKey` | string | 车型大类规范 key`suv`/`mpv`/`bus`/`sedan` 等)。未派=需求车型大类;已派=实际车辆车型大类(`fleet_vehicle_type.type_key` 别名经 normalize 归一)。 |
| `vehicleCategoryLabel` | string | 车型大类中文标签(`SUV`/`商务车`/`大巴`/`轿车` 等),卡片头显示用。 |
**示例**26-3698 / 2086270138171994114,已派 suv 槽位):
```json
{
"assignmentSlotId": "344659955019812864",
"requiredVehicleType": "suv",
"requiredVehicleTypeLabel": "SUV",
"vehicleCategoryKey": "suv",
"vehicleCategoryLabel": "SUV",
"requiredSeats": 7,
"slotStatus": "assigned",
"vehiclePlate": "蒙A-H7777",
"vehicleModel": "丰田汉兰达",
"driverName": "阿拉坦"
}
```
**前端展示建议**:「车辆槽位 N」卡片头 = `vehicleCategoryLabel` + 车牌(已派)/ 需求车型(未派),多槽位按 `fleetItemIndex` 排序分割显示。
## 验证证据(测试服 API 实测,订单 26-3698 / 2086270138171994114
- `dailyVehiclePlan`3 天2026-08-17/18/19,逐日 `calendarPrice=800.00 / assignmentPrice=800.00 / priceSource=CALENDAR`
- `vehicleFeeSummaries``amount=2400.00`3×800
- `vehicleSlots[0]``vehicleCategoryKey=suv / vehicleCategoryLabel=SUV`#5907 补丁后;#5904 原始曾返回别名 `suv2`,见另条 changelog
## 关联 / 联系人
### 联系人
- **后端负责人**: @wx