文件
hl-api-changelog/changelogs-v2/2026-08/07_5550_派单车辆槽位可删除-新增接口-管理后台.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

87 行
3.8 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
---
schema: "hl-changelog/v2"
ticket: "5550"
title: "派单车辆槽位可删除(车务可删任意未派单槽位含定制师傅建议的)"
consumer: "admin"
change_type: "新增接口"
author: "wx(GIT)"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "verified"
frontend_owner: "pi-main-session"
frontend_ref: "hl-admin@99fc5bfcc0d52aed3d3e663ca2df247583a53409"
target_release: ""
verified_at: "2026-09-18"
status_note: "后端完成:PR #5551 已合并 dev-v3 并部署 TEST;网关验证通过(未派单槽位删除成功+关联一致、已派槽位拒绝、不存在 605012)。前端在派单页槽位操作区增加删除入口即可。[mmg 2026-09-18 批量复核翻 verified] ref 99fc5bfc 可达且为 v2.1 祖先;交付文件 HEAD 均在;关联 spec 批量 891 例全绿。"
updated_at: "2026-09-18"
base: "dev-v3"
---
# 车务: 派单车辆槽位可删除
> **服务**: hl-fleet-service
> **PR**: #5551
> **Issue**: [#5550](https://git.1814.love:8443/wx/HL/issues/5550)
> **日期**: 2026-08-05
## 背景
派单页面车辆槽位(槽位 1/2)此前无删除入口。本次新增槽位删除能力:**车务可删除任意未派单槽位**(含定制师傅建议的),删除后日切片/Step2 canonical 快照/看板自动一致。
## 变更接口
| 方法 | 路径 | 来源 |
|---|---|---|
| `DELETE` | `/admin/fleet/assignments/slots/{slotId}` | `AssignmentController`(fleet) |
路径前缀 `/admin/fleet/**` 已由网关登录/角色校验与 `FleetAdminRoleGuardInterceptor`(VEHICLE_MANAGER / SUPER_ADMIN)收口,无需新增网关规则。
## 1. 删除车辆槽位 `DELETE /admin/fleet/assignments/slots/{slotId}`
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| `slotId` | string(Long) | 是 | PathVar,稳定槽位 ID(Step2 快照 retainedSlotIds 中的值) |
| `reason` | string | 否 | Body,删除原因(≤200 字,操作日志留痕) |
**删除规则(业务口径)**:
- **可删**:槽位全部行均为 `unassigned`(未派单),或仅含普通 `canceled` 历史行(取消流水保留不删)
- **拒绝(605007)**:槽位存在 `holding`/`assigned`/`completed` 行,或**已最终确认方案(dispatchPlanFinalized=1)的取消行**——finalized 取消行会使槽位在 Step2 reconcile 中复活且关联对账,禁止删除
- **605012**:槽位不存在
**删除动作(事务内)**:
1. 软删该槽位全部 `unassigned` 每日切片(canceled 历史行保留——对账/保险 REFUND 关联不丢失)
2. Step2 canonical 快照:`retainedSlotIds` 移除该槽位 + `snapshotVersion` 递增 + `contentDigest` 重算(与 Board 口径一致)
3. 派单操作日志追加 `slot_removed`(幂等键 `slot-remove:{slotId}`,按槽位幂等)
响应 `data`:
| 字段 | JSON 类型 | 说明 |
|---|---|---|
| `slotId` | string(Long) | 被删除槽位 ID |
| `requirementId` / `orderId` | string(Long) | 归属需求/订单 |
| `removedRowCount` | int | 软删除的未派单切片行数 |
| `retainedSlotIds` | array(string) | 删除后快照保留槽位集合 |
| `snapshotVersion` | string(Long) | 删除后快照版本(无快照为 null) |
**错误码**:**605012** 槽位不存在 / **605007** 槽位已派车或已确认,请先取消派车后再删除 / **605008** 抢锁超时 / 401 未登录。
## 前端配合
派单页面槽位操作区增加「删除槽位」入口:
- 槽位存在已派车/已确认时后端返回 605007,前端展示错误提示并引导先取消派车;
- 删除成功后可刷新候选(canonicalSnapshot.retainedSlotIds 已收敛),无需其他联动。
## 关联/联系人
### 链接
- [后端工单 #5550](https://git.1814.love:8443/wx/HL/issues/5550)
- [后端 PR #5551](https://git.1814.love:8443/wx/HL/pulls/5551)
- Merge commit: `a422c58f91`
### 联系人
- **后端负责人**: @wx