From 3c74bcb86928c153c180b939c651d586c39de937 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 27 二月 2024 14:03:59 +0800
Subject: [PATCH] ERP接口

---
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java |   97 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 91 insertions(+), 6 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
index d5a038b..a1f5f3f 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -135,10 +135,27 @@
      *   鍒ゆ柇鏄惁涓烘湁鏁堣溅鐗屽彿
      */
     public static boolean checkCarNo(String str) {
-        String patt="^[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹宸濋潚钘忕惣瀹佺Е宸漖\\\\d{5}[A-Z]$";
-        Pattern r = Pattern.compile(patt);
-        Matcher matcher = r.matcher(str);
-        return matcher.find();
+//        String patt="^[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹宸濋潚钘忕惣瀹佺Е宸漖\\\\d{5}[A-Z]$";
+//        Pattern r = Pattern.compile(patt);
+//        Matcher matcher = r.matcher(str);
+//        String regex = "^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-HJ-NP-Z]{1}[A-HJ-NP-Z0-9]{4}[D0-9X]$";
+//        Pattern pattern = Pattern.compile(regex);
+//        Matcher matcher = pattern.matcher(str);
+//        boolean isMatcher = matcher.matches();
+//        return isMatcher;
+
+
+        if (str.length() >= 7 && str.length() <= 8){
+            Pattern pattern = Pattern.compile("^([浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块A-Z]{1}[a-zA-Z](([ABCDF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[ABCDF]))|[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9鎸傚璀︽腐婢砞{1})$");
+            Matcher m = pattern.matcher(str);
+            if (!m.matches()){
+                return false;
+            }
+            return true;
+        }else {
+            return false;
+        }
+
     }
 
     public static  String  getTuominStr(String s){
@@ -328,10 +345,78 @@
     int otherDeal = 4;//浠栦汉宸插鐞�
 }
 
+    /**
+     * 鑾峰彇杞︾墝绫诲瀷淇℃伅
+     *
+     * @param plateNo
+     * @return 杩斿洖null锛岃〃绀鸿溅鐗屼笉鍖归厤
+     */
+    public static VehiclePlateNoEnum getVehiclePlateNo(String plateNo) {
+        for (VehiclePlateNoEnum vehiclePlateNoEnum : VehiclePlateNoEnum.values()) {
+            Matcher matcher = vehiclePlateNoEnum.pattern.matcher(plateNo);
+            if (matcher.find()) {
+                return vehiclePlateNoEnum;
+            }
+        }
+        return null;
+    }
+
+
+    public enum VehiclePlateNoEnum {
+        /**
+         * 鍖归厤姘戠敤杞︾墝鍜屼娇棣嗚溅鐗�
+         * 1銆佺涓�浣嶄负姹夊瓙鐪佷唤缂╁啓
+         * 2銆佺浜屼綅涓哄ぇ鍐欏瓧姣嶅煄甯傜紪鐮�
+         * 3銆佸悗闈㈡槸5浣嶄粎鍚瓧姣嶅拰鏁板瓧鐨勭粍鍚�
+         */
+        CIVIL_LICENSE_PLATE_AND_EMBASSY_LICENSE_PLATE(1, "姘戠敤杞︾墝鍜屼娇棣嗚溅鐗�", Pattern.compile("^[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]{1}[A-Z]{1}[0-9a-zA-Z]{5}$")),
+        /**
+         * 鍖归厤鐗圭杞︾墝(鎸�,璀�,瀛�,棰�,娓�,婢�)
+         */
+        SPECIAL_LICENSE_PLATES(2, "鐗圭杞︾墝", Pattern.compile("^[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]{1}[A-Z]{1}[0-9a-zA-Z]{4}[鎸傝瀛﹂娓境]{1}$")),
+        /**
+         * 鍖归厤
+         */
+        ARMED_POLICE_CAR(3, "姝﹁杞︾墝", Pattern.compile("^WJ[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]?[0-9a-zA-Z]{5}$")),
+        /**
+         * 鍖归厤鍐涚墝
+         */
+        MILITARY_CAR(4, "鍐涚敤杞︾墝", Pattern.compile("^[A-Z]{2}[0-9]{5}$")),
+        /**
+         * 灏忓瀷鏂拌兘婧愯溅
+         * 1銆佸尮閰嶆柊鑳芥簮杞﹁締6浣嶈溅鐗�
+         */
+        SMALL_NEW_ENERGY_VEHICLE(5, "灏忓瀷鏂拌兘婧愯溅鐗�", Pattern.compile("^[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]{1}[A-Z]{1}[DF]{1}[0-9a-zA-Z]{5}$")),
+        /**
+         * 澶у瀷鏂拌兘婧愯溅
+         */
+        LARGE_NEW_ENERGY_VEHICLE(6, "澶у瀷鏂拌兘婧愯溅鐗�", Pattern.compile("^[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]{1}[A-Z]{1}[0-9a-zA-Z]{5}[DF]{1}$"));
+        private int code;
+
+        private String description;
+
+        private Pattern pattern;
+
+        VehiclePlateNoEnum(int code, String description, Pattern pattern) {
+            this.code = code;
+            this.description = description;
+            this.pattern = pattern;
+        }
+
+        public int getCode() {
+            return code;
+        }
+
+        public String getDescription() {
+            return description;
+        }
+    }
 
     public static void main(String[] args) {
-        System.out.println(Constants.checkCarNo("婀楤40D17"));
-        System.out.println(Constants.checkCarNo("鐨朅P0637"));
+        System.out.println(Constants.getVehiclePlateNo("婀楤D40D17").getDescription());
+
+        System.out.println(Constants.getVehiclePlateNo("婀楤140D17").getDescription());
+        System.out.println(Constants.getVehiclePlateNo("瀹緼P0637").getDescription());
     }
 
 

--
Gitblit v1.9.3