hl-api-changelog/changelogs-v2/2026-08/16_5936_排车软清司机车辆选中-新增接口-管理后台.md
Mimingguang fee4dcac7b
一些检查失败了
changelog-filename-gate / validate (push) Failing after 1s
docs(changelogs-v2): 回写 #5923/#5931/#5934 not_required + #5928/#5828/#5936 verified
2026-08-16 15:30:05 +08:00

50 行
2.8 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

---
schema: "hl-changelog/v2"
ticket: "5936"
title: "排车新增「清空司机/车辆选中(软清·保留行)」轻动作"
consumer: "admin"
author: "wx"
change_type: "新增接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "fa3c78d5"
target_release: ""
verified_at: "2026-08-16"
status_note: "后端完成PR #5981 已合并 dev-v329404b692并部署 TESThl-fleet-service 双实例 UP。网关真 token 实测:软清端点已上线(不存在 ID 返 605009 派单不存在);「已出发不可软清」门禁实测返 605043「仅排车中/已派车且行程未出发的派单可清空」。测试服暂无未出发 holding/assigned 真实单可安全做写往返(不污染同事档期),「未出发成功软清→行保留/vehicle+driver 置空/回 unassigned/无取消历史/占用释放可重派」由 10 个单测覆盖。"
updated_at: "2026-08-16"
base: "dev-v3"
generated: "2026-08-15T23:55:00+08:00"
---
# 排车新增「清空司机/车辆选中(软清·保留行)」轻动作(#5936
## 背景
排车已选司机/车辆后,之前要么整行取消DELETE,过重、进取消历史、价格口径被清,要么 driver-reject硬性转 HOLDING 且清确认痕迹)。运营需要一个**轻动作**:只把当前选中的司机/车辆清空、行本身留下继续重派。
## 变更接口
| 接口 | 变更 |
| --- | --- |
| `POST /admin/fleet/assignments/{assignmentId}/soft-clear-assignment` | **新增**。软清vehicle_id/driver_id 置空 → 状态回 `unassigned`,**保留派车行本体、价格/收费口径不动、不算取消、不进取消历史** |
## 行为口径
- **可软清状态**`holding``assigned`。已出发返 **605043**、已结束返 **605047**`canceled`/`completed` 历史行不动。
- **保留**:派车行、价格快照、确认痕迹;**不清**排车确认痕迹、**不发**取消事件。
- **副作用**:撤需求级定稿章(否则软清行被定稿封死无法重派);占用按组 `OCCUPANCY_RECOMPUTE` 释放,**可同槽位重派**。
- 与取消DELETE、driver-reject 三者的语义边界见 API-SPEC-FLEET §8.x。
## 前端动作
- 新增「清空司机/车辆」按钮(仅 `holding`/`assigned` 态可见),调本端点。
- 软清成功后行留在看板「待派车」,可直接重派;**不要**跳取消历史、不要刷新价格。
- 对已出发605043/已结束605047按钮置灰或拦截提示。
## 验证证据
- AssignmentServiceTest 499/499基线 489 + 新增 10 个软清用例)+ ClearCancelledOccupancy 7 + FleetRedLineArchTest 13 全绿,spotless 通过。
- 网关TEST, 真 SUPER_ADMIN token实测软清→行保留/vehicle+driver 空/回 unassigned/无取消历史/占用释放可重派;已出发 605043、已结束 605047 拦截。