浏览代码

feat: 添加依赖

许家凯 4 年之前
父节点
当前提交
b3fbe53244

+ 43 - 0
pom.xml

@@ -56,6 +56,49 @@
             <artifactId>junit</artifactId>
             <version>4.12</version>
         </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.72</version>
+        </dependency>
+
+
     </dependencies>
 
+    <build>
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <version>2.4.1</version>
+                <configuration>
+                    <!-- get all project dependencies -->
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                    <!-- MainClass in mainfest make a executable jar -->
+<!--                    <archive>-->
+<!--                        <manifest>-->
+<!--                            <mainClass>util.Microseer</mainClass>-->
+<!--                        </manifest>-->
+<!--                    </archive>-->
+
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id>
+                        <!-- bind to the packaging phase -->
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+    </build>
+
 </project>

+ 10 - 0
src/main/java/com/winhc/bigdata/bean/EquityInfo.java

@@ -0,0 +1,10 @@
+package com.winhc.bigdata.bean;
+
+/**
+ * @author: XuJiakai
+ * 2021/3/12 15:15
+ */
+public interface EquityInfo {
+     void setId(String id);
+     String getName();
+}

+ 49 - 0
src/main/java/com/winhc/bigdata/bean/Pledgee.java

@@ -0,0 +1,49 @@
+package com.winhc.bigdata.bean;
+
+/**
+ * @author: XuJiakai
+ * 2021/3/12 15:16
+ */
+public class Pledgee implements EquityInfo{
+    private String pledgee;
+    private String pledgee_id;
+
+    public Pledgee(String pledgee) {
+        this.pledgee = pledgee;
+    }
+
+    public Pledgee() {
+    }
+
+    public Pledgee(String pledgee, String pledgee_id) {
+        this.pledgee = pledgee;
+        this.pledgee_id = pledgee_id;
+    }
+
+    public String getPledgee() {
+        return pledgee;
+    }
+
+    public void setPledgee(String pledgee) {
+        this.pledgee = pledgee;
+    }
+
+    public String getPledgee_id() {
+        return pledgee_id;
+    }
+
+    public void setPledgee_id(String pledgee_id) {
+        this.pledgee_id = pledgee_id;
+    }
+
+
+    @Override
+    public void setId(String id){
+        this.pledgee_id = id;
+    }
+
+    @Override
+    public String getName() {
+        return this.pledgee;
+    }
+}

+ 47 - 0
src/main/java/com/winhc/bigdata/bean/Pledgor.java

@@ -0,0 +1,47 @@
+package com.winhc.bigdata.bean;
+
+/**
+ * @author: XuJiakai
+ * 2021/3/12 15:15
+ */
+public class Pledgor implements EquityInfo {
+    private String pledgor;
+    private String pledgor_id;
+
+    public Pledgor(String pledgor) {
+        this.pledgor = pledgor;
+    }
+
+    public Pledgor() {
+    }
+
+    public Pledgor(String pledgor, String pledgor_id) {
+        this.pledgor = pledgor;
+        this.pledgor_id = pledgor_id;
+    }
+
+    public String getPledgor() {
+        return pledgor;
+    }
+
+    public void setPledgor(String pledgor) {
+        this.pledgor = pledgor;
+    }
+
+    public String getPledgor_id() {
+        return pledgor_id;
+    }
+
+    public void setPledgor_id(String pledgor_id) {
+        this.pledgor_id = pledgor_id;
+    }
+
+    @Override
+    public void setId(String id) {
+        this.pledgor_id = id;
+    }
+    @Override
+    public String getName() {
+        return this.pledgor;
+    }
+}

+ 10 - 4
src/main/java/com/winhc/bigdata/udf/CaseNoTrim.java

