80 行
4.3 KiB
Markdown
80 行
4.3 KiB
Markdown
---
|
||
schema: "hl-changelog/v2"
|
||
ticket: "5592"
|
||
title: "需求变更后一键按新需求重派(删除旧派车后自动推荐车辆+司机)"
|
||
consumer: "admin"
|
||
author: "wx(GIT)"
|
||
change_type: "新增接口"
|
||
backend_status: "deployed"
|
||
gateway_status: "verified"
|
||
frontend_status: "verified"
|
||
frontend_owner: "mmg"
|
||
frontend_ref: "hl-admin@790e76ab1cadf44d81e610152432fb806144d898"
|
||
target_release: ""
|
||
verified_at: ""
|
||
status_note: "2026-08-07 协调台实测:26-6457 改需求(SUV→商务车)后从 assigned 回「待派车」(旧派单清空待重派),页面含「一键清空」入口,改需求→重派流程通,标 verified。"
|
||
updated_at: "2026-08-07"
|
||
base: "dev-v3"
|
||
generated: "2026-08-06T14:48:09+08:00"
|
||
---
|
||
|
||
# 需求变更后一键按新需求重派(删除旧派车后自动推荐车辆+司机)
|
||
|
||
> 后端完成:PR #5597 已合并 dev-v3 并部署 TEST,网关验证 3/3 通过。
|
||
|
||
## ⚠️ 口径最终确认(wx,2026-08-07):要的是【一键清空】
|
||
|
||
**不是"一键重派",是"一键清空"**——定制师改出发日期/人数/用车需求后,车务点【一键清空】把之前配置完的车辆清空。
|
||
|
||
**前端实现**:
|
||
- 【一键清空】按钮 = 调**既有接口** `DELETE /admin/fleet/assignments/slots/{slotId}`(Body: `{"reason":"需求变更,一键清空"}`),**不需要新接口**
|
||
- 删除联动取消已派车、日切片/快照/看板自动一致;返回 removedRowCount/cancelledAssignmentCount/retainedSlotIds
|
||
- 清空后:车务按新需求**手动**重新派(`auto-recommend` 仅推荐参考,**不自动配**)
|
||
- 错误码:605012 槽位不存在 / 605007 已最终确认不可删 / 605027 已出发不可删
|
||
|
||
下文的 auto-recommend 仅作推荐数据源(可选),清空动作走 DELETE /slots/{slotId}。
|
||
|
||
## 关联 / 联系人
|
||
|
||
### 链接
|
||
|
||
- **Issue**: [#5592](https://git.1814.love:8443/wx/HL/issues/5592)
|
||
- **PR**: [#5597](https://git.1814.love:8443/wx/HL/pulls/5597)
|
||
- **Merge commit**: [99baa37a8](https://git.1814.love:8443/wx/HL/commit/99baa37a8)
|
||
|
||
### 联系人
|
||
|
||
- **后端负责人**: @wx
|
||
|
||
## 背景与口径(wx 2026-08-06 工单评论明确)
|
||
|
||
定制师改需求后车务手动删旧配置太麻烦 → 要"一键按新需求重派"。**关键约束**:系统不得自动取消/改派/重派任何派车——所有写操作必须车务手动点击;系统只做推荐/填充。**不是**自动标记待调整方案。
|
||
|
||
## 变更接口
|
||
|
||
| 方法 | 路径 | 来源 |
|
||
|---|---|---|
|
||
| `POST` | `/admin/fleet/assignments/slots/{slotId}/auto-recommend` | `AssignmentController`(fleet) |
|
||
|
||
**只读接口,不产生任何写操作**:按槽位车型/座位/日期/人数复用既有候选查询,推荐可用·车型匹配·座位充足的车辆 + 可用司机(常驻匹配优先)。
|
||
|
||
**请求**:无 Body(仅 PathVar slotId,空缺待派槽位)。
|
||
**响应**(`SlotAutoRecommendRespVO`):
|
||
- `recommendedVehicle`:推荐车辆(vehicleId/plate/modelName/seats/passengerCapacity/vehicleTypeName/fleetTeamName/residentMatch)
|
||
- `recommendedDriver`:推荐司机(driverId/name/maskedPhone/years/rating/driverStatus/residentMatch)
|
||
- `vehicleAlternatives` / `driverAlternatives`:备选列表(各前 5)
|
||
- `recommendNote`:推荐说明;`noRecommendation`:无可用推荐时 true
|
||
- **错误码**:605012 槽位不存在
|
||
|
||
## 前端/调用方动作
|
||
|
||
1. 派车页(需求变更后):车务删除旧派车(既有 `DELETE /slots/{slotId}`)后,空缺槽位展示【一键重派】入口
|
||
2. 点击调用 `auto-recommend` → 展示推荐车辆+司机与备选(可切换)
|
||
3. 车务确认后走**既有派车接口**(candidates + create/assign 流程)提交——**系统绝不自动写**,确认必须车务手动点击
|
||
|
||
## 验证证据
|
||
|
||
- 定向测试:AssignmentServiceTest +3(推荐 top 匹配车/司机与备选;无可用候选返回 noRecommendation;槽位不存在 605012;**只读断言**:insert/update 均未调用);回归 421 用例全绿
|
||
- 网关验证(TEST):HL20260806115413191(mpv 7 座 6 人,unassigned 槽 343603476254822400)→ 推荐 蒙A-G8888 别克GL8 7 座 + 司机 巴雅尔(8 年)+ 备选 5+5 + note"车型匹配·座位充足·档期可用";**DB 复核槽位仍 unassigned(无写操作)**;不存在槽位 → 605012
|
||
- 兼容性结论:新增只读接口,无既有行为变更;verify 3170 用例全绿
|