⚡ 精简运单导入车牌号校验的失败原因
一次车牌号错误原来最多会叠出「长度不能少于7位」「首位必须是省份简称、 第二位必须是英文字母」「格式不正确」三条原因,导出的失败明细里这一格很长。 现将公路运输下的必填、长度与格式统一为一条「车牌号校验不通过」。 - 校验强度不变:长度 7/8 位本就由 VEHICLE_NO_PATTERN 蕴含,省份简称白名单照旧 - 保留「车牌号」字样,失败明细仍能按列名拆词匹配并标红车牌号列;车牌为空时 走空单元格红底纹分支,比原来只有文字更容易定位 - 未改动「同一配载标识号下,车牌号不一致」,该原因由 tests/fixtures/waybill-import 用例 04 断言
This commit is contained in:
+7
-15
@@ -655,21 +655,13 @@ public class WaybillImportBatchServiceImpl extends BaseServiceImpl<WaybillImport
|
|||||||
if (!isRoadTransport(transportType)) {
|
if (!isRoadTransport(transportType)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Func.isEmpty(vehicleNo)) {
|
// 必填、长度与格式统一为一条简短原因,避免多条规则叠加导致失败原因过长;
|
||||||
errors.add("公路运输时车牌号/航班号/船号/班列号不能为空");
|
// 文案保留“车牌号”字样,导入失败明细仍能据此定位到车牌号列并标红。
|
||||||
return;
|
// VEHICLE_NO_PATTERN 已约束总长度为 7 或 8 位,故不再单独判断长度。
|
||||||
}
|
if (Func.isEmpty(vehicleNo)
|
||||||
if (vehicleNo.length() < 7) {
|
|| !VEHICLE_PROVINCE_PATTERN.matcher(vehicleNo).lookingAt()
|
||||||
errors.add("车牌号长度不能少于7位");
|
|| !VEHICLE_NO_PATTERN.matcher(vehicleNo).matches()) {
|
||||||
}
|
errors.add("车牌号校验不通过");
|
||||||
if (vehicleNo.length() > 8) {
|
|
||||||
errors.add("车牌号长度不能超过8位");
|
|
||||||
}
|
|
||||||
if (!VEHICLE_PROVINCE_PATTERN.matcher(vehicleNo).lookingAt()) {
|
|
||||||
errors.add("车牌号首位必须是省份简称,第二位必须是英文字母");
|
|
||||||
}
|
|
||||||
if (!VEHICLE_NO_PATTERN.matcher(vehicleNo).matches()) {
|
|
||||||
errors.add("车牌号格式不正确,应为首位省份简称、次位英文字母、总长度7或8位");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user