|
@@ -0,0 +1,109 @@
|
|
|
+package com.winhc.bigdata.udf.justice;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.aliyun.odps.udf.UDF;
|
|
|
+import com.winhc.bigdata.utils.BaseUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Author: XuJiakai
|
|
|
+ * 2024/1/15 15:54
|
|
|
+ * <p>
|
|
|
+ * function name: party_summary
|
|
|
+ */
|
|
|
+public class PartySummaryUDF extends UDF {
|
|
|
+ private static String getTitleClasses(String title) {
|
|
|
+ if (title.contains("被申请人")) {
|
|
|
+ return "被申请人";
|
|
|
+ }
|
|
|
+ if (title.contains("申请人")) {
|
|
|
+ return "申请人";
|
|
|
+ }
|
|
|
+ if (title.contains("申请执行人")) {
|
|
|
+ return "申请执行人";
|
|
|
+ }
|
|
|
+ if (title.contains("被执行人")) {
|
|
|
+ return "被执行人";
|
|
|
+ }
|
|
|
+ if (title.contains("被上诉人")) {
|
|
|
+ return "被上诉人";
|
|
|
+ }
|
|
|
+ if (title.contains("上诉人")) {
|
|
|
+ return "上诉人";
|
|
|
+ }
|
|
|
+ if (title.contains("原告")) {
|
|
|
+ return "原告";
|
|
|
+ }
|
|
|
+ if (title.contains("被告")) {
|
|
|
+ return "被告";
|
|
|
+ }
|
|
|
+ if (title.contains("第三人")) {
|
|
|
+ return "第三人";
|
|
|
+ }
|
|
|
+ return "其他";
|
|
|
+ }
|
|
|
+
|
|
|
+ private static List<String> partyList(String title_classes, JSONArray litigant_id) {
|
|
|
+ if (litigant_id == null || litigant_id.isEmpty()) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ List<String> result = new ArrayList<>();
|
|
|
+ for (int i = 0; i < litigant_id.size(); i++) {
|
|
|
+ JSONObject jsonObject = litigant_id.getJSONObject(i);
|
|
|
+ String name = jsonObject.getString("name");
|
|
|
+ String keyno = jsonObject.getString("litigant_id");
|
|
|
+ if (StringUtils.isNotEmpty(name) && StringUtils.isNotEmpty(keyno)) {
|
|
|
+ result.add(keyno + "_" + title_classes);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static List<String> getPartySummary(String party_info_new) {
|
|
|
+ List<String> result = new ArrayList<>();
|
|
|
+ try {
|
|
|
+ if (StringUtils.isEmpty(party_info_new)) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ JSONArray jsonArray = JSONObject.parseArray(party_info_new);
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
+ JSONObject item = jsonArray.getJSONObject(i);
|
|
|
+ String title_original = item.getString("title_original");
|
|
|
+ String titleClasses = getTitleClasses(title_original);
|
|
|
+ JSONArray party_info = item.getJSONArray("party_info");
|
|
|
+ List<String> strings = partyList(titleClasses, party_info);
|
|
|
+ if (strings != null && !strings.isEmpty()) {
|
|
|
+ result.addAll(strings);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public String evaluate(String party_info_new) {
|
|
|
+ if (StringUtils.isEmpty(party_info_new)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ List<String> partySummary = getPartySummary(party_info_new);
|
|
|
+ if (partySummary == null || partySummary.isEmpty()) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return BaseUtils.toString(partySummary);
|
|
|
+ } catch (Exception e) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ 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\":\"被告\"}]");
|
|
|
+ System.out.println(res);
|
|
|
+ }
|
|
|
+}
|