523096025 2 år sedan
förälder
incheckning
df16be72b7

+ 40 - 11
admin/src/main/java/com/huimv/farm/damsubsidy/common/utils/EartagUtil.java

@@ -2,14 +2,28 @@ package com.huimv.farm.damsubsidy.common.utils;
 
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.huimv.farm.damsubsidy.entity.EartagResult;
+import sun.security.util.ManifestEntryVerifier;
 
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.regex.Pattern;
 
 public class EartagUtil {
+    public static void main(String[] args) {
+//        String str =  "123456789123456-789";
+        String str =  "123456789123456-45,456";
+//        String str =  "123456789123456-789";
+//        String str =  "123456789123456-789";
+//        String str =  "123456789123456-789";
+        EartagResult eartagCollection = getEartagCollection(str);
+        System.out.println(eartagCollection.toString());
+    }
 
+    public static boolean isInteger(String str) {
+        return  str.matches("[0-9\\-,]+");
+    }
     //获取耳标集合
     public static EartagResult getEartagCollection(String eartagStr){
         //12+3,
@@ -23,10 +37,16 @@ public class EartagUtil {
             eartagResult.setSuccess(false);
             return eartagResult;
         }
-        List<String> endList  = new ArrayList();
-        Set<String> endSet  = new HashSet<>();
         eartagStr = eartagStr.replaceAll(",",",").replaceAll(" ","");
         String[] split = eartagStr.split(",");
+        if (!eartagStr.matches("[-,0-9]+")){
+            eartagResult.setMsg("耳标号格式不正确");
+            eartagResult.setSuccess(false);
+            return eartagResult;
+        }
+
+        List<String> endList  = new ArrayList();
+        Set<String> endSet  = new HashSet<>();
         String firstEartag = split[0];
 
         if (firstEartag.length() != 15 && firstEartag.length() != 19){
@@ -49,19 +69,26 @@ public class EartagUtil {
                 endSet.add(newEartag);
             }  else   if (eartagLength ==19){
                 eartagPrefix =  eartag.substring(0,12);
-                Integer eartagStart = Integer.parseInt(eartag.substring(12, 15));
-                Integer eartagEnd = Integer.parseInt(eartag.substring(16));
-                if (eartagEnd <= eartagStart){
-                    eartagResult.setMsg("耳标"+firstEartag+"格式不正确");
+                try {
+                    Integer eartagStart = Integer.parseInt(eartag.substring(12, 15));
+                    Integer eartagEnd = Integer.parseInt(eartag.substring(16));
+                    if (eartagEnd <= eartagStart){
+                        eartagResult.setMsg("耳标"+eartag+"格式不正确");
+                        eartagResult.setSuccess(false);
+                        return eartagResult;
+                    }
+
+                    for (Integer integer = eartagStart; integer <= eartagEnd; integer++) {
+                        newEartag =  eartagPrefix +getStr(integer,3);
+                        endList.add(newEartag);
+                        endSet.add(newEartag);
+                    }
+                }catch (Exception e){
+                    eartagResult.setMsg("耳标"+eartag+"格式不正确");
                     eartagResult.setSuccess(false);
                     return eartagResult;
                 }
 
-                for (Integer integer = eartagStart; integer <= eartagEnd; integer++) {
-                    newEartag =  eartagPrefix +getStr(integer,3);
-                    endList.add(newEartag);
-                    endSet.add(newEartag);
-                }
 
             }else {
                 eartagResult.setMsg("耳标"+firstEartag+"格式不正确");
@@ -88,4 +115,6 @@ public class EartagUtil {
         }
         return eartagStr.toString();
     }
+
+
 }