docs(changelog): 自带车审核抽屉全回显-VIN采集与车型库车型建议 (PR #3907)

这个提交包含在:
API Changelog Bot 2026-06-17 11:17:30 +08:00
父节点 d7992de4c1
当前提交 987ae18e2f

查看文件

@ -0,0 +1,84 @@
# 【优化·管理后台 + H5】自带车审核抽屉信息全回显新增 VIN 采集、车型库车型建议、车牌/车队预填(前端待接)
> 端hl-ui 管理后台(车务·待审核·审核抽屉)+ H5 司机入职登记 | 服务hl-fleet-service | PR #3907 / 工单 #3906 | 已合并 dev-v3 + 部署测试服双实例 | 2026-06-17
## ⚠️ 关键说明
#3866(自带车审核通过自动建车)。实测发现审核抽屉多项司机自报信息**没回显**、车管要重敲:
1. **车型库车型**留空报「请选择」——司机自报的「车辆品牌型号」是行驶证 OCR 厂牌原文(如 `大众汽车牌SVW6474DFD`),**映射不到车型库**,前端无从预选。
2. **车架号 VIN** 压根没采集——H5 第 4 步行驶证 OCR 能识别「车辆识别代号」,但没有 VIN 输入框、没落库,审核抽屉自然无值。
3. **确认车牌**只有 placeholder,没作为预填值。
后端已补齐数据,前端需在两处接上H5 加 VIN 输入、审核抽屉做预填。
## 1. H5 第 4 步「行驶证」需新增 VIN 输入(前端要加)
- 行驶证 OCR 接口现**多返回一个字段 `vin`**车辆识别代号,17 位)。
- 请前端:行驶证正页 OCR 后,把 `vin` 自动填进新增的「车架号 VIN」输入框可编辑、可空
- 提交接口 `POST /mp/fleet/onboard/submit/new``vehicle` 块**新增 `vin` 字段**一并提交:
```json
{
"hasOwnVehicle": true,
"vehicle": {
"plate": "豫A99RR9",
"model": "大众汽车牌SVW6474DFD",
"vin": "SSVUDDTT2J2022558",
"seats": 5,
"fleet": "coopA",
"regFrontUrl": "...", "regBackUrl": "...",
"exteriorUrls": [], "interiorUrls": []
}
}
```
> `vin` 可空OCR 没识别出/司机跳过时不传);不影响其它字段。
## 2. 审核详情接口新增回显字段(前端用来预填抽屉)
`GET /admin/fleet/drivers/pending/{pendingId}``vehicle` 块**新增 4 个字段**
| 字段 | 含义 | 前端用法 |
|------|------|---------|
| `vin` | 司机自报车架号H5 OCR 带出) | 预填「车架号 VIN」输入框 |
| `suggestedModelId` | **建议车型库车型 ID**(按司机所选「常开车型」反查车型库唯一命中) | **预选「车型库车型」下拉**;为 null 时不预选、车管手选 |
| `suggestedModelName` | 建议车型名(如「大众帕萨特」) | 下拉回显文案 |
| `suggestedSeats` | 建议车型座位数 | 预选后带出座位 |
配合已有字段做全量预填:
| 抽屉控件 | 取值字段 |
|---------|---------|
| 车型库车型(下拉) | `vehicle.suggestedModelId`+ name/seats |
| 确认车牌 | `vehicle.plate` |
| 车架号 VIN | `vehicle.vin` |
| 车队归属 | `vehicle.fleet` |
实测返回(王信单,旧数据无 VIN
```json
"vehicle": {
"plate": "豫A99RR9",
"model": "大众汽车牌SVW6474DFD",
"vin": "",
"fleet": "coopA",
"suggestedModelId": "2064992806690041857",
"suggestedModelName": "大众帕萨特",
"suggestedSeats": 5
}
```
> `suggestedModelId` 为空的两种情况:司机没选常开车型、或常开车型名在车型库同名多条(歧义)——这时让车管手选下拉即可。
## 3. 审核通过建车口径同步(无需前端改)
- 审核通过自动建车的车型,**改为按「常开车型」反查**(与 `suggestedModelId` 同口径),修正了之前误用 OCR 厂牌字段导致反查不到的问题。车管在抽屉显式选了车型仍以其为准(优先级最高)。
- VIN 写入车辆档案:车管在抽屉填的 司机自报。
## 验证
- 后端单测 33 全绿(建议车型/VIN 回显 + 歧义留空 + 建车 VIN 落档,H5Onboard/OCR/Converter 共 75 绿。
- 部署测试服双实例11:15 新 jar,含 Flyway `vehicle_vin` 列迁移,双实例 health UP
- 审核详情接口过网关 + 真 admin token 实测:`suggestedModelId/Name/Seats` 正确返回王信单命中「大众帕萨特」5 座),`plate/fleet` 回显正常;`vin` 旧数据为空、新提交链路已通。
- 注:**前端 H5 VIN 输入 + 审核抽屉预填接好前**,VIN 不会有值、车型库下拉仍需车管手选——请前端配合本期接上。