许家凯 3 سال پیش
والد
کامیت
4f24d0b327

+ 53 - 0
src/main/java/com/winhc/bigdata/udf/CompanyChangeInfo.java

@@ -0,0 +1,53 @@
+package com.winhc.bigdata.udf;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.aliyun.odps.udf.UDF;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author: XuJiakai
+ * 2021/8/2 17:13
+ */
+public class CompanyChangeInfo extends UDF {
+    private static final List<String> list = Arrays.asList("人", "代表", "经营者");
+
+    private static String getDefStr(String val) {
+        if (val == null) {
+            return "";
+        } else {
+            return val.replace("(","(").replace(")",")");
+        }
+    }
+
+    public String evaluate(String content_before, String content_after, String category, List<String> names) {
+        content_before = getDefStr(content_before);
+        content_after = getDefStr(content_after);
+        category = getDefStr(category);
+        if (names == null) {
+            names = Collections.emptyList();
+        }
+        Map<String, Object> map = new HashMap<>(2);
+        String finalContent_after = content_after;
+        String finalContent_before = content_before;
+        List<HashMap<String, String>> collect = names.stream().filter(r -> {
+            String name = r.split("@@")[1];
+            return finalContent_after.contains(name) || finalContent_before.contains(name);
+        }).map(r -> {
+            String keyno = r.split("@@")[0];
+            String name = r.split("@@")[1].replace("(","(").replace(")",")");
+            HashMap<String, String> stringStringHashMap = new HashMap<>(2);
+            stringStringHashMap.put("keyno", keyno);
+            stringStringHashMap.put("name", name);
+            return stringStringHashMap;
+        }).collect(Collectors.toList());
+
+        if (collect == null || collect.isEmpty()) {
+            return null;
+        }
+        map.put("entity", collect);
+        return JSONObject.toJSONString(map, SerializerFeature.WriteMapNullValue);
+    }
+}

+ 6 - 0
src/main/java/com/winhc/bigdata/udf/JsonArray2ListUdf.java

@@ -30,4 +30,10 @@ public class JsonArray2ListUdf extends UDF {
         }
     }
 
+    public static void main(String[] args) {
+        JsonArray2ListUdf jsonArray2ListUdf = new JsonArray2ListUdf();
+        List<String> evaluate = jsonArray2ListUdf.evaluate("[{\"show\":\"辽阳文圣仪表厂\",\"value\":\"辽阳文圣仪表厂\"}]", "$.value");
+        System.out.println(evaluate);
+    }
+
 }

+ 16 - 3
src/main/java/com/winhc/bigdata/udf/replace_split.java

@@ -4,6 +4,7 @@ import com.aliyun.odps.udf.UDF;
 import com.aliyun.odps.utils.StringUtils;
 
 import java.util.ArrayList;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 /**
@@ -13,7 +14,7 @@ import java.util.regex.Pattern;
  */
 public class replace_split extends UDF {
 
-    public String evaluate(String name, String historyName,String split) {
+    public String evaluate(String name, String historyName, String split) {
         ArrayList<String> list = new ArrayList<>();
         if (StringUtils.isBlank(name) && StringUtils.isBlank(historyName)) {
             return "";
@@ -35,10 +36,22 @@ public class replace_split extends UDF {
         return String.join(split, list);
     }
 
+    private static final Pattern p = Pattern.compile("^(?<name>.*?)(?<cardNum>[0-9xX*]*?)$");
+
     public static void main(String[] args) {
+        String str = "徐州圣1426231973****081X";
+        Matcher matcher = p.matcher(str);
+        String cardNum = "";
         String name = "";
-        String historyName = "中国邮政集团公司山南地区分公司\t;\t西藏自治区邮政公司山南地区分公司\t;\t中国邮政集团公司山南市分公司\t;";
-        System.out.println(new replace_split().evaluate(name,historyName,"@@"));
+        if (matcher.matches()) {
+            cardNum = matcher.group("cardNum");
+            name = matcher.group("name");
+        } else {
+            name = str;
+        }
+
+        System.out.println("name: " + name);
+        System.out.println("cardNum: " + cardNum);
     }
 }
 

+ 4 - 4
src/main/java/com/winhc/bigdata/utils/CaseConnectUtils.java

@@ -69,15 +69,15 @@ public class CaseConnectUtils {
     public static void main(String[] args) {
         Set<String> currentCasePartyList = new HashSet<String>() {
             {
-                add("广西南宁伟联行置业有限公司");
-                add("广西美满园房地产开发有限公司");
+//                add("广西南宁伟联行置业有限公司");
+//                add("广西美满园房地产开发有限公司");
                 add("李桂香");
             }
         };
         Set<String> connectCasePartyList = new HashSet<String>() {
             {
-                add("广西南宁伟联行置业有限公司");
-                add("广西美满园房地产开发有限公司");
+//                add("广西南宁伟联行置业有限公司");
+//                add("广西美满园房地产开发有限公司");
                 add("陈世赞");
             }
         };