✨ 车辆认证扩到6张证件图,字段与车辆档案对齐;补齐建车必填列

司机端车辆认证此前只有 3 张图、5 个字段,且语义与车辆管理不一致
(「副页」字段里装的其实是主页反面)。本次把证件内容整体对齐车辆表列:

- 车辆表新增 owner_name(所有人:行驶证登记的单位名称,不是司机)与 vin;
- 提交请求与司机端车辆卡片全量对齐表列,行驶证四张图各自独立、
  不再把「主页反面」与「副页正面」挤在同一个字段;
- 业务关系新增为司机自选(自有/管理挂靠/业务合作),不再由后端替用户猜。

顺带修掉三处会直接让功能不可用的缺陷:

1. 司机建车必失败:organization_name、approved_load_kg、business_relation、
   energy_type、registration_no 五列 NOT NULL 且无默认值,而建车链路一个都不设置,
   严格模式下 INSERT 直接报「doesn't have a default value」。已补齐并加服务端校验
   (司机提交链路此前一句都不查,全靠前端)。
2. OCR 自动填充从未生效:后端按契约透传百度原始结果(中文键),
   前端读的却是扁平字段名,永远 undefined 且不报错。新增 OcrFieldSupport
   做归一化(键名别名容错、数值/日期/「长期」归一化、外廓尺寸拆三段、
   有效期区间拆起止),响应的 fields 即前端直接回填的字段。
3. 审核通过不写回车辆档案:状态已通过、内容却还是旧的,自相矛盾。
   现把生效快照的证件内容与指针合并成同一次 UPDATE 写回;快照是改造前
   旧格式时明确报错,而不是静默写一堆空值。
This commit is contained in:
2026-10-03 16:34:47 +08:00
parent 214ff38ef8
commit 04a7846328
14 changed files with 1172 additions and 69 deletions
@@ -8,8 +8,10 @@ CREATE TABLE `blade_transport_vehicle` (
`organization_name` varchar(50) NOT NULL COMMENT '所属组织',
`use_department` varchar(50) DEFAULT NULL COMMENT '使用部门',
`plate_no` varchar(16) NOT NULL COMMENT '车牌号',
`owner_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所有人(行驶证登记的单位名称,不是司机)',
`plate_color` varchar(20) DEFAULT NULL COMMENT '车牌颜色',
`vehicle_type` varchar(50) NOT NULL COMMENT '车辆类型',
`vin` varchar(17) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '车辆识别代号(车架号)',
`outer_length` int(11) DEFAULT NULL COMMENT '外廓长度,毫米',
`outer_width` int(11) DEFAULT NULL COMMENT '外廓宽度,毫米',
`outer_height` int(11) DEFAULT NULL COMMENT '外廓高度,毫米',
@@ -0,0 +1,14 @@
-- ----------------------------
-- 车辆档案补两列:所有人、车辆识别代号(车架号)
-- ----------------------------
-- 所有人:行驶证上登记的单位名称(如「桂物物流集团」),**不是司机**,
-- 与「所属组织」也是两个字段——组织是内部管理归属,所有人是证件上的登记主体,
-- 两者可能不同(挂靠车的所有人不是本组织)。
-- VIN:司机端车辆认证一直在收这个值并写进认证快照,但车辆表此前没有对应列,
-- 于是它只存在于快照里、车辆档案上查不到。补列后档案与快照才一致。
--
-- 两列都允许为空:存量车辆(含订正补的那些)没有这两个值,
-- 且 VIN 在原型里是**选填**项,不设默认值也不设 NOT NULL。
ALTER TABLE `blade_transport_vehicle`
ADD COLUMN `owner_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '所有人(行驶证登记的单位名称,不是司机)' AFTER `plate_no`,
ADD COLUMN `vin` varchar(17) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '车辆识别代号(车架号)' AFTER `vehicle_type`;