Browse Source

feat: 公司类型

JimZhang 2 years ago
parent
commit
3b8347bd94

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

@@ -19,17 +19,17 @@ public class CompanyOrgTypeNew extends UDF {
     public String evaluate(String company_org_type, String company_name, String credit_code) {
         if (isEmpty(company_name)) return null;
 //分公司判断
-        if (contains(company_org_type, "分公司") || endsWith(company_name, "分公司")) {
-            return JSON.toJSONString(Collections.singletonList("分公司"));
+        if (contains(company_org_type, "分") || endsWith(company_name, "分公司")) {
+            return null;
         }
 
 //工商注册类型判断
         Set<String> result = new HashSet<>();
-        if (contains(company_org_type, "股份") && !contains(company_org_type, "合作") && contains(company_name, "公司")) {
+        if (contains(company_org_type, "股份") && !contains(company_org_type, "合作") && contains(company_name, "公司")&&contains(company_name,"股份")) {
             result.add("股份有限公司");
         } else if (contains(company_org_type, "有限责任") || contains(company_name, "有限责任公司") || contains(company_name, "有限公司")) {
             result.add("有限责任公司");
-        } else if (contains(company_org_type, "股份合作")) {
+        } else if (contains(company_org_type, "股份合作")||contains(company_org_type,"股份制")) {
             result.add("股份合作企业");
         } else if (contains(company_org_type, "个体") || contains(company_org_type, "个人经营")) {
             result.add("个体工商户");

+ 61 - 0
src/main/java/com/winhc/bigdata/udf/FinancingRoundStd.java

@@ -0,0 +1,61 @@
+package com.winhc.bigdata.udf;
+
+import com.aliyun.odps.udf.UDF;
+import org.apache.commons.lang.StringUtils;
+
+import java.util.regex.Pattern;
+
+/**
+ * @author ZhangJi
+ * @since 2022-06-02 10:39
+ */
+public class FinancingRoundStd extends UDF {
+    private static final Pattern pattern = Pattern.compile("[^a-zA-Z种子轮/天使定向增发战略融资并购]");
+    private static final Pattern UP_E = Pattern.compile("[e-zE-Z]");
+
+    public String evaluate(String financing) {
+        if (StringUtils.isEmpty(financing)) {
+            return null;
+        }
+        String financing_std = pattern.matcher(financing).replaceAll("");
+        if (StringUtils.isEmpty(financing_std)) {
+            return "其他";
+        }
+        if (financing_std.contains("A") || financing_std.contains("a")) {
+            return "A轮";
+        }
+        if (financing_std.contains("B") || financing_std.contains("b")) {
+            return "B轮";
+        }
+        if (financing_std.contains("C") || financing_std.contains("c")) {
+            return "C轮";
+        }
+        if (financing_std.contains("D") || financing_std.contains("d")) {
+            return "D轮";
+        }
+        if (financing_std.contains("IPO") || financing_std.contains("ipo")) {
+            return "IPO";
+        }
+        if (financing_std.contains("天使") || financing_std.contains("种子")) {
+            return "种子轮/天使轮";
+        }
+        if (financing_std.contains("定向") || financing_std.contains("增发")) {
+            return "定向增发";
+        }
+        if (financing_std.contains("战略")) {
+            return "战略融资";
+        }
+        if (financing_std.contains("并购")) {
+            return "并购";
+        }
+        if (UP_E.matcher(financing_std).find()) {
+            return "E轮及以上";
+        }
+        return "其他";
+
+    }
+
+    public static void main(String[] args) {
+        System.out.println(new FinancingRoundStd().evaluate("股权融资"));
+    }
+}

+ 49 - 0
src/main/java/com/winhc/bigdata/udf/RegStatusStdTrim2.java

@@ -0,0 +1,49 @@
+package com.winhc.bigdata.udf;
+
+import com.aliyun.odps.udf.UDF;
+import com.aliyun.odps.utils.StringUtils;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Pattern;
+
+/**
+ * @author: XuJiakai
+ * 2021/1/27 15:36
+ */
+@SuppressWarnings("all")
+public class RegStatusStdTrim2 extends UDF {
+    private static final Pattern pattern = Pattern.compile("[^\\u4e00-\\u9fa5]");
+    private static final List<String> ZY = Arrays.asList("在业","在营","经营","有效","在册","存续","开业","正常","登记","迁入");
+
+    private static final List<String> TY = Arrays.asList("停业","停止经营","责令关闭","停工");
+    public String evaluate(String reg_status) {
+       return get_std(reg_status);
+    }
+
+    private static String get_std(String str) {
+        if (StringUtils.isEmpty(str)) {
+            return "其他";
+        }
+        String reg_status_clear = pattern.matcher(str).replaceAll("");
+        if (StringUtils.isEmpty(reg_status_clear)) {
+            return "其他";
+        }
+        if(ZY.stream().anyMatch(s->reg_status_clear.contains(s))){
+            return "存续";
+        } else if (reg_status_clear.contains("吊销")) {
+            return "吊销";
+        } else if (reg_status_clear.contains("注销")) {
+            return "注销";
+        } else if (reg_status_clear.contains("清算")) {
+            return "清算";
+        }  else if (reg_status_clear.contains("迁他") || reg_status_clear.contains("迁出")) {
+            return "迁出";
+        } else if (TY.stream().anyMatch(s->reg_status_clear.contains(s))) {
+            return "停业";
+        } else if (reg_status_clear.contains("撤销")) {
+            return "撤销";
+        }
+        return "其他";
+    }
+}