瀏覽代碼

fixed 专利号

zero 1 年之前
父節點
當前提交
4b29f23eeb

+ 44 - 0
src/main/java/cn/cslg/pas/common/utils/esUtils/GetPatentNoUtils.java

@@ -0,0 +1,44 @@
+package cn.cslg.pas.common.utils.esUtils;
+
+import org.springframework.stereotype.Component;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * 获取专利号
+ */
+@Component
+public class GetPatentNoUtils {
+    /**
+     * 返回专利号
+     * @param var
+     * @return
+     */
+    public String getPatentNo(String var) {
+        int fixedLength = 13;
+        int fixedLength1 = 15;
+        String fixedSymbol = ".";
+
+        String s = "";
+        if (var == null) {
+            return s;
+        }
+
+        if (var.length() == fixedLength || var.length() == fixedLength1) {
+            String frontPart = var.substring(0, var.length() - 1);
+            String afterPart = var.substring(var.length() - 1);
+            var = frontPart + fixedSymbol + afterPart;
+        }
+        //使用正则表达式匹配前两位是否为字母
+        Pattern pattern = Pattern.compile("^[a-zA-Z]{2}");
+        Matcher matcher = pattern.matcher(var);
+        boolean flag = matcher.find();
+        if (!flag) {
+            s = "CN" + var;
+        } else {
+            s = var;
+        }
+        return s;
+    }
+}

+ 6 - 8
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/WildcardQueryBuilder.java

@@ -23,15 +23,13 @@ public class WildcardQueryBuilder implements IQueryBuilder{
         String str = "*";
         String s = "";
         if (list.contains(field)) {
-            if (value.contains(".")) {
-                s = str.concat(value.toUpperCase(Locale.ROOT)).concat("*");
+            if (value.length() == 13 || value.length() == 15) {
+                String frontPart = value.substring(0, value.length() - 1);
+                String afterPart = value.substring(value.length() - 1);
+                String s1 = frontPart + "." + afterPart;
+                s = str.concat(s1.toUpperCase(Locale.ROOT)).concat("*");
             } else {
-                if (value.length() > 10) {
-                    String substring = value.substring(0, value.length() - 1);
-                    s = str.concat(substring.toUpperCase(Locale.ROOT)).concat("*");
-                } else {
-                    s = str.concat(value.toUpperCase(Locale.ROOT)).concat("*");
-                }
+                s = str.concat(value.toUpperCase(Locale.ROOT)).concat("*");
             }
         } else {
             s = str.concat(value).concat("*");