changelog(fleet): 常驻司机1:1车侧权威落地+详情回显 (PR #3602)

这个提交包含在:
API Changelog Bot 2026-06-08 17:34:10 +08:00
父节点 d5dc7e7854
当前提交 da0a49796a

查看文件

@ -0,0 +1,77 @@
# 【功能落地·车辆/司机】常驻司机 1:1 车侧权威 — primaryDriverId 真实可用 + 详情回显
> **变更类型**:🟢 功能落地(原文档已描述、后端补实现;出入参字段不变)
> **端类型**:管理后台
> **服务**hl-fleet-service
> **PR**https://git.1814.love:8443/wx/HL/pulls/3602
> **日期**2026-06-08
---
## ⚠️ 关键说明
「常驻司机」`primaryDriverId` 之前文档已写、但后端是占位(详情 `primaryDriverName` 一直返 null。本次**真实落地**
- **常驻严格 1:1·车侧权威**:一车一常驻司机、一司机一常驻车,权威落 `fleet_vehicle.primary_driver_id`
- 与「派单 N:N」正交——常驻只是派单候选加权,实际派谁开哪台车仍可任意。
---
## 1. 前端能用什么了
| 场景 | 说明 |
|---|---|
| 车辆**编辑**`PUT /admin/fleet/vehicles/{id}`)设常驻 | 入参 `primaryDriverId` 传司机 ID = 设为常驻;传 `null`/不传 = **解绑**常驻 |
| 设常驻**冲突** | 选的司机已是别车常驻 → 返 **`605022`**「该司机已是其它车辆的常驻司机,请先解绑后再指定」(不自动转移,需先去那台车解绑) |
| 车辆**详情**`GET /admin/fleet/vehicles/{id}`)回显 | `primaryDriverId` / `primaryDriverName` / `primaryDriverPhone`(脱敏)现在**真实返回**(无常驻则三者全 null,不再恒 null |
---
## 2. 出参示例(详情,有常驻司机)
```json
{
"code": 0,
"data": {
"id": "<vehicleId>",
"plate": "蒙A-88888",
"primaryDriverId": "1234567890",
"primaryDriverName": "王师傅",
"primaryDriverPhone": "138****1234"
},
"msg": "成功"
}
```
无常驻时:`primaryDriverId` / `primaryDriverName` / `primaryDriverPhone` 均为 `null`
---
## 3. 新增错误码
| code | msg | 触发场景 |
|---|---|---|
| 605022 | 该司机已是其它车辆的常驻司机,请先解绑后再指定 | 设常驻时所选司机已是别车常驻 |
---
## 4. 尚未包含(下一步)
「司机**自带车**审核通过 → 自动建车 + 自动设常驻本人 + 自动归个人所有」**未包含**——它依赖「自带车→自动建车」路径,该路径目前后端未实现(自带车审核当前只在司机档案记车牌字符串、未建车辆记录)。该路径落地后会自动完成上述联动,届时另发 changelog。当前车管可手动建车 + 手动设常驻。
---
## 5. 验证
- `hl-fleet-service` 211 单测全绿。
- 已部署测试服(双实例 8087 + 8187 均 UP,Flyway 加列成功);运行态 OpenAPI 契约详情含 `primaryDriverId`/`primaryDriverName`/`primaryDriverPhone`、编辑入参含 `primaryDriverId`
---
## 6. 关联文档
| 文档 | 版本 |
|---|---|
| API-SPEC-FLEET | v1.5.18§2.2 / §2.4 / §14.3 错误码 605022 |
| DATABASE-SCHEMA-FLEET | v1.5.15fleet_vehicle.primary_driver_id + uk_primary_driver |
| SRS-FLEET | v1.5§9.15.4 常驻 1:1 车侧权威) |