后端数据一致性修复:个人车绑/解/换常驻→司机侧 primary_vehicle_plate 双向同步 (公司车豁免)。无接口契约变更,前端无需改动;周知点=司机列表「按常驻车牌筛选」 对个人车现在准确。已部署测试服双实例 + API 实测通过。
2.4 KiB
2.4 KiB
【行为变更·管理后台】个人车常驻司机绑定 → 司机侧车牌双向同步(仅自有车,公司车豁免)
服务:hl-fleet-service(车务) PR:#3929(合并 dev-v3) 类型:后端数据一致性修复,无接口契约变更(无新端点 / 无入参出参结构变化) 前端:无需改动,仅行为更准;本条为周知
⚠️ 关键说明
- 车辆侧权威 1:1 =
fleet_vehicle.primary_driver_id;司机侧fleet_driver.primary_vehicle_plate是去规范化展示列,用于司机列表「常驻车牌」筛选(GET /admin/fleet/drivers/page?primaryVehiclePlate=)。 - 此前个人车绑/解/换常驻时,司机侧这一列不会跟着更新,导致「按常驻车牌筛选司机」对个人车可能筛不到 / 筛错。本次补齐双向同步。
- 仅自有车(ownerType=personal)同步;公司车(调配车,非司机自有)一律不同步,司机侧车牌保持其自有车牌不被公司调配车覆盖。
1. 变更内容
| 场景 | 此前 | 现在 |
|---|---|---|
| 个人车绑定/改绑常驻司机 | 司机侧 primary_vehicle_plate 不更新 |
同步为该车车牌 |
| 个人车解绑常驻 / 司机被换到别的车 | 司机侧车牌残留旧值 | 清空(仅当其当前车牌仍等于这台车,避免误清已改指向别处的司机) |
| 同一次编辑同时改车牌 + 换常驻 | —(功能此前不存在) | 老司机按旧车牌清、新司机按新车牌设 |
| 个人车 → 公司车切换 | — | 清掉原个人车常驻司机的展示车牌 |
| 公司车绑定常驻 | — | 不同步(豁免) |
| 车辆批量导入 update 重绑个人车常驻 | 不同步 | 同步(与表单编辑同口径) |
覆盖 6 个绑定触点:新增车辆、车辆编辑、车辆导入 update、删司机解绑、司机侧改绑常驻车(PUT /admin/fleet/drivers/{driverId}/resident-vehicle)。
2. 测试服实测(api.test.1814.love:9443,真 admin token)
- 绑定个人车 蒙C03E03 → 司机朝克图:
fleet_driver.primary_vehicle_plate = 蒙C03E03✓ - 解绑:司机侧车牌清空 ✓
- 绑定公司车 蒙C02E02 → 司机:司机侧车牌保持空(豁免)✓
- 单元 + H2 集成测试:875 passed / 0 failed(含 7 个新增场景用例)
3. 前端动作
无。司机列表「按常驻车牌筛选」对个人车现在准确,前端无需改造。