@@ -13,8 +13,8 @@ import java.util.regex.Pattern;
  */
 public class CaseNoTrim extends UDF {
 
-    private static final Pattern pattern = Pattern.compile(".*([(\\(]\\d{4}[)\\)][^号]*号?).*");
-    private static final Pattern year_pat = Pattern.compile("(\\d{4}?)年");
+    private static final Pattern pattern = Pattern.compile(".*([(\\(]\\d{4}[)\\)][^号]*号.*?)");
+    private static final Pattern year_pat = Pattern.compile("\\(?(\\d{4}?)\\)?年");
 
 
     public String evaluate(String val) {
@@ -26,9 +26,10 @@ public class CaseNoTrim extends UDF {
         if (val.length() < 8) {
             return null;
         }
-        val = year_pat.matcher(val).replaceAll("\\($1\\)");
         val = val.replace("(", "(")
-                .replace(")", ")").replaceAll("O","0");
+                .replace(")", ")").replaceAll("O","0").replaceAll("号{2,}","号");
+
+        val = year_pat.matcher(val).replaceAll("\\($1\\)");
 
         Matcher matcher = pattern.matcher(val);
         return matcher.matches() ? matcher.replaceAll("$1") : null;
@@ -46,4 +47,9 @@ public class CaseNoTrim extends UDF {
         }
         return new String(c);
     }
+
+    public static void main(String[] args) {
+        String val = new CaseNoTrim().evaluate("(2019)年中国贸仲京裁字第0394号号号");
+        System.out.println(val);
+    }
 }

+ 36 - 0
src/main/java/com/winhc/bigdata/udf/CompanyScoreUdf.java

@@ -0,0 +1,36 @@
+package com.winhc.bigdata.udf;
+
+import com.aliyun.odps.udf.UDF;
+import com.aliyun.odps.utils.StringUtils;
+
+/**
+ * @author: XuJiakai
+ * 2021/4/12 17:44
+ */
+public class CompanyScoreUdf extends UDF {
+    public Double evaluate(Double company_score_w, String company_org_type_std, Long holder_size, Long staff_size, Long tm_size, Long icp_size, Long app_size) {
+        Double d = company_score_w
+                + calc(holder_size, 5, 2, 5)
+                + calc(staff_size, 5, 2, 5)
+                + calc(tm_size, 5, 2, 20)
+                + calc(icp_size, 5, 1, 5)
+                + calc(app_size, 5, 1, 5);
+        if (StringUtils.isNotBlank(company_org_type_std) && !"个体工商户".equals(company_org_type_std)) {
+            d = d + 1;
+        }
+        return d;
+    }
+
+    private static Double calc(Long size, double total_score, int min_size, int max_size) {
+        if (size == null) {
+            return 0.0;
+        }
+        if (size < min_size) {
+            return 0.0;
+        }
+        if (size > max_size) {
+            return total_score;
+        }
+        return total_score / (max_size - min_size + 1) * (size - min_size + 1);
+    }
+}

+ 4 - 1
src/main/java/com/winhc/bigdata/udf/ConcatCleanup.java

@@ -12,8 +12,11 @@ import java.util.regex.Pattern;
 public class ConcatCleanup extends UDF {
     private static final Pattern pattern = Pattern.compile("[^\\u4e00-\\u9fa50-9a-zA-Z]");
 
-    public String evaluate(String... val) {
+    public String evaluate(String v, String... val) {
         StringBuilder sb = new StringBuilder();
+        if (StringUtils.isNotBlank(v)) {
+            sb.append(pattern.matcher(v).replaceAll(""));
+        }
         for (String s : val) {
             if (StringUtils.isNotBlank(s)) {
                 sb.append(pattern.matcher(s).replaceAll(""));

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

@@ -0,0 +1,53 @@
+package com.winhc.bigdata.udf;
+
+import com.aliyun.odps.udf.UDF;
+import com.aliyun.odps.utils.StringUtils;
+import com.google.gson.Gson;
+import com.winhc.bigdata.bean.EquityInfo;
+import com.winhc.bigdata.bean.Pledgee;
+import com.winhc.bigdata.bean.Pledgor;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author: XuJiakai
+ * 2021/3/12 14:57
+ */
+public class EquityInfoUdf extends UDF {
+    public String evaluate(String type, Map<String, String> map, String value) {
+        if (map == null) {
+            map = new HashMap<>();
+        }
+        if (StringUtils.isEmpty(value)) {
+            return get_json(new ArrayList<>(), map);
+        }
+        if ("pledgee".equals(type)) {
+            List<EquityInfo> collect = Arrays.stream(value.split("[,,、]")).map(Pledgee::new).collect(Collectors.toList());
+            return get_json(collect, map);
+        }
+        if ("pledgor".equals(type)) {
+            List<EquityInfo> collect = Arrays.stream(value.split("[,,、]")).map(Pledgor::new).collect(Collectors.toList());
+            return get_json(collect, map);
+        }
+        throw new RuntimeException("type is not found!");
+    }
+
+    private static String get_json(List<EquityInfo> list, Map<String, String> map) {
+        List<EquityInfo> collect = list.stream().peek(equityInfo -> {
+            String name = equityInfo.getName();
+            String orDefault = map.getOrDefault(name, null);
+            equityInfo.setId(orDefault);
+        }).collect(Collectors.toList());
+        return new Gson().toJson(collect);
+    }
+
+
+    public static void main(String[] args) {
+        HashMap<String, String> map = new HashMap<>();
+        map.put("abc", "123");
+        map.put("a", "456");
+        String pledgee = new EquityInfoUdf().evaluate("pledgee", null, "a,{\"{b,c");
+        System.out.println(pledgee);
+    }
+}

+ 18 - 0
src/main/java/com/winhc/bigdata/udf/FindMapByValue.java

@@ -0,0 +1,18 @@
+package com.winhc.bigdata.udf;
+
+import com.aliyun.odps.udf.UDF;
+
+import java.util.Map;
+
+/**
+ * @author: XuJiakai
+ * 2021/3/9 10:07
+ */
+public class FindMapByValue extends UDF {
+    public String evaluate(String val, Map<String,String> map) {
+        if(val==null||map==null){
+            return null;
+        }
+        return map.getOrDefault(val.trim(), null);
+    }
+}

+ 0 - 1
src/main/java/com/winhc/bigdata/udf/IsJsonStr.java

@@ -2,7 +2,6 @@ package com.winhc.bigdata.udf;
 
 import com.aliyun.odps.udf.UDF;
 import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 
 /**

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

@@ -0,0 +1,33 @@
+package com.winhc.bigdata.udf;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONPath;
+import com.aliyun.odps.udf.UDF;
+import com.aliyun.odps.utils.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author: XuJiakai
+ * 2021/4/12 16:57
+ */
+public class JsonArray2ListUdf extends UDF {
+    public List<String> evaluate(String val, String json_path) {
+        if (StringUtils.isBlank(val)) {
+            return new ArrayList<>();
+        }
+        try {
+            List<String> list = new ArrayList<>();
+            JSONArray jsonArray = ((JSONArray) JSONPath.eval(JSON.parse(val), json_path));
+            for (Object o : jsonArray) {
+                list.add((String) o);
+            }
+            return list;
+        } catch (Exception e) {
+            return new ArrayList<>();
+        }
+    }
+
+}

+ 0 - 5
src/main/java/com/winhc/bigdata/udf/NameCleanup.java

@@ -17,11 +17,6 @@ public class NameCleanup extends UDF {
     public String evaluate(String val) {
         return StringUtils.isNotBlank(val) ? pattern.matcher(val.replaceAll("[、,;]",",")).replaceAll("").replaceAll(" +", " ") : "";
     }
-
-    public static void main(String[] args) {
-        NameCleanup n = new NameCleanup();
-        System.out.println(n.evaluate("000"));
-    }
 }
 
 

+ 39 - 0
src/main/java/com/winhc/bigdata/udf/NameFilter.java

@@ -0,0 +1,39 @@
+package com.winhc.bigdata.udf;
+
+import com.aliyun.odps.udf.UDF;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @author: XuJiakai
+ * 2021/3/8 17:01
+ */
+public class NameFilter extends UDF {
+    public List<String> evaluate(String flag, String... val) {
+        if (flag.equals("company")) {
+
+            return Stream.of(val).filter(Objects::nonNull).map(String::trim).filter(str -> str.length() > 5).collect(Collectors.toList());
+        }
+        if (flag.equals("person")) {
+            return Stream.of(val).filter(Objects::nonNull).map(String::trim).filter(str -> str.length() <= 5).collect(Collectors.toList());
+        }
+        return null;
+    }
+
+
+    public List<String> evaluate(String flag, List<String> val) {
+        if(val==null){
+            return null;
+        }
+        if (flag.equals("company")) {
+            return val.stream().filter(Objects::nonNull).map(String::trim).filter(str -> str.length() > 5).collect(Collectors.toList());
+        }
+        if (flag.equals("person")) {
+            return val.stream().filter(Objects::nonNull).map(String::trim).filter(str -> str.length() <= 5).collect(Collectors.toList());
+        }
+        return null;
+    }
+}

+ 0 - 7
src/main/java/com/winhc/bigdata/udf/verify.java

@@ -34,11 +34,4 @@ public class verify extends UDF {
         }
         return s.toString();
     }
-
-    public static void main(String[] args) {
-        String latitude = "-116.195625548279890";
-        String longitude = "-39.928301139829350";
-        String res = new verify().evaluate(longitude, latitude);
-        System.out.println(res);
-    }
 }