Browse Source

fix: party_summary函数

许家凯 1 year ago
parent
commit
71da762c21
1 changed files with 77 additions and 8 deletions
  1. 77 8
      src/main/java/com/winhc/bigdata/udf/justice/PartySummaryUDF.java

+ 77 - 8
src/main/java/com/winhc/bigdata/udf/justice/PartySummaryUDF.java

@@ -4,11 +4,13 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.aliyun.odps.udf.UDF;
 import com.aliyun.odps.udf.UDF;
+import com.winhc.bigdata.bean.Entity;
+import com.winhc.bigdata.bean.case_no.CaseNoTitleEntity;
 import com.winhc.bigdata.utils.BaseUtils;
 import com.winhc.bigdata.utils.BaseUtils;
+import com.winhc.bigdata.utils.CaseNoPropertiesUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 
 /**
 /**
  * @Author: XuJiakai
  * @Author: XuJiakai
@@ -17,7 +19,55 @@ import java.util.List;
  * function name: party_summary
  * function name: party_summary
  */
  */
 public class PartySummaryUDF extends UDF {
 public class PartySummaryUDF extends UDF {
+
+
+    private static final Map<String, String> TITLE_SUMMARY_MAP = new HashMap<String, String>() {
+        {
+            put("再审申请人", "申请人");
+            put("原告", "原告");
+            put("被强制医疗人", "其他");
+            put("被上诉人", "被上诉人");
+            put("原审原告", "其他");
+            put("赔偿义务机关", "其他");
+            put("原公诉机关", "其他");
+            put("救助申请人", "申请人");
+            put("罪犯", "其他");
+            put("原审被告", "其他");
+            put("引渡请求国", "其他");
+            put("申诉人", "其他");
+            put("当事人", "其他");
+            put("被告人", "其他");
+            put("被申诉人", "其他");
+            put("原申请人", "其他");
+            put("被请求引渡人", "其他");
+            put("申请人", "申请人");
+            put("复议申请人", "申请人");
+            put("申请执行人", "申请执行人");
+            put("赔偿请求人", "其他");
+            put("抗诉机关", "其他");
+            put("被申请人", "被申请人");
+            put("原被申请人", "其他");
+            put("原审被告人", "其他");
+            put("被执行人", "被执行人");
+            put("上诉人", "上诉人");
+            put("被告", "被告");
+            put("复议被申请人", "被申请人");
+            put("申请复议人", "其他");
+            put("异议人", "其他");
+            put("申请机关", "其他");
+            put("公诉人", "其他");
+
+        }
+    };
+
+    private static String getTitleClassesByMap(String title) {
+        return TITLE_SUMMARY_MAP.getOrDefault(title, "其他");
+    }
+
     private static String getTitleClasses(String title) {
     private static String getTitleClasses(String title) {
+        if (StringUtils.isEmpty(title)) {
+            return "其他";
+        }
         if (title.contains("被申请人")) {
         if (title.contains("被申请人")) {
             return "被申请人";
             return "被申请人";
         }
         }
@@ -36,15 +86,18 @@ public class PartySummaryUDF extends UDF {
         if (title.contains("上诉人")) {
         if (title.contains("上诉人")) {
             return "上诉人";
             return "上诉人";
         }
         }
+        if (title.contains("第三人")) {
+            return "第三人";
+        }
+        if (title.contains("原审")) {
+            return "其他";
+        }
         if (title.contains("原告")) {
         if (title.contains("原告")) {
             return "原告";
             return "原告";
         }
         }
         if (title.contains("被告")) {
         if (title.contains("被告")) {
             return "被告";
             return "被告";
         }
         }
-        if (title.contains("第三人")) {
-            return "第三人";
-        }
         return "其他";
         return "其他";
     }
     }
 
 
@@ -73,8 +126,8 @@ public class PartySummaryUDF extends UDF {
             JSONArray jsonArray = JSONObject.parseArray(party_info_new);
             JSONArray jsonArray = JSONObject.parseArray(party_info_new);
             for (int i = 0; i < jsonArray.size(); i++) {
             for (int i = 0; i < jsonArray.size(); i++) {
                 JSONObject item = jsonArray.getJSONObject(i);
                 JSONObject item = jsonArray.getJSONObject(i);
-                String title_original = item.getString("title_original");
-                String titleClasses = getTitleClasses(title_original);
+//                String titleClasses = getTitleClasses(item.getString("title_original"));
+                String titleClasses = getTitleClassesByMap(item.getString("title_std"));
                 JSONArray party_info = item.getJSONArray("party_info");
                 JSONArray party_info = item.getJSONArray("party_info");
                 List<String> strings = partyList(titleClasses, party_info);
                 List<String> strings = partyList(titleClasses, party_info);
                 if (strings != null && !strings.isEmpty()) {
                 if (strings != null && !strings.isEmpty()) {
@@ -103,7 +156,23 @@ public class PartySummaryUDF extends UDF {
     }
     }
 
 
     public static void main(String[] args) {
     public static void main(String[] args) {
-        String res = new PartySummaryUDF().evaluate("[{\"party_info\":[{\"litigant_id\":\"c342f2593121441b04f8e7e40c6025a9\",\"name\":\"江西星森国际贸易有限公司\"}],\"show_level\":0,\"title_original\":\"原告\",\"title_std\":\"原告\"},{\"party_info\":[{\"litigant_id\":\"51cc7fece6c443b7ab6934eadd376405\",\"name\":\"深圳市颢赫科技有限公司\"},{\"litigant_id\":\"\",\"name\":\"蔡湘池\"}],\"show_level\":1,\"title_original\":\"被告\",\"title_std\":\"被告\"}]");
+        String res = new PartySummaryUDF().evaluate("[{\"party_info\":[{\"litigant_id\":\"\",\"name\":\"平安保险东莞分公司\"}],\"show_level\":0,\"title_original\":\"原告\",\"title_std\":\"原告\"},{\"party_info\":[{\"litigant_id\":\"\",\"name\":\"沧州顺驰汽车公司\"},{\"litigant_id\":\"\",\"name\":\"崔建伟\"}],\"show_level\":1,\"title_original\":\"被告\",\"title_std\":\"被告\"}]");
         System.out.println(res);
         System.out.println(res);
+       /* Entity<List<String>, Map<String, Set<CaseNoTitleEntity>>> caseNoKeyword =
+                CaseNoPropertiesUtils.getCaseNoKeyword();
+        Set<String> set = new HashSet<>();
+
+        Collection<Set<CaseNoTitleEntity>> values = caseNoKeyword._2.values();
+        for (Set<CaseNoTitleEntity> value : values) {
+            for (CaseNoTitleEntity caseNoTitleEntity : value) {
+                set.addAll(caseNoTitleEntity.getCore());
+            }
+        }
+        Set<String> ss = new HashSet<>();
+        for (String s : set) {
+            ss.add(getTitleClassesByMap(s));
+            System.out.println(s + " " + getTitleClassesByMap(s));
+        }
+        System.out.println(ss);*/
     }
     }
 }
 }