docs(changelog): 改派时支持增加/删除槽位(#5665)
一些检查失败了
changelog-filename-gate / validate (push) Failing after 2s
一些检查失败了
changelog-filename-gate / validate (push) Failing after 2s
这个提交包含在:
父节点
bbd6d7b864
当前提交
81e6d3aa44
@ -0,0 +1,100 @@
|
|||||||
|
---
|
||||||
|
schema: "hl-changelog/v2"
|
||||||
|
ticket: "5665"
|
||||||
|
title: "改派时支持增加/删除槽位(调整车辆数量)"
|
||||||
|
consumer: "admin"
|
||||||
|
author: "wx(GIT)"
|
||||||
|
change_type: "新增接口"
|
||||||
|
backend_status: "deployed"
|
||||||
|
gateway_status: "verified"
|
||||||
|
frontend_status: "pending"
|
||||||
|
frontend_owner: ""
|
||||||
|
frontend_ref: ""
|
||||||
|
target_release: ""
|
||||||
|
verified_at: ""
|
||||||
|
status_note: "后端完成:PR #5669 已合并 dev-v3 并部署 TEST(hl-fleet-service 双实例)。新增 POST /admin/fleet/assignments/slots 增槽位;删除槽位复用既有 DELETE /slots/{slotId}。前端需在改派页加【增加槽位】【删除槽位】操作并编排现有接口(见前端交接)。"
|
||||||
|
updated_at: "2026-08-07"
|
||||||
|
base: "dev-v3"
|
||||||
|
generated: "2026-08-07T20:26:00+08:00"
|
||||||
|
---
|
||||||
|
|
||||||
|
# 改派时支持增加/删除槽位(调整车辆数量)
|
||||||
|
|
||||||
|
> 后端完成:PR #5669 已合并 dev-v3 并部署 TEST,网关验证通过。**前端需在改派页增加【增加槽位】【删除槽位】操作**。
|
||||||
|
|
||||||
|
## 关联 / 联系人
|
||||||
|
|
||||||
|
### 链接
|
||||||
|
|
||||||
|
- **Issue**: [#5665](https://git.1814.love:8443/wx/HL/issues/5665)
|
||||||
|
- **PR**: [#5669](https://git.1814.love:8443/wx/HL/pulls/5669)
|
||||||
|
- **Merge commit**: [c3f0f8fac](https://git.1814.love:8443/wx/HL/commit/c3f0f8fac)
|
||||||
|
|
||||||
|
### 联系人
|
||||||
|
|
||||||
|
- **后端负责人**: @wx
|
||||||
|
|
||||||
|
## 背景
|
||||||
|
|
||||||
|
改派(change)原本只能换车/换司机(同槽位内换),不能增加/删除槽位(调整车辆数量)。wx 要改派时可增删槽位。对齐 #5562 槽位模型(派车时可增删)。按协调台口径走 A 方案:复用 expand/slots 机制,**只增删差异、保留已派**,不新建独立重派流程、不侵入 change 主流程。
|
||||||
|
|
||||||
|
## 变更接口
|
||||||
|
|
||||||
|
### 新增:`POST /admin/fleet/assignments/slots`(增加槽位)
|
||||||
|
|
||||||
|
在 active 用车需求上新增 1 个全程槽位(unassigned 全程占位行覆盖整个服务期),新槽位待确认按初次派车。**保留已有槽位(含已派)完全不动**。
|
||||||
|
|
||||||
|
**请求**(`SlotAddReqVO`):
|
||||||
|
|
||||||
|
| 字段 | 类型 | 必填 | 说明 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| requirementId | Long | 是 | 归属需求 ID(active 用车需求) |
|
||||||
|
| vehicleType | String | 是 | 新槽位车型(如 suv/mpv) |
|
||||||
|
| seats | Integer | 是 | 新槽位座位需求(1-60) |
|
||||||
|
| reason | String | 否 | 新增原因(≤200 字,操作日志留痕) |
|
||||||
|
|
||||||
|
**响应**(`SlotAddRespVO`):
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| slotId | Long(字符串) | 新槽位 ID(assignmentSlotId) |
|
||||||
|
| assignmentId | Long(字符串) | 新槽位全程占位行派单 ID |
|
||||||
|
| requirementId | Long(字符串) | 归属需求 ID |
|
||||||
|
| orderId | Long(字符串) | 归属订单 ID |
|
||||||
|
| fleetItemIndex | Integer | 新槽位需求内项次序 |
|
||||||
|
| retainedSlotIds | Long[](字符串) | 新增后 Step2 快照保留槽位集合 |
|
||||||
|
| snapshotVersion | Long(字符串) | 新增后快照版本(无快照时 null) |
|
||||||
|
|
||||||
|
**错误码**:400 参数校验失败(需求 ID/车型/座位数缺失)/ **605012** 需求无派单行 / **605007** 需求不可派(非 active/已取消/不可派)/ 605008 抢锁超时 / 401 未登录 / 403 非车务角色。
|
||||||
|
|
||||||
|
**行为**:
|
||||||
|
- 新槽位生成 1 条 unassigned 全程占位行(`service_date`/`assignment_group_id` 为 NULL,`start_date~end_date` 覆盖整个服务期),车务在该槽派 1 辆管全程的车(候选/价格日历/校验同初次派车 create)
|
||||||
|
- 保留已有槽位(含 holding/assigned 已派)完全不动——只增差异槽位,不重置/重派
|
||||||
|
- **确认状态**:清最终确认标记(改派需重新冻结方案);保留槽位确认状态不变
|
||||||
|
- Step2 快照 retained 追加 + 版本递增 + digest 重算;FleetBoardChangedEvent + 操作日志 SLOT_ADDED
|
||||||
|
|
||||||
|
### 复用:`DELETE /admin/fleet/assignments/slots/{slotId}`(删除槽位,零改动)
|
||||||
|
|
||||||
|
既有端点(#5550/#5572),删除已派(holding/assigned)槽位时联动取消派单(释放占用+退保意图+取消事件),行程已出发拒绝(605027)。
|
||||||
|
|
||||||
|
## 前端交接(改派页)
|
||||||
|
|
||||||
|
在改派页增加两个操作,**编排现有接口**(后端已就绪):
|
||||||
|
|
||||||
|
1. **【增加槽位】**(多派一辆):
|
||||||
|
- 调 `POST /admin/fleet/assignments/slots`(传 requirementId + vehicleType + seats + reason)
|
||||||
|
- 成功后新槽位出现在看板/改派页,车务对新槽位按初次派车(候选/价格/校验)派 1 辆车
|
||||||
|
2. **【删除槽位】**(少派一辆):
|
||||||
|
- 调既有 `DELETE /admin/fleet/assignments/slots/{slotId}`(有派单时后端联动取消)
|
||||||
|
- 行程已出发的槽位不可删(605027);已完成的槽位不可删(605007)
|
||||||
|
3. **换车/换司机**:仍调既有 `POST /{assignmentId}/change`(不变)
|
||||||
|
|
||||||
|
**展示/交互提示**:增删槽位后改派方案需重新冻结(后端已清最终确认标记);保留槽位的确认状态/车辆/司机不变。座位数校验在派车 create 时进行(座位不足进 warnings)。
|
||||||
|
|
||||||
|
## 验证证据
|
||||||
|
|
||||||
|
- 新增 3 用例:增槽位成功生成全程行+保留已派+Step2 追加 / 需求无派单行 605012 / 需求不可派抛错
|
||||||
|
- AssignmentServiceTest **394/394 全绿**;fleet spotless:check 通过
|
||||||
|
- fleet verify(mvn-throttle 错峰):3251 测试仅 `ReleaseEOccupancyMysql8033RecoveryTest`(需 MySQL 8.0.33 环境)基线失败,与本案无关
|
||||||
|
- **部署**:hl-fleet-service 双实例 UP(20:24)
|
||||||
|
- **网关验证**:VEHICLE_MANAGER 调 `POST /admin/fleet/assignments/slots`:缺 requirementId → 400(参数校验生效);不存在需求 → 605012(业务校验生效);端点部署成功
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户