Files
tms-erp-api/blade-service
weicw-dshsa 4de1ea5209 🐛 修 code-review 指出的三处问题:车牌匹配、提交人姓名为空、分页写法
1) **车牌匹配漏了规范化兜底(最严重)**
   DriverWaybillServiceImpl.assertCertified 把 splitPlates 返回的**规范化**车牌
   直接与 plate_no 原始列做精确 IN。库中存在带间隔符/横线/大小写差异的车牌时
   会命中 0 行,导致「名下无可用车辆」→ **已认证的司机被误判为未认证而拒绝接单**,
   与本次改造的核心验收「已认证的车重新提交后仍可正常接单」相悖。
   DriverCertServiceImpl.findByPlateWithinBound 同样问题:先精确 IN 取候选再规范化
   filter,而 filter 只能收窄不能放宽,漏掉的候选永远找不回来(等于没做规范化匹配)。

   改法:把「精确 IN 或 规范化后相等」抽成 VehiclePlateSupport.applyPlateMatch,
   三处调用点(含原先自己实现的 DriverAppServiceImpl.myVehicles)统一使用。
   并加测试断言 SQL 表达式覆盖 Java 侧剔除的全部字符、且必须带 OR 兜底,
   防止两边日后悄悄分叉。

2) **审核详情的提交人姓名恒为空**:CertAuditDetailVO.submitUserName 声明了却从未赋值,
   违反「VO 展示字段须由服务端用 UserCache 填好」的规范。已补。

3) **分页未走项目统一写法**:原用 Page.of 手搓,全模块无先例。改为
   Controller 收 Query + Condition.getPage(query),与 AccidentRecordController 等一致。
   Query 绑定的正是 current/size,故三端契约不受影响。

顺带删除无任何调用者的 ICertAuditService.getRecordOrNull(推测性抽象 + 纯转发)。

82 个测试通过。
2026-10-02 17:30:48 +08:00
..
2026-07-10 22:08:46 +08:00
2026-08-18 15:18:15 +08:00
2026-09-20 16:36:31 +08:00
2026-08-04 02:49:59 +08:00