|
@@ -0,0 +1,268 @@
|
|
|
+package com.winhc.task.common;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.winhc.task.bean.*;
|
|
|
+import com.winhc.task.util.BaseUtils;
|
|
|
+import lombok.Data;
|
|
|
+import lombok.NoArgsConstructor;
|
|
|
+import lombok.experimental.ExtensionMethod;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import static com.winhc.task.common.Constant.*;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author π
|
|
|
+ * @since 2021-11-2 15:50
|
|
|
+ */
|
|
|
+@Data
|
|
|
+@NoArgsConstructor
|
|
|
+@ExtensionMethod({BaseUtils.class})
|
|
|
+public class CompanyChangeArgs<T> {
|
|
|
+
|
|
|
+ private List<String> exportFields;
|
|
|
+
|
|
|
+ private Function<JSONObject, JSONObject> handles;
|
|
|
+
|
|
|
+ private List<String> changeFields;
|
|
|
+
|
|
|
+ private Function<JSONObject, String> changeTimeHandles;
|
|
|
+
|
|
|
+ private Class<T> clazz;
|
|
|
+
|
|
|
+ private String head;
|
|
|
+
|
|
|
+ public static final Map<String, CompanyChangeArgs> EXPORT_ARGS = createArgs();
|
|
|
+
|
|
|
+ public CompanyChangeArgs(List<String> exportFields, Function<JSONObject, JSONObject> handles, List<String> changeFields, Class<T> clazz, String head) {
|
|
|
+ this.exportFields = exportFields;
|
|
|
+ this.handles = handles;
|
|
|
+ this.changeFields = changeFields;
|
|
|
+ this.clazz = clazz;
|
|
|
+ this.head = head;
|
|
|
+ }
|
|
|
+
|
|
|
+ private static Map<String, CompanyChangeArgs> createArgs() {
|
|
|
+ HashMap<String, CompanyChangeArgs> a = new HashMap<>();
|
|
|
+ a.put("company", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_id", "name", "history_names", "reg_number", "company_org_type", "reg_location"
|
|
|
+ , "estiblish_time", "from_time", "to_time", "business_scope", "reg_institute", "approved_time"
|
|
|
+ , "reg_status", "reg_capital", "org_number", "org_approved_institute", "company_type"
|
|
|
+ , "credit_code", "province_code", "city_code", "county_code", "reg_capital_amount"
|
|
|
+ , "reg_capital_currency", "actual_capital_amount", "actual_capital_currency", "reg_status_std"
|
|
|
+ , "social_security_staff_num", "cancel_date", "cancel_reason", "revoke_date", "revoke_reason"
|
|
|
+ , "emails", "phones", "create_time", "deleted", "update_time", "legal_entity_name")
|
|
|
+ , (j) -> {
|
|
|
+ JSONObject tj = (JSONObject) j;
|
|
|
+ JSONArray legals = tj.getJSONArray("legal_entities");
|
|
|
+ String legal_entity_name = "";
|
|
|
+ if (legals != null) {
|
|
|
+ legal_entity_name = legals.toJavaList(JSONObject.class)
|
|
|
+ .stream()
|
|
|
+ .filter(j2 -> "0".equals(j2.getString("deleted")))
|
|
|
+ .map(j2 -> j2.getString("name"))
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.joining("、"));
|
|
|
+ }
|
|
|
+ tj.put("legal_entity_name", legal_entity_name);
|
|
|
+ return tj;
|
|
|
+ }
|
|
|
+ , Arrays.asList("name", "reg_location", "business_scope", "approved_time", "reg_capital_amount"
|
|
|
+ , "reg_status_std", "deleted", "legal_entities")
|
|
|
+ , CompanyOut.class
|
|
|
+ , company_head
|
|
|
+ ));
|
|
|
+ a.put("company_holder", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_id", "company_name", "holder_name", "holder_type", "amount", "capital"
|
|
|
+ , "capital_actual", "percent", "create_time", "update_time", "deleted")
|
|
|
+ , (j) -> {
|
|
|
+ JSONObject tj = (JSONObject) j;
|
|
|
+ Double amount = tj.getDouble("amount");
|
|
|
+ JSONArray capital = tj.getJSONArray("capital");
|
|
|
+ Capital c1 = new Capital();
|
|
|
+ if (capital != null) {
|
|
|
+ c1 = capital.toJavaList(Capital.class)
|
|
|
+ .stream()
|
|
|
+ .peek(j2 -> {
|
|
|
+ if (StringUtils.isBlank(j2.getTime())) {
|
|
|
+ j2.setTime("");
|
|
|
+ }
|
|
|
+ }).max(Comparator.comparing(Capital::getTime)).orElse(new Capital());
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONArray capitalActual = tj.getJSONArray("capital_actual");
|
|
|
+ CapitalActual c2 = new CapitalActual();
|
|
|
+ if (capitalActual != null) {
|
|
|
+ c2 = capitalActual.toJavaList(CapitalActual.class)
|
|
|
+ .stream()
|
|
|
+ .peek(j2 -> {
|
|
|
+ if (StringUtils.isBlank(j2.getTime())) {
|
|
|
+ j2.setTime("");
|
|
|
+ }
|
|
|
+ }).max(Comparator.comparing(CapitalActual::getTime)).orElse(new CapitalActual());
|
|
|
+ }
|
|
|
+ if (amount == null || amount <= 0D) {
|
|
|
+ tj.put("amount", "");
|
|
|
+ tj.put("percent", "");
|
|
|
+ } else {
|
|
|
+ tj.put("amount", amount + "万元");
|
|
|
+ }
|
|
|
+ tj.put("capital_time", c1.getTime());
|
|
|
+ tj.put("capital_pay", c1.getPaymet());
|
|
|
+
|
|
|
+ tj.put("capital_actual_amount", c2.getAmomon());
|
|
|
+ tj.put("capital_actual_time", c2.getTime());
|
|
|
+ tj.put("capital_actual_pay", c2.getPaymet());
|
|
|
+ return tj;
|
|
|
+ }
|
|
|
+ , Arrays.asList("holder_name", "amount", "percent", "deleted")
|
|
|
+ , CompanyHolderOut.class
|
|
|
+ , holder_head
|
|
|
+ ));
|
|
|
+ a.put("company_staff", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_id", "company_name", "staff_name", "staff_type", "create_time", "update_time"
|
|
|
+ , "deleted")
|
|
|
+ , null
|
|
|
+ , Arrays.asList("staff_name", "staff_type", "deleted")
|
|
|
+ , CompanyStaffOut.class
|
|
|
+ , staff_head
|
|
|
+ ));
|
|
|
+ a.put("company_change", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_id", "company_name", "category", "change_item", "content_before", "content_after"
|
|
|
+ , "change_time", "create_time", "update_time", "deleted")
|
|
|
+ , null
|
|
|
+ , Arrays.asList("change_item", "change_time")
|
|
|
+ , CompanyChangeOut.class
|
|
|
+ , change_head
|
|
|
+ ));
|
|
|
+ a.put("company_equity_info", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("related_company_name", "related_company_id", "base", "reg_number", "pledgor_info"
|
|
|
+ , "certif_number_pledgor", "equity_amount", "pledgee_info", "certif_number_pledgee", "reg_date"
|
|
|
+ , "state", "pub_date", "change_situation", "cancel_date", "cancel_reason", "pledgor_type"
|
|
|
+ , "pledgee_type", "create_time", "update_time", "deleted")
|
|
|
+ , (j) -> {
|
|
|
+ JSONObject tj = (JSONObject) j;
|
|
|
+ JSONArray pledgor_info = tj.getJSONArray("pledgor_info");
|
|
|
+ String pledgor_name = "";
|
|
|
+ if (pledgor_info != null) {
|
|
|
+ pledgor_name = pledgor_info.toJavaList(JSONObject.class)
|
|
|
+ .stream()
|
|
|
+ .map(j2 -> j2.getString("pledgor"))
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.joining("、"));
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONArray pledgee_info = tj.getJSONArray("pledgee_info");
|
|
|
+ String pledgee_name = "";
|
|
|
+ if (pledgee_info != null) {
|
|
|
+ pledgee_name = pledgee_info.toJavaList(JSONObject.class)
|
|
|
+ .stream()
|
|
|
+ .map(j2 -> j2.getString("pledgee"))
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.joining("、"));
|
|
|
+ }
|
|
|
+
|
|
|
+ tj.put("pledgor_name", pledgor_name);
|
|
|
+ tj.put("pledgee_name", pledgee_name);
|
|
|
+ return tj;
|
|
|
+ }
|
|
|
+ , Arrays.asList("related_company_name", "related_company_id", "reg_number", "pledgor_info"
|
|
|
+ , "pledgee_info", "deleted")
|
|
|
+ , CompanyEquityInfoOut.class
|
|
|
+ , equity_info_head
|
|
|
+ ));
|
|
|
+ a.put("company_judicial_assistance", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_name", "company_id", "cg_assignee_id", "cg_executed_person_id", "gn_executed_person_id"
|
|
|
+ , "lf_executed_person_id", "fz_executed_person_id", "executed_person_id", "executed_person"
|
|
|
+ , "equity_amount", "execute_notice_num", "executive_court", "type_state", "fz_executive_court"
|
|
|
+ , "fz_implementation_matters", "fz_execute_order_num", "fz_execute_notice_num", "fz_executed_person"
|
|
|
+ , "fz_equity_amount_other", "fz_license_type", "fz_license_num", "fz_from_date", "fz_to_date"
|
|
|
+ , "fz_period", "fz_publicity_date", "lf_executive_court", "lf_implementation_matters"
|
|
|
+ , "lf_execute_order_num", "lf_execute_notice_num", "lf_executed_person", "lf_equity_amount_other"
|
|
|
+ , "lf_license_type", "lf_license_num", "lf_frozen_remove_date", "lf_publicity_date"
|
|
|
+ , "lp_invalidation_reason", "lp_invalidation_date", "gn_executive_court", "gn_implementation_matters"
|
|
|
+ , "gn_execute_order_num", "gn_execute_notice_num", "gn_executed_person", "gn_equity_amount_other"
|
|
|
+ , "gn_license_type", "gn_license_num", "gn_from_date", "gn_to_date", "gn_period", "gn_publicity_date"
|
|
|
+ , "cg_executive_court", "cg_implementation_matters", "cg_execute_order_num", "cg_execute_notice_num"
|
|
|
+ , "cg_executed_person", "cg_equity_amount_other", "cg_license_type", "cg_license_num"
|
|
|
+ , "cg_assignee", "cg_execution_date", "cg_assignee_license_type", "cg_assignee_license_num"
|
|
|
+ , "create_time", "update_time", "deleted")
|
|
|
+ , null
|
|
|
+ , Arrays.asList("company_name", "company_id", "executed_person", "execute_notice_num", "type_state"
|
|
|
+ , "fz_publicity_date", "lf_publicity_date", "lp_invalidation_date"
|
|
|
+ , "gn_publicity_date", "cg_execution_date", "deleted")
|
|
|
+ , CompanyJudicialAssistanceOut.class
|
|
|
+ , judicial_assistance_head
|
|
|
+ ));
|
|
|
+ a.put("company_abnormal_info", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_id", "company_name", "put_reason", "put_date", "put_department", "remove_reason"
|
|
|
+ , "remove_date", "remove_department", "create_time", "update_time", "deleted")
|
|
|
+ , null
|
|
|
+ , Arrays.asList("company_name", "put_reason", "put_date", "remove_reason", "remove_date")
|
|
|
+ , CompanyAbnormalInfoOut.class
|
|
|
+ , abnormal_info_head
|
|
|
+ ));
|
|
|
+ a.put("company_punishment_info", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_id", "base", "punish_number", "company_name", "reg_number", "person_name"
|
|
|
+ , "legal_name_type", "type", "content", "department_name", "decision_date", "publish_date"
|
|
|
+ , "description", "desc_file_path", "desc_oss_path", "punish_desc_mod_time", "punish_desc_remark"
|
|
|
+ , "source", "tag", "remark", "remark_clean", "create_time", "update_time", "deleted")
|
|
|
+ , null
|
|
|
+ , Arrays.asList("punish_number", "company_name", "publish_date")
|
|
|
+ , CompanyPunishmentInfoOut.class
|
|
|
+ , punishment_info_head
|
|
|
+ ));
|
|
|
+ a.put("cancellation_announcement", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_name", "company_id", "status", "credit_no", "belong_org", "audit_start_date"
|
|
|
+ , "creditor_start_date", "logout_reason", "creditor_address", "audit_phone", "creditor_person"
|
|
|
+ , "audit_employees", "zq_credit_no", "zq_belong_org", "announcement_period", "content", "zq_person"
|
|
|
+ , "zq_audit_phone", "aq_address", "create_time", "update_time", "deleted")
|
|
|
+ , null
|
|
|
+ , Arrays.asList("company_name", "audit_start_date")
|
|
|
+ , CancellationAnnouncementOut.class
|
|
|
+ , cancellation_announcement_head
|
|
|
+ ));
|
|
|
+ a.put("company_illegal_info", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_id", "company_name", "put_reason", "put_date", "put_department", "remove_reason"
|
|
|
+ , "remove_date", "remove_department", "type", "fact", "create_time", "update_time", "deleted")
|
|
|
+ , null
|
|
|
+ , Arrays.asList("company_name", "put_reason", "put_date", "remove_reason", "remove_date")
|
|
|
+ , CompanyIllegalInfoOut.class
|
|
|
+ , illegal_info_head
|
|
|
+ ));
|
|
|
+ a.put("company_check_info", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_id", "company_name", "check_org", "check_type", "check_date", "check_result", "remark"
|
|
|
+ , "create_time", "update_time", "deleted")
|
|
|
+ , null
|
|
|
+ , Arrays.asList("company_name", "check_org", "check_type", "check_date", "check_result")
|
|
|
+ , CompanyCheckInfoOut.class
|
|
|
+ , check_info_head
|
|
|
+ ));
|
|
|
+ a.put("company_double_random_check_info", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_id", "company_name", "check_plan_num", "check_plan_name", "check_task_num", "check_task_name"
|
|
|
+ , "check_type", "check_department", "check_date", "create_time", "update_time", "deleted")
|
|
|
+ , null
|
|
|
+ , Arrays.asList("company_name", "check_plan_num", "check_task_num", "check_date")
|
|
|
+ , CompanyDoubleRandomCheckInfoOut.class
|
|
|
+ , double_random_check_info_head
|
|
|
+ ));
|
|
|
+ a.put("change_summary", new CompanyChangeArgs(
|
|
|
+ Arrays.asList("company_id", "name", "reg_number", "credit_code", "collection"
|
|
|
+ , "time", "change_time")
|
|
|
+ , null
|
|
|
+ , Arrays.asList("company_id", "name", "reg_number", "credit_code", "collection"
|
|
|
+ , "time", "change_time")
|
|
|
+ , ChangeSummaryOut.class
|
|
|
+ , change_summary_head
|
|
|
+ ));
|
|
|
+ return a;
|
|
|
+ }
|
|
|
+}
|