文件
hl-api-changelog/changelogs-v2/2026-08/07_5665_改派时支持增加删除槽位(调整车辆数量)-新增接口-管理后台.md
Mimingguang 506f9dd715
changelog-filename-gate / validate (push) Failing after 2s
chore(v2): 标记 #5665 admin 前端已实现 (hl-admin@f1c00ba8)
改派页增加/删除槽位:addAssignmentSlot 封装 + AssignmentSlotAddModal 弹窗
+ 删除走既有 deleteAssignmentSlot 跟随后端 canDelete;改派槽位表切到
resolveBoardAssignmentSlots 覆盖未派占位行;增删后刷新提示需重新确认。
2026-08-08 10:32:28 +08:00

5.4 KiB

schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
schema ticket title consumer author change_type backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base generated
hl-changelog/v2 5665 改派时支持增加/删除槽位(调整车辆数量) admin wx(GIT) 新增接口 deployed verified implemented mmg f1c00ba8 后端完成:PR #5669 已合并 dev-v3 并部署 TEST(hl-fleet-service 双实例)。新增 POST /admin/fleet/assignments/slots 增槽位;删除槽位复用既有 DELETE /slots/{slotId}。前端需在改派页加【增加槽位】【删除槽位】操作并编排现有接口(见前端交接)。 2026-08-08 dev-v3 2026-08-07T20:26:00+08:00

改派时支持增加/删除槽位(调整车辆数量)

后端完成:PR #5669 已合并 dev-v3 并部署 TEST,网关验证通过。前端需在改派页增加【增加槽位】【删除槽位】操作。

关联 / 联系人

链接

联系人

  • 后端负责人: @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(业务校验生效);端点部署成功