Browse Source

车辆历史轨迹核验(运单详版)- 增加不一致,上游返回空的结果项

15810770710@163.com 3 years ago
parent
commit
375eef39c3

+ 115 - 98
src/main/java/info/aspirecn/iov/yysj/check/info/common/TransferParam.java

@@ -25,6 +25,8 @@ public class TransferParam {
 
 	private static final String DATE_YYYYMMDD = "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229)";
 	private static final String WEIGHT_000 = "([0-9]){0,}.[0-9]{3}";
+	private static final String ID_CODE_REGEX = "^([1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$|^[1-9]\\" +
+			"d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X|x))$";
 	/*
 	 * {"vehicleNumber":"新A93293","licensePlateTypeCode":"2","vehicleTonnage":"0"}
 	 */
@@ -383,15 +385,21 @@ public class TransferParam {
 		String provinceCode = requestMap.get(Constants.driver_provinceCode);
 		String qualificationCertificateFrom = requestMap.get(Constants.driver_qualificationCertificateFrom);
 		String qualificationCertificateTo = requestMap.get(Constants.driver_qualificationCertificateTo);
+		String drivingLicense = requestMap.get(Constants.driver_drivingLicense);
 		Pattern pattern = Pattern.compile(DATE_YYYYMMDD);
 		if (StringUtils.isEmpty(driverName)) {
 			emptyList.add(Constants.driver_driverNamer);
 		}
 		if (StringUtils.isEmpty(qualificationCertificate)) {
 			emptyList.add(Constants.driver_qualificationCertificate);
+		} else if (qualificationCertificate.length() > 18) {
+			errorList.add(Constants.driver_qualificationCertificate);
 		}
+
 		if (StringUtils.isEmpty(provinceCode)) {
 			emptyList.add(Constants.driver_provinceCode);
+		} else if (!checkNumber(provinceCode)) {
+			errorList.add(Constants.driver_provinceCode);
 		}
 		if (StringUtils.isEmpty(qualificationCertificateFrom)) {
 			emptyList.add(Constants.driver_qualificationCertificateFrom);
@@ -403,6 +411,11 @@ public class TransferParam {
 		} else if (!pattern.matcher(qualificationCertificateTo).matches()) {
 			errorList.add(Constants.driver_qualificationCertificateTo);
 		}
+		if (StringUtils.isEmpty(drivingLicense)) {
+			emptyList.add(Constants.driver_drivingLicense);
+		} else if (!checkIdCode(drivingLicense)) {
+			errorList.add(Constants.driver_drivingLicense);
+		}
 		if (emptyList.size() == 0 && errorList.size() == 0) {
 			Map<String, Object> vehicleInfoMap = new HashMap<String, Object>();
 			vehicleInfoMap.put(Constants.rycyzgyz_nameOfPerson, driverName);
@@ -410,6 +423,7 @@ public class TransferParam {
 			vehicleInfoMap.put(Constants.rycyzgyz_provinceCode, provinceCode);
 			vehicleInfoMap.put(Constants.rycyzgyz_periodStartDate, qualificationCertificateFrom);
 			vehicleInfoMap.put(Constants.rycyzgyz_periodEndDate, qualificationCertificateTo);
+			vehicleInfoMap.put(Constants.rycyzgyz_drivingLicense, drivingLicense);
 			return vehicleInfoMap;
 		}
 		return null;
@@ -429,6 +443,8 @@ public class TransferParam {
 				.get(Constants.car_roadTransportCertificateValidPeriodTo);
 		if (StringUtils.isEmpty(vehicleNumber)) {
 			emptyList.add(Constants.car_vehicleNumber);
+		} else if (!checkPlateNumber(vehicleNumber)) {
+			errorList.add(Constants.car_vehicleNumber);
 		}
 		if (StringUtils.isEmpty(roadTransportCertificateNumber)) {
 			emptyList.add(Constants.car_roadTransport);
@@ -436,6 +452,7 @@ public class TransferParam {
 		if (StringUtils.isEmpty(vehiclePlateColorCode)) {
 			emptyList.add(Constants.car_vehiclePlateColorCode);
 		}
+
 		Pattern pattern = Pattern.compile(DATE_YYYYMMDD);
 		if (StringUtils.isEmpty(roadTransportCertificateValidPeriodFrom)) {
 			emptyList.add(Constants.car_roadTransportCertificateValidPeriodFrom);
@@ -465,13 +482,9 @@ public class TransferParam {
 		String permitNumber = requestMap.get(Constants.bill_permitNumber);
 		// String
 		// unifiedSocialCreditIdentifier=requestMap.get(Constants.bill_unifiedSocialCreditIdentifier);
-		/*
-		 * String
-		 * permitValidPeriodFrom=requestMap.get(Constants.bill_permitValidPeriodFrom);
-		 * String
-		 * permitValidPeriodTo=requestMap.get(Constants.bill_permitValidPeriodTo);
-		 * Pattern pattern = Pattern.compile(DATE_YYYYMMDD);
-		 */
+		String permitValidPeriodFrom=requestMap.get(Constants.bill_permitValidPeriodFrom);
+		String permitValidPeriodTo=requestMap.get(Constants.bill_permitValidPeriodTo);
+		Pattern pattern = Pattern.compile(DATE_YYYYMMDD);
 		if (StringUtils.isEmpty(carrier)) {
 			emptyList.add(Constants.bill_carrier);
 		}
@@ -479,29 +492,27 @@ public class TransferParam {
 			emptyList.add(Constants.bill_permitNumber);
 		}
 
-		/*
-		 * if(StringUtils.isEmpty(permitValidPeriodFrom)){
-		 * emptyList.add(Constants.bill_permitValidPeriodFrom); }else
-		 * if(!pattern.matcher(permitValidPeriodFrom).matches()){
-		 * errorList.add(Constants.bill_permitValidPeriodFrom); }
-		 * if(StringUtils.isEmpty(permitValidPeriodTo)){
-		 * emptyList.add(Constants.bill_permitValidPeriodTo); }else
-		 * if(!pattern.matcher(permitValidPeriodTo).matches()){
-		 * errorList.add(Constants.bill_permitValidPeriodTo); }
-		 * if(StringUtils.isEmpty(unifiedSocialCreditIdentifier)){
-		 * emptyList.add(Constants.bill_unifiedSocialCreditIdentifier); }
-		 */
+		if(StringUtils.isEmpty(permitValidPeriodFrom)){
+			emptyList.add(Constants.bill_permitValidPeriodFrom);
+		} else if(!pattern.matcher(permitValidPeriodFrom).matches()){
+			errorList.add(Constants.bill_permitValidPeriodFrom);
+		}
+		if(StringUtils.isEmpty(permitValidPeriodTo)){
+			emptyList.add(Constants.bill_permitValidPeriodTo);
+		} else if(!pattern.matcher(permitValidPeriodTo).matches()){
+			errorList.add(Constants.bill_permitValidPeriodTo);
+		}
+//		if(StringUtils.isEmpty(unifiedSocialCreditIdentifier)){
+//			emptyList.add(Constants.bill_unifiedSocialCreditIdentifier);
+//		}
+
 		if (emptyList.size() == 0 && errorList.size() == 0) {
 			Map<String, Object> vehicleInfoMap = new HashMap<String, Object>();
 			vehicleInfoMap.put(Constants.bill_carrier, carrier);
 			vehicleInfoMap.put(Constants.bill_permitNumber, permitNumber);
-			/*
-			 * vehicleInfoMap.put(Constants.bill_unifiedSocialCreditIdentifier,
-			 * unifiedSocialCreditIdentifier);
-			 * vehicleInfoMap.put(Constants.bill_permitValidPeriodFrom,
-			 * permitValidPeriodFrom);
-			 * vehicleInfoMap.put(Constants.bill_permitValidPeriodTo, permitValidPeriodTo);
-			 */
+//			vehicleInfoMap.put(Constants.bill_unifiedSocialCreditIdentifier,unifiedSocialCreditIdentifier);
+			vehicleInfoMap.put(Constants.bill_permitValidPeriodFrom,permitValidPeriodFrom);
+			vehicleInfoMap.put(Constants.bill_permitValidPeriodTo, permitValidPeriodTo);
 			return vehicleInfoMap;
 		}
 		return null;
@@ -1050,78 +1061,79 @@ public class TransferParam {
 
 	public Set<String> resultTransferParam(String productCode, Set<String> list) {
 		Set<String> result = new HashSet<String>();
-		if ("04".equals(productCode)) {
-			// 人员从业资格验证
-			for (String param : list) {
-
-				if (Constants.rycyzgyz_nameOfPerson.equals(param)) {
-					result.add(Constants.driver_driverNamer);
-				}
-				if (Constants.rycyzgyz_qualificationCertificateNumber.equals(param)) {
-					result.add(Constants.driver_qualificationCertificate);
-				}
-				if (Constants.rycyzgyz_provinceCode.equals(param)) {
-					result.add(Constants.driver_provinceCode);
-				}
-				if (Constants.rycyzgyz_periodStartDate.equals(param)) {
-					result.add(Constants.driver_qualificationCertificateFrom);
-				}
-				if (Constants.rycyzgyz_periodEndDate.equals(param)) {
-					result.add(Constants.driver_qualificationCertificateTo);
-				}
-			}
-
-		} else if ("02".equals(productCode)) {// 车辆营运验证
-			for (String param : list) {
-
-				if (Constants.clyyyz_vehicleNumber.equals(param)) {
-					result.add(Constants.car_vehicleNumber);
-				}
-				if (Constants.clyyyz_licensePlateTypeCode.equals(param)) {
-					result.add(Constants.car_vehiclePlateColorCode);
-				}
-				if (Constants.clyyyz_roadTransportCertificateNumber.equals(param)) {
-					result.add(Constants.car_roadTransport);
-				}
-				if (Constants.clyyyz_periodStartDate.equals(param)) {
-					result.add(Constants.car_roadTransportCertificateValidPeriodFrom);
-				}
-				if (Constants.clyyyz_periodEndDate.equals(param)) {
-					result.add(Constants.car_roadTransportCertificateValidPeriodTo);
-				}
-			}
-		} else if ("10".equals(productCode)) {// 企业经营许可验证 经营许可证号
-
-			for (String param : list) {
-
-				if (Constants.qyyyxkz_carrier.equals(param)) {
-					result.add(Constants.bill_carrier);
-				}
-				if (Constants.qyyyxkz_permitNumber.equals(param)) {
-					result.add(Constants.bill_permitNumber);
-				}
-				if (Constants.qyyyxkz_provinceCode.equals(param)) {
-					result.add(Constants.bill_carrier);
-					/* result.add(Constants.bill_unifiedSocialCreditIdentifier); */
-				}
-				/*
-				 * if (Constants.clyyyz_periodStartDate.equals(param)) {
-				 * result.add(Constants.bill_permitValidPeriodFrom);
-				 *
-				 * } if (Constants.clyyyz_periodEndDate.equals(param)) {
-				 * result.add(Constants.bill_permitValidPeriodTo);
-				 *
-				 * }
-				 */
-				if (Constants.qyyyxkz_name.equals(param)) {
-					result.add(Constants.bill_carrier);
-				}
-				/*
-				 * if (Constants.qyyyxkz_creditCode.equals(param)) {
-				 * result.add(Constants.bill_unifiedSocialCreditIdentifier); }
-				 */
-			}
-		} else if ("09".equals(productCode)) {// 车辆入网验证
+//		if ("04".equals(productCode)) {
+//			// 人员从业资格验证
+//			for (String param : list) {
+//
+//				if (Constants.rycyzgyz_nameOfPerson.equals(param)) {
+//					result.add(Constants.driver_driverNamer);
+//				}
+//				if (Constants.rycyzgyz_qualificationCertificateNumber.equals(param)) {
+//					result.add(Constants.driver_qualificationCertificate);
+//				}
+//				if (Constants.rycyzgyz_provinceCode.equals(param)) {
+//					result.add(Constants.driver_provinceCode);
+//				}
+//				if (Constants.rycyzgyz_periodStartDate.equals(param)) {
+//					result.add(Constants.driver_qualificationCertificateFrom);
+//				}
+//				if (Constants.rycyzgyz_periodEndDate.equals(param)) {
+//					result.add(Constants.driver_qualificationCertificateTo);
+//				}
+//			}
+//
+//		} else if ("02".equals(productCode)) {// 车辆营运验证
+//			for (String param : list) {
+//
+//				if (Constants.clyyyz_vehicleNumber.equals(param)) {
+//					result.add(Constants.car_vehicleNumber);
+//				}
+//				if (Constants.clyyyz_licensePlateTypeCode.equals(param)) {
+//					result.add(Constants.car_vehiclePlateColorCode);
+//				}
+//				if (Constants.clyyyz_roadTransportCertificateNumber.equals(param)) {
+//					result.add(Constants.car_roadTransport);
+//				}
+//				if (Constants.clyyyz_periodStartDate.equals(param)) {
+//					result.add(Constants.car_roadTransportCertificateValidPeriodFrom);
+//				}
+//				if (Constants.clyyyz_periodEndDate.equals(param)) {
+//					result.add(Constants.car_roadTransportCertificateValidPeriodTo);
+//				}
+//			}
+//		} else if ("10".equals(productCode)) {// 企业经营许可验证 经营许可证号
+//
+//			for (String param : list) {
+//
+//				if (Constants.qyyyxkz_carrier.equals(param)) {
+//					result.add(Constants.bill_carrier);
+//				}
+//				if (Constants.qyyyxkz_permitNumber.equals(param)) {
+//					result.add(Constants.bill_permitNumber);
+//				}
+//				if (Constants.qyyyxkz_provinceCode.equals(param)) {
+//					result.add(Constants.bill_carrier);
+//					/* result.add(Constants.bill_unifiedSocialCreditIdentifier); */
+//				}
+//				/*
+//				 * if (Constants.clyyyz_periodStartDate.equals(param)) {
+//				 * result.add(Constants.bill_permitValidPeriodFrom);
+//				 *
+//				 * } if (Constants.clyyyz_periodEndDate.equals(param)) {
+//				 * result.add(Constants.bill_permitValidPeriodTo);
+//				 *
+//				 * }
+//				 */
+//				if (Constants.qyyyxkz_name.equals(param)) {
+//					result.add(Constants.bill_carrier);
+//				}
+//				/*
+//				 * if (Constants.qyyyxkz_creditCode.equals(param)) {
+//				 * result.add(Constants.bill_unifiedSocialCreditIdentifier); }
+//				 */
+//			}
+//		}
+		if ("09".equals(productCode)) {// 车辆入网验证
 
 			for (String param : list) {
 
@@ -1272,6 +1284,11 @@ public class TransferParam {
 		return provinceList.contains(provinceParam);
 	}
 
+	public boolean checkIdCode(String idCode){
+		Pattern idCodePattern = Pattern.compile(ID_CODE_REGEX);
+		return idCodePattern.matcher(idCode).matches();
+	}
+
 	public static void main(String[] args) {
 		String certificateNumberReg = "[0-9a-zA-Z]{1,20}";
 		Pattern certificateNumberPattern = Pattern.compile(certificateNumberReg);

+ 5 - 1
src/main/java/info/aspirecn/iov/yysj/check/info/pre/WayBillFilter.java

@@ -166,7 +166,11 @@ public class WayBillFilter extends ZuulFilter {
 							concreteCheckResult.setErrorInfo(Constants.weightOverInfo);
 						}else if(errorResponse.getCode() == Constants.ErrorCode.MONEYNOTENOUGH.getErrorCode()){
 							concreteCheckResult.setErrorInfo(Constants.moneyNotEnough);
-						}else {
+						} else if (errorResponse.getCode() == Constants.ErrorCode.INCONSISTENT_DETAIL_STRING.getErrorCode()) {
+							Set<String> resultSet = errorResponse.getResultList();
+							List<String> resultList = new ArrayList<>(resultSet);
+							concreteCheckResult.setErrorInfo(resultList.get(0));
+						} else {
 							Set<String> resultList = errorResponse.getResultList();
 							Set<String> resultSet = transferParam.resultTransferParam(yysjProduct.getYysjProductCode(),resultList);
 							if (errorResponse.getCode() == Constants.ErrorCode.NULL.getErrorCode()) {