---
schema: "hl-changelog/v2"
ticket: "5550"
title: "派单车辆槽位可删除（车务可删任意未派单槽位含定制师傅建议的）"
consumer: "admin"
change_type: "新增接口"
author: "wx(GIT)"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "implemented"
frontend_owner: "pi-main-session"
frontend_ref: "hl-admin@99fc5bfcc0d52aed3d3e663ca2df247583a53409"
target_release: ""
verified_at: ""
status_note: "后端完成：PR #5551 已合并 dev-v3 并部署 TEST；网关验证通过（未派单槽位删除成功+关联一致、已派槽位拒绝、不存在 605012）。前端在派单页槽位操作区增加删除入口即可。"
updated_at: "2026-08-05"
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
