文件
hl-api-changelog/changelogs-v2/2026-08/07_5665_改派时支持增加删除槽位(调整车辆数量)-新增接口-管理后台.md
T
Mimingguang 87ed9d0a3f
changelog-filename-gate / validate (push) Failing after 2s
chore(changelog): 全量清理 implemented 存量——81 条复核翻 verified + 1 条改判 not_required + #5827 补登 frontend_ref
处置明细(mmg 2026-09-18):
- 68 条机械核验通过批量翻 verified:frontend_ref 均可达且为 v2.1 祖先、
  交付文件 HEAD 均在、关联 spec 批量 58 文件 891 例全绿。
- 11 条带演进史的例外逐条核后翻 verified:3 条交付自删文件(06_5610/
  07_5655/11_5810,删除即交付内容且终态保持);8 条被后续 changelog 预期
  演进(10_5784→#5810、07_5664/08_5592→#5827、07_5665→去槽位化 U1、
  01_5380/05_5356/06_5567/06_5581→settlement 族A扁平化与 mock 清理),
  status_note 均如实记录演进链。
- 05_5552 改判 not_required:frontend_ref 自述前端无需改动,grep 实证
  vehicleFeeAmount.js 直接读后端 calendarPrice/calendarPriceMissing。
- 11_5827 frontend_ref 原空,经核交付即 753503c8(向导 4 步改 3 步提交
  即派定),补登全哈希 753503c87cc635e5646b4368a8ed506746c79cf1。
另:保险域 2 条相邻条目(05_5530/06_5593)同标准复核翻 verified。
2026-07 历史月 45 条按规则不回扫,保持原状。
2026-09-18 15:56:52 +08:00

5.6 KiB
原始文件 Blame 文件历史

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 verified mmg f1c00ba8 2026-09-18 后端完成:PR #5669 已合并 dev-v3 并部署 TEST(hl-fleet-service 双实例)。新增 POST /admin/fleet/assignments/slots 增槽位;删除槽位复用既有 DELETE /slots/{slotId}。前端需在改派页加【增加槽位】【删除槽位】操作并编排现有接口(见前端交接)。[mmg 2026-09-18 复核翻 verified] ref f1c00ba8 可达且为 v2.1 祖先;AssignmentSlotAddModal 后随派单去槽位化 U1(1343b86f)重构移除,增删槽位能力并入新范式;关联 spec 批量 891 例全绿。 2026-09-18 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(业务校验生效);端点部署成功