chore(changelog): #5479 看板列表同槽位跨段换车按派车组拆分-修改接口-管理后台
一些检查失败了
changelog-filename-gate / validate (push) Failing after 1s

这个提交包含在:
wx 2026-08-04 15:29:12 +08:00 提交者 API Changelog Bot
父节点 093a9913b4
当前提交 3b47e02a39

查看文件

@ -0,0 +1,63 @@
---
schema: "hl-changelog/v2"
ticket: "5479"
title: "看板列表同槽位跨段换车 assignmentSlots 按派车组拆分"
consumer: "admin"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "pending"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: "2026-08-04"
status_note: "看板列表 assignmentSlots 修复:同槽位跨段换车(同 slot 多 assignment_group_id时由仅返回首段改为按派车组返回多段每段含各自区间/车辆/司机/司机手机号;slotSummary 各段区间合计覆盖全槽;单段槽位行为不变。前端若按单条槽位渲染需适配多段展示。"
updated_at: "2026-08-04"
base: "dev-v3"
---
# 【修改接口·管理后台】看板列表同槽位跨段换车 assignmentSlots 按派车组拆分 (#5479)
> **PR**: #5484 | **服务**: fleet | **更新时间**: 2026-08-04
## 1. 接口背景
车务看板列表(`GET /admin/fleet/board/orders`)的 `assignmentSlots[]` 原实现按稳定槽位(`assignment_slot_id`)聚合,同槽位跨段换车(同一槽位内前后两段使用不同车辆/司机,如 7 天行程前 3 天蒙A-H7777/阿拉坦 + 后 4 天蒙A-T1557/朝鲁门)时后段被折叠,列表只显示首段车辆/司机,与 matrix/grid 分段结果不一致。本次修复为按派车组(`assignment_group_id`)拆分,每段独立返回。
## 变更接口清单
| # | 接口名 | 方法 | 路径 | 变更类型 | 说明 |
|---|--------|------|------|----------|------|
| 1 | 车务看板列表 | GET | `/admin/fleet/board/orders` | 修改 | `assignmentSlots[]` 同槽跨段换车时由 1 条变为多段(每段独立 assignmentId/assignmentGroupId/区间/车辆/司机) |
## 2. 行为变化
| 场景 | 原来 | 现在 |
|------|------|------|
| 同槽位跨段换车(同 slot 多 group,如 08-10~12 H7777/阿拉坦 + 08-13~16 T1557/朝鲁门) | `assignmentSlots` 仅 1 条(首段车辆/司机,区间覆盖全槽 7 天) | 按派车组返回 2 段段1 slotSummary 08-10~08-12/3天/H7777/阿拉坦;段2 slotSummary 08-13~08-16/4天/T1557/朝鲁门(各自 `assignmentGroupId`/`assignmentId` |
| 单段槽位(同一槽位单派车组,绝大多数) | 1 条 | 1 条(不变) |
| canceled 历史段 | 不展示(整槽全 canceled 时展示 canceled 视图) | 不独立成段(整槽全 canceled 时行为不变) |
| 槽位区间覆盖 | 单条区间=全槽 | 各段区间合计覆盖全槽(不因拆分缩短) |
## 3. 接口详情
- **方法/路径**`GET /admin/fleet/board/orders?teamNo=&page=&pageSize=`
- **响应**`records[].assignmentSlots[]` 现可为多条(同槽跨段);每条结构不变(`assignmentId`/`assignmentGroupId`/`assignmentSlotId`/`slotSummary{assignmentSlotId, slotIndex, totalSlots, serviceStartDate, serviceEndDate, serviceDays, requiredVehicleType, ...}`/`vehiclePlate`/`vehicleModel`/`driverName`/`driverPhone`(掩码)/`assignmentStatus` 等),其中 `slotSummary.serviceStartDate/serviceEndDate/serviceDays` 为该段自身区间;`slotIndex/totalSlots` 为槽位维度(跨段时同一槽位多条共享相同 slotIndex/totalSlots
- **不变**:顶层 record 仍按 requirementId 聚合一条,代表槽位取排序首条;分页/筛选/排序不变
## 4. 前端需要做什么
看板列表若按 `assignmentSlots` 渲染车辆/司机卡片:**需支持同一槽位(相同 `assignmentSlotId`/`slotIndex`)多条段卡片**(展示各自区间、车牌、司机);跨段换车场景现可正确展示后段,勿再按首条截断。单段槽位展示无变化。`slotSummary.serviceStartDate/serviceEndDate/serviceDays` 为段区间(多段合计为全槽)。
## 5. 后端测试、部署与验证
- 单元测试新增同槽跨段换车拆分用例H7777/阿拉坦 3 天 + T1557/朝鲁门 4 天 → 2 段各自区间/车辆/司机正确);更新同槽多组状态冲突、最终不用车混合、全最终不用车 3 个既有用例为按段拆分语义;AssignmentServiceTest 360 + Board* 107 用例全通过。
- 模块验证:`mvn -pl hl-fleet-service -am verify` 3078 用例 0 失败Testcontainers 集成测试本机无 Docker 环境失败,基线同失败非本次引入)。
- 部署TEST hl-fleet-service rolling 完成task_id=1226b3fd,双实例 UP
- 验证TEST 2026-08-04订单 2081633366993494017teamNo=26-2830`assignmentSlots` 由修复前 1 条(仅 H7777/阿拉坦)变为 2 段08-10~12 蒙A-H7777/丰田汉兰达/阿拉坦/135****5019 + 08-13~16 蒙A-T1557/丰田普拉多/朝鲁门/199****1557均 assigned;DB fleet_assignment 7 行 2 组340035264187600896/340023199221813248与两段一一对应;单段槽位回归26-1427 订单 3 槽位各 1 条)正常。
## 关联 / 联系人
### 联系人
- **后端负责人**: @wx