Quellcode durchsuchen

feat: 公司类型识别

JimZhang vor 2 Jahren
Ursprung
Commit
00f940474a
1 geänderte Dateien mit 70 neuen und 0 gelöschten Zeilen
  1. 70 0
      src/main/java/com/winhc/bigdata/udf/CompanyOrgTypeNew.java

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

@@ -0,0 +1,70 @@
+package com.winhc.bigdata.udf;
+
+import com.alibaba.fastjson.JSON;
+import com.aliyun.odps.udf.UDF;
+
+
+import static org.apache.commons.lang.StringUtils.*;
+
+import java.util.*;
+
+/**
+ * @author ZhangJi
+ * @since 2022-05-18 10:55
+ */
+public class CompanyOrgTypeNew extends UDF {
+    private static final List<String> FOREIGN = Arrays.asList("中外", "外资", "外国", "外商");
+    private static final List<String> CHINA = Arrays.asList("国有", "国资");
+
+    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("分公司"));
+        }
+
+//工商注册类型判断
+        Set<String> result = new HashSet<>();
+        if (contains(company_org_type, "股份") && !contains(company_org_type, "合作") && 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, "股份合作")) {
+            result.add("股份合作企业");
+        } else if (contains(company_org_type, "个体") || contains(company_org_type, "个人经营")) {
+            result.add("个体工商户");
+        } else if (contains(company_org_type, "专业合作社") || contains(company_name, "专业合作社") || startsWith(credit_code, "93")) {
+            result.add("农民专业合作社");
+        } else if (contains(company_org_type, "集体")) {
+            result.add("集体所有制");
+        } else if (contains(company_org_type, "合伙")) {
+            if (company_org_type.contains("有限")) {
+                result.add("有限合伙");
+            } else if (company_org_type.contains("普通")) {
+                result.add("普通合伙");
+            }
+        } else if (contains(company_org_type, "联营")) {
+            result.add("联营企业");
+        }
+        // 资金类型
+        if (containsAny(company_org_type, "港澳台")) {
+            result.add("港、澳、台商投资企业");
+        } else if (FOREIGN.stream().anyMatch(s -> contains(company_org_type, s))) {
+            result.add("外商投资企业");
+        } else if (CHINA.stream().anyMatch(s -> contains(company_org_type, s))) {
+            result.add("国有企业");
+        }
+        //特殊类型
+        if (contains(company_org_type, "独资")) {
+            result.add("独资企业");
+        }
+        if (result.isEmpty()) {
+            return null;
+        }
+        return JSON.toJSONString(result);
+    }
+
+    public static void main(String[] args) {
+        System.out.println(new CompanyOrgTypeNew().evaluate("分公司", "雅诗兰黛(上海)商贸有限公司北京分公司", "91110105MA01Q19Q2L"));
+    }
+}