# 【优化·管理后台 + 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 不会有值、车型库下拉仍需车管手选——请前端配合本期接上。
