xufei 2 years ago
parent
commit
beb4c901dd
27 changed files with 1438 additions and 7 deletions
  1. 5 0
      pom.xml
  2. 61 0
      src/main/java/com/winhc/task/bean/CancellationAnnouncementOut.java
  3. 19 0
      src/main/java/com/winhc/task/bean/Capital.java
  4. 20 0
      src/main/java/com/winhc/task/bean/CapitalActual.java
  5. 30 0
      src/main/java/com/winhc/task/bean/ChangeSummaryOut.java
  6. 39 0
      src/main/java/com/winhc/task/bean/CompanyAbnormalInfoOut.java
  7. 36 0
      src/main/java/com/winhc/task/bean/CompanyChangeOut.java
  8. 37 0
      src/main/java/com/winhc/task/bean/CompanyCheckInfoOut.java
  9. 41 0
      src/main/java/com/winhc/task/bean/CompanyDoubleRandomCheckInfoOut.java
  10. 27 0
      src/main/java/com/winhc/task/bean/CompanyDoubleRandomCheckResultInfoOut.java
  11. 65 0
      src/main/java/com/winhc/task/bean/CompanyEquityInfoOut.java
  12. 52 0
      src/main/java/com/winhc/task/bean/CompanyHolderOut.java
  13. 43 0
      src/main/java/com/winhc/task/bean/CompanyIllegalInfoOut.java
  14. 144 0
      src/main/java/com/winhc/task/bean/CompanyJudicialAssistanceOut.java
  15. 92 0
      src/main/java/com/winhc/task/bean/CompanyOut.java
  16. 65 0
      src/main/java/com/winhc/task/bean/CompanyPunishmentInfoOut.java
  17. 30 0
      src/main/java/com/winhc/task/bean/CompanyStaffOut.java
  18. 22 0
      src/main/java/com/winhc/task/bean/NewCompany.java
  19. 268 0
      src/main/java/com/winhc/task/common/CompanyChangeArgs.java
  20. 53 0
      src/main/java/com/winhc/task/common/Constant.java
  21. 138 5
      src/main/java/com/winhc/task/util/CsvToXlsxUtil.java
  22. 1 0
      src/main/java/com/winhc/task/util/DateUtils.java
  23. 2 1
      src/main/java/com/winhc/task/util/EasyExcelUtil.java
  24. 55 0
      src/main/java/com/winhc/task/util/OssUtils.java
  25. 3 0
      src/test/java/com/winhc/task/FileSplitV2.java
  26. 85 0
      src/test/java/com/winhc/task/TransToExcelNewCompany.java
  27. 5 1
      src/test/java/com/winhc/task/TransToExcelV2.java

+ 5 - 0
pom.xml

@@ -249,6 +249,11 @@
             <artifactId>poi-ooxml</artifactId>
             <version>3.17</version>
         </dependency>
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>3.13.1</version>
+        </dependency>
 
     </dependencies>
 

+ 61 - 0
src/main/java/com/winhc/task/bean/CancellationAnnouncementOut.java

@@ -0,0 +1,61 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CancellationAnnouncementOut {
+
+    @ExcelProperty("企业名称")
+    private String company_name;
+    @ExcelProperty("企业ID")
+    private String company_id;
+    @ExcelProperty("公告状态")
+    private String status;
+    @ExcelProperty("统一信用代码/注册号")
+    private String credit_no;
+    @ExcelProperty("清算组备案信息-登记机关")
+    private String belong_org;
+    @ExcelProperty("清算组备案信息-清算组备案日期")
+    private String audit_start_date;
+    @ExcelProperty("清算组备案信息-清算组成立日期")
+    private String creditor_start_date;
+    @ExcelProperty("清算组备案信息-注销原因")
+    private String logout_reason;
+    @ExcelProperty("清算组备案信息-清算组办公地址")
+    private String creditor_address;
+    @ExcelProperty("清算组备案信息-清算组联系电话")
+    private String audit_phone;
+    @ExcelProperty("清算组备案信息-清算组负责人")
+    private String creditor_person;
+    @ExcelProperty("清算组备案信息-清算组成员")
+    private String audit_employees;
+    @ExcelProperty("债权人公告信息-统一信用代码/注册号")
+    private String zq_credit_no;
+    @ExcelProperty("债权人公告信息-登记机关")
+    private String zq_belong_org;
+    @ExcelProperty("债权人公告信息-公告期")
+    private String announcement_period;
+    @ExcelProperty("债权人公告信息-公告内容")
+    private String content;
+    @ExcelProperty("债权人公告信息-债权申报联系人")
+    private String zq_person;
+    @ExcelProperty("债权人公告信息-债权申报联系电话")
+    private String zq_audit_phone;
+    @ExcelProperty("债权人公告信息-债权申报地址")
+    private String aq_address;
+    @ExcelProperty("爬取时间")
+    private String create_time;
+    @ExcelProperty("数据更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+
+}

+ 19 - 0
src/main/java/com/winhc/task/bean/Capital.java

@@ -0,0 +1,19 @@
+package com.winhc.task.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author π
+ * @Description:
+ * @date 2022/11/15 10:59
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Capital {
+    private String amomon;
+    private String paymet;
+    private String time;
+}

+ 20 - 0
src/main/java/com/winhc/task/bean/CapitalActual.java

@@ -0,0 +1,20 @@
+package com.winhc.task.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author π
+ * @Description:
+ * @date 2022/11/15 10:59
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CapitalActual {
+    private String amomon;
+    private String paymet;
+    private String time;
+}
+

+ 30 - 0
src/main/java/com/winhc/task/bean/ChangeSummaryOut.java

@@ -0,0 +1,30 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ChangeSummaryOut {
+
+    @ExcelProperty("自有企业id")
+    private String company_id;
+    @ExcelProperty("公司名称")
+    private String name;
+    @ExcelProperty("注册号")
+    private String reg_number;
+    @ExcelProperty("统一信用代码")
+    private String credit_code;
+    @ExcelProperty("维度名称")
+    private String collection;
+    @ExcelProperty("发送时间")
+    private String time;
+    @ExcelProperty("变更时间")
+    private String change_time;
+}

+ 39 - 0
src/main/java/com/winhc/task/bean/CompanyAbnormalInfoOut.java

@@ -0,0 +1,39 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyAbnormalInfoOut {
+
+    @ExcelProperty("公司标识")
+    private String company_id;
+    @ExcelProperty("公司名字")
+    private String company_name;
+    @ExcelProperty("列入异常名录原因")
+    private String put_reason;
+    @ExcelProperty("列入异常名录日期")
+    private String put_date;
+    @ExcelProperty("决定列入异常名录部门")
+    private String put_department;
+    @ExcelProperty("移除异常名录原因")
+    private String remove_reason;
+    @ExcelProperty("移除异常名录日期")
+    private String remove_date;
+    @ExcelProperty("决定移除异常名录部门")
+    private String remove_department;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+
+}

+ 36 - 0
src/main/java/com/winhc/task/bean/CompanyChangeOut.java

@@ -0,0 +1,36 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyChangeOut {
+
+    @ExcelProperty("公司标识")
+    private String company_id;
+    @ExcelProperty("公司名称")
+    private String company_name;
+    @ExcelProperty("变更项目对应的大类")
+    private String category;
+    @ExcelProperty("变更事项")
+    private String change_item;
+    @ExcelProperty("变更前内容")
+    private String content_before;
+    @ExcelProperty("变更后内容")
+    private String content_after;
+    @ExcelProperty("变更日期")
+    private String change_time;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+}

+ 37 - 0
src/main/java/com/winhc/task/bean/CompanyCheckInfoOut.java

@@ -0,0 +1,37 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyCheckInfoOut {
+
+    @ExcelProperty("公司标识id")
+    private String company_id;
+    @ExcelProperty("检查对象")
+    private String company_name;
+    @ExcelProperty("检查实施机关")
+    private String check_org;
+    @ExcelProperty("类型")
+    private String check_type;
+    @ExcelProperty("日期")
+    private String check_date;
+    @ExcelProperty("结果")
+    private String check_result;
+    @ExcelProperty("备注")
+    private String remark;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+
+}

+ 41 - 0
src/main/java/com/winhc/task/bean/CompanyDoubleRandomCheckInfoOut.java

@@ -0,0 +1,41 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyDoubleRandomCheckInfoOut {
+
+    @ExcelProperty("公司标识")
+    private String company_id;
+    @ExcelProperty("企业名称")
+    private String company_name;
+    @ExcelProperty("抽查计划编号")
+    private String check_plan_num;
+    @ExcelProperty("抽查计划名称")
+    private String check_plan_name;
+    @ExcelProperty("抽查任务编号")
+    private String check_task_num;
+    @ExcelProperty("抽查任务名称")
+    private String check_task_name;
+    @ExcelProperty("类型")
+    private String check_type;
+    @ExcelProperty("抽查机关")
+    private String check_department;
+    @ExcelProperty("抽查完成日期")
+    private String check_date;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+
+}

+ 27 - 0
src/main/java/com/winhc/task/bean/CompanyDoubleRandomCheckResultInfoOut.java

@@ -0,0 +1,27 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyDoubleRandomCheckResultInfoOut {
+
+    @ExcelProperty("检查事项")
+    private String check_item;
+    @ExcelProperty("检查结果")
+    private String check_result;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+
+}

+ 65 - 0
src/main/java/com/winhc/task/bean/CompanyEquityInfoOut.java

@@ -0,0 +1,65 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyEquityInfoOut {
+
+    @ExcelProperty("股权出质标的企业")
+    private String related_company_name;
+    @ExcelProperty("股权出质标的企业id")
+    private String related_company_id;
+    @ExcelProperty("省份")
+    private String base;
+    @ExcelProperty("登记编号")
+    private String reg_number;
+
+    @ExcelIgnore
+    private String pledgor_info;
+    @ExcelProperty("出质人")
+    private String pledgor_name;
+
+    @ExcelProperty("出质人证照/证件号码")
+    private String certif_number_pledgor;
+    @ExcelProperty("出质股权数额")
+    private String equity_amount;
+
+    @ExcelIgnore
+    private String pledgee_info;
+    @ExcelProperty("质权人")
+    private String pledgee_name;
+
+    @ExcelProperty("质权人证照/证件号码")
+    private String certif_number_pledgee;
+    @ExcelProperty("股权出质设立登记日期")
+    private String reg_date;
+    @ExcelProperty("状态")
+    private String state;
+    @ExcelProperty("公示日期")
+    private String pub_date;
+    @ExcelProperty("变化情况")
+    private String change_situation;
+    @ExcelProperty("注销日期")
+    private String cancel_date;
+    @ExcelProperty("注销原因")
+    private String cancel_reason;
+    @ExcelProperty("出质人类型")
+    private String pledgor_type;
+    @ExcelProperty("质权人类型")
+    private String pledgee_type;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+}

+ 52 - 0
src/main/java/com/winhc/task/bean/CompanyHolderOut.java

@@ -0,0 +1,52 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyHolderOut {
+
+    @ExcelProperty("公司id")
+    private String company_id;
+    @ExcelProperty("公司名称")
+    private String company_name;
+    @ExcelProperty("股东名称")
+    private String holder_name;
+    @ExcelProperty("股东类型")
+    private String holder_type;
+    @ExcelProperty("认缴出资额")
+    private String amount;
+
+    @ExcelIgnore
+    private String capital;
+    @ExcelIgnore
+    private String capital_actual;
+
+    @ExcelProperty("认缴出资时间")
+    private String capital_time;
+    @ExcelProperty("认缴出资方式")
+    private String capital_pay;
+    @ExcelProperty("实缴出资额")
+    private String capital_actual_amount;
+    @ExcelProperty("实缴出资时间")
+    private String capital_actual_time;
+    @ExcelProperty("实缴出资方式")
+    private String capital_actual_pay;
+
+    @ExcelProperty("股东的出资比例")
+    private String percent;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+}

+ 43 - 0
src/main/java/com/winhc/task/bean/CompanyIllegalInfoOut.java

@@ -0,0 +1,43 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyIllegalInfoOut {
+
+    @ExcelProperty("公司标识")
+    private String company_id;
+    @ExcelProperty("公司名字")
+    private String company_name;
+    @ExcelProperty("列入原因")
+    private String put_reason;
+    @ExcelProperty("列入日期")
+    private String put_date;
+    @ExcelProperty("决定列入部门")
+    private String put_department;
+    @ExcelProperty("移除原因")
+    private String remove_reason;
+    @ExcelProperty("移除日期")
+    private String remove_date;
+    @ExcelProperty("决定移除部门")
+    private String remove_department;
+    @ExcelProperty("类别")
+    private String type;
+    @ExcelProperty("违法事实")
+    private String fact;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+
+}

+ 144 - 0
src/main/java/com/winhc/task/bean/CompanyJudicialAssistanceOut.java

@@ -0,0 +1,144 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyJudicialAssistanceOut {
+
+    @ExcelProperty("冻结股权标的企业")
+    private String company_name;
+    @ExcelProperty("冻结股权标的企业id")
+    private String company_id;
+    @ExcelProperty("公司标识,变更信息,受让人")
+    private String cg_assignee_id;
+    @ExcelProperty("公司标识,变更信息,被执行人")
+    private String cg_executed_person_id;
+    @ExcelProperty("公司标识,续行信息,被执行人")
+    private String gn_executed_person_id;
+    @ExcelProperty("公司标识,解除冻结信息,被执行人")
+    private String lf_executed_person_id;
+    @ExcelProperty("公司标识,冻结信息,被执行人")
+    private String fz_executed_person_id;
+    @ExcelProperty("被执行人id")
+    private String executed_person_id;
+    @ExcelProperty("被执行人")
+    private String executed_person;
+    @ExcelProperty("股权数额")
+    private String equity_amount;
+    @ExcelProperty("执行通知书文号")
+    private String execute_notice_num;
+    @ExcelProperty("执行法院")
+    private String executive_court;
+    @ExcelProperty("类型|状态")
+    private String type_state;
+    @ExcelProperty("冻结信息,执行法院")
+    private String fz_executive_court;
+    @ExcelProperty("冻结信息,执行事项")
+    private String fz_implementation_matters;
+    @ExcelProperty("冻结信息,执行裁定书文号")
+    private String fz_execute_order_num;
+    @ExcelProperty("冻结信息,执行通知书文号")
+    private String fz_execute_notice_num;
+    @ExcelProperty("冻结信息,被执行人")
+    private String fz_executed_person;
+    @ExcelProperty("冻结信息,被执行人持有股权、其它投资权益的数额")
+    private String fz_equity_amount_other;
+    @ExcelProperty("冻结信息,被执行人证照种类")
+    private String fz_license_type;
+    @ExcelProperty("冻结信息,被执行人证照号码")
+    private String fz_license_num;
+    @ExcelProperty("冻结信息,冻结期限自")
+    private String fz_from_date;
+    @ExcelProperty("冻结信息,冻结期限至")
+    private String fz_to_date;
+    @ExcelProperty("冻结信息,冻结期限")
+    private String fz_period;
+    @ExcelProperty("冻结信息,冻结公示日期")
+    private String fz_publicity_date;
+    @ExcelProperty("解除冻结信息,执行法院")
+    private String lf_executive_court;
+    @ExcelProperty("解除冻结信息,执行事项")
+    private String lf_implementation_matters;
+    @ExcelProperty("解除冻结信息,执行裁定书文号")
+    private String lf_execute_order_num;
+    @ExcelProperty("解除冻结信息,执行通知书文号")
+    private String lf_execute_notice_num;
+    @ExcelProperty("解除冻结信息,被执行人")
+    private String lf_executed_person;
+    @ExcelProperty("解除冻结信息,被执行人持有股权、其它投资权益的数额")
+    private String lf_equity_amount_other;
+    @ExcelProperty("解除冻结信息,被执行人证照种类")
+    private String lf_license_type;
+    @ExcelProperty("解除冻结信息,被执行人证照号码")
+    private String lf_license_num;
+    @ExcelProperty("解除冻结信息,解除冻结日期")
+    private String lf_frozen_remove_date;
+    @ExcelProperty("解除冻结信息,公示日期")
+    private String lf_publicity_date;
+    @ExcelProperty("冻结失效信息,失效原因")
+    private String lp_invalidation_reason;
+    @ExcelProperty("冻结失效信息,失效日期")
+    private String lp_invalidation_date;
+    @ExcelProperty("续行信息,执行法院")
+    private String gn_executive_court;
+    @ExcelProperty("续行信息,执行事项")
+    private String gn_implementation_matters;
+    @ExcelProperty("续行信息,执行裁定书文号")
+    private String gn_execute_order_num;
+    @ExcelProperty("续行信息,执行通知书文号")
+    private String gn_execute_notice_num;
+    @ExcelProperty("续行信息,被执行人")
+    private String gn_executed_person;
+    @ExcelProperty("续行信息,被执行人持有股权、其它投资权益的数额")
+    private String gn_equity_amount_other;
+    @ExcelProperty("续行信息,被执行人证照种类")
+    private String gn_license_type;
+    @ExcelProperty("续行信息,被执行人证照号码")
+    private String gn_license_num;
+    @ExcelProperty("续行信息,冻结期限自")
+    private String gn_from_date;
+    @ExcelProperty("续行信息,冻结期限至")
+    private String gn_to_date;
+    @ExcelProperty("续行信息,冻结期限")
+    private String gn_period;
+    @ExcelProperty("续行信息,冻结公示日期")
+    private String gn_publicity_date;
+    @ExcelProperty("变更信息,执行法院")
+    private String cg_executive_court;
+    @ExcelProperty("变更信息,执行事项")
+    private String cg_implementation_matters;
+    @ExcelProperty("变更信息执行裁定书文号")
+    private String cg_execute_order_num;
+    @ExcelProperty("变更信息,执行通知书文号")
+    private String cg_execute_notice_num;
+    @ExcelProperty("变更信息,被执行人")
+    private String cg_executed_person;
+    @ExcelProperty("变更信息,被执行人持有股权数额")
+    private String cg_equity_amount_other;
+    @ExcelProperty("变更信息,被执行人证照种类")
+    private String cg_license_type;
+    @ExcelProperty("变更信息,被执行人证照号码")
+    private String cg_license_num;
+    @ExcelProperty("变更信息,受让人")
+    private String cg_assignee;
+    @ExcelProperty("变更信息,协助执行日期")
+    private String cg_execution_date;
+    @ExcelProperty("变更信息,受让人证照种类")
+    private String cg_assignee_license_type;
+    @ExcelProperty("变更信息,受让人证照号码")
+    private String cg_assignee_license_num;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+}

+ 92 - 0
src/main/java/com/winhc/task/bean/CompanyOut.java

@@ -0,0 +1,92 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyOut {
+    @ExcelProperty("自有企业id")
+    private String company_id;
+    @ExcelProperty("公司名称")
+    private String name;
+    @ExcelProperty("公司历史名称")
+    private String history_names;
+    @ExcelProperty("注册号")
+    private String reg_number;
+    @ExcelProperty("公司类型")
+    private String company_org_type;
+    @ExcelProperty("注册地址")
+    private String reg_location;
+    @ExcelProperty("注册时间")
+    private String estiblish_time;
+    @ExcelProperty("营业时间开始日期")
+    private String from_time;
+    @ExcelProperty("营业时间结束日期")
+    private String to_time;
+    @ExcelProperty("经营范围")
+    private String business_scope;
+    @ExcelProperty("登记机关")
+    private String reg_institute;
+    @ExcelProperty("核准日期")
+    private String approved_time;
+    @ExcelProperty("企业状态")
+    private String reg_status;
+    @ExcelProperty("注册资本")
+    private String reg_capital;
+    @ExcelProperty("组织机构代码")
+    private String org_number;
+    @ExcelProperty("组织机构代码批准单位")
+    private String org_approved_institute;
+    @ExcelProperty("机构类型")
+    private String company_type;
+    @ExcelProperty("统一信用代码")
+    private String credit_code;
+    @ExcelProperty("省份code")
+    private String province_code;
+    @ExcelProperty("市code")
+    private String city_code;
+    @ExcelProperty("县区code")
+    private String county_code;
+    @ExcelProperty("注册资本金额")
+    private String reg_capital_amount;
+    @ExcelProperty("注册资本币种")
+    private String reg_capital_currency;
+    @ExcelProperty("实收资本金额")
+    private String actual_capital_amount;
+    @ExcelProperty("实收资本币种")
+    private String actual_capital_currency;
+    @ExcelProperty("公司注册状态标准化")
+    private String reg_status_std;
+    @ExcelProperty("职工参保人数")
+    private String social_security_staff_num;
+    @ExcelProperty("注销时间")
+    private String cancel_date;
+    @ExcelProperty("注销原因")
+    private String cancel_reason;
+    @ExcelProperty("吊销时间")
+    private String revoke_date;
+    @ExcelProperty("吊销原因")
+    private String revoke_reason;
+    @ExcelProperty("邮箱")
+    private String emails;
+    @ExcelProperty("电话")
+    private String phones;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelIgnore
+    private String legal_entities;
+    @ExcelProperty("法人信息")
+    private String legal_entity_name;
+}

+ 65 - 0
src/main/java/com/winhc/task/bean/CompanyPunishmentInfoOut.java

@@ -0,0 +1,65 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyPunishmentInfoOut {
+
+    @ExcelProperty("公司id")
+    private String company_id;
+    @ExcelProperty("省份")
+    private String base;
+    @ExcelProperty("行政处罚决定书文号")
+    private String punish_number;
+    @ExcelProperty("公司名称")
+    private String company_name;
+    @ExcelProperty("注册号")
+    private String reg_number;
+    @ExcelProperty("法定代表人")
+    private String person_name;
+    @ExcelProperty("法人类型")
+    private String legal_name_type;
+    @ExcelProperty("违法行为类型")
+    private String type;
+    @ExcelProperty("行政处罚内容")
+    private String content;
+    @ExcelProperty("作出行政处罚决定机关名称")
+    private String department_name;
+    @ExcelProperty("作出行政处罚决定日期")
+    private String decision_date;
+    @ExcelProperty("公示日期")
+    private String publish_date;
+    @ExcelProperty("描述")
+    private String description;
+    @ExcelProperty("行政处罚决定书文件下载路径")
+    private String desc_file_path;
+    @ExcelProperty("行政处罚决定书oss文件路径")
+    private String desc_oss_path;
+    @ExcelProperty("详情最后修改时间")
+    private String punish_desc_mod_time;
+    @ExcelProperty("详情备注信息")
+    private String punish_desc_remark;
+    @ExcelProperty("原始链接")
+    private String source;
+    @ExcelProperty("类型")
+    private String tag;
+    @ExcelProperty("备注信息")
+    private String remark;
+    @ExcelProperty("处理后的备注信息")
+    private String remark_clean;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+
+}

+ 30 - 0
src/main/java/com/winhc/task/bean/CompanyStaffOut.java

@@ -0,0 +1,30 @@
+package com.winhc.task.bean;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * company
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CompanyStaffOut {
+
+    @ExcelProperty("公司id")
+    private String company_id;
+    @ExcelProperty("公司名称")
+    private String company_name;
+    @ExcelProperty("成员名称")
+    private String staff_name;
+    @ExcelProperty("任职类型")
+    private String staff_type;
+    @ExcelProperty("创建时间")
+    private String create_time;
+    @ExcelProperty("更新时间")
+    private String update_time;
+    @ExcelProperty("是否删除")
+    private String deleted;
+}

+ 22 - 0
src/main/java/com/winhc/task/bean/NewCompany.java

@@ -0,0 +1,22 @@
+package com.winhc.task.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author π
+ * @Description:
+ * @date 2022/11/14 15:14
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class NewCompany {
+    private CompanyOut company;
+    private List<CompanyHolderOut> company_holder;
+    private List<CompanyStaffOut> company_staff;
+}
+

+ 268 - 0
src/main/java/com/winhc/task/common/CompanyChangeArgs.java

@@ -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;
+    }
+}

+ 53 - 0
src/main/java/com/winhc/task/common/Constant.java

@@ -1,5 +1,7 @@
 package com.winhc.task.common;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -32,6 +34,57 @@ public class Constant {
             })
             .map(Map.Entry::getKey).collect(Collectors.toList());
 
+
+    //输出表头
+    public static final String company_head = "自有企业id@公司名称@公司历史名称@注册号@公司类型@注册地址@注册时间@营业时间开始日期@营业时间结束日期" +
+            "@经营范围@登记机关@核准日期@企业状态@注册资本@组织机构代码@组织机构代码批准单位@机构类型@统一信用代码@省份code@市code@县区code@注册资本金额" +
+            "@注册资本币种@实收资本金额@实收资本币种@公司注册状态标准化@职工参保人数@注销时间@注销原因@吊销时间@吊销原因@邮箱@电话@创建时间@是否删除@更新时间@法人信息";
+
+    public static final String holder_head = "公司id@公司名称@股东名称@股东类型" +
+            "@认缴出资额@认缴出资时间@认缴出资方式@实缴出资额@实缴出资时间@实缴出资方式" +
+            "@股东的出资比例@创建时间@更新时间@是否删除";
+
+    public static final String staff_head = "公司id@公司名称@成员名称@任职类型@创建时间@更新时间@是否删除";
+
+    public static final String change_head = "公司标识@公司名称@变更项目对应的大类@变更事项@变更前内容@变更后内容@变更日期@创建时间@更新时间@是否删除";
+
+    public static final String equity_info_head = "股权出质标的企业@股权出质标的企业id@省份@登记编号@出质人@出质人证照/证件号码@出质股权数额@质权人" +
+            "@质权人证照/证件号码@股权出质设立登记日期@状态@公示日期@变化情况@注销日期@注销原因@出质人类型@质权人类型@创建时间@更新时间@是否删除";
+
+    public static final String judicial_assistance_head = "冻结股权标的企业@冻结股权标的企业id@公司标识,变更信息,受让人@公司标识,变更信息,被执行人" +
+            "@公司标识,续行信息,被执行人@公司标识,解除冻结信息,被执行人@公司标识,冻结信息,被执行人@被执行人id@被执行人@股权数额@执行通知书文号" +
+            "@执行法院@类型|状态@冻结信息,执行法院@冻结信息,执行事项@冻结信息,执行裁定书文号@冻结信息,执行通知书文号" +
+            "@冻结信息,被执行人@冻结信息,被执行人持有股权、其它投资权益的数额@冻结信息,被执行人证照种类@冻结信息,被执行人证照号码@冻结信息,冻结期限自" +
+            "@冻结信息,冻结期限至@冻结信息,冻结期限@冻结信息,冻结公示日期@解除冻结信息,执行法院@解除冻结信息,执行事项@解除冻结信息,执行裁定书文号" +
+            "@解除冻结信息,执行通知书文号@解除冻结信息,被执行人@解除冻结信息,被执行人持有股权、其它投资权益的数额@解除冻结信息,被执行人证照种类" +
+            "@解除冻结信息,被执行人证照号码@解除冻结信息,解除冻结日期@解除冻结信息,公示日期@冻结失效信息,失效原因@冻结失效信息,失效日期" +
+            "@续行信息,执行法院@续行信息,执行事项@续行信息,执行裁定书文号@续行信息,执行通知书文号@续行信息,被执行人@续行信息,被执行人持有股权、其它投资权益的数额" +
+            "@续行信息,被执行人证照种类@续行信息,被执行人证照号码@续行信息,冻结期限自@续行信息,冻结期限至@续行信息,冻结期限@续行信息,冻结公示日期@变更信息,执行法院" +
+            "@变更信息,执行事项@变更信息执行裁定书文号@变更信息,执行通知书文号@变更信息,被执行人@变更信息,被执行人持有股权数额@变更信息,被执行人证照种类" +
+            "@变更信息,被执行人证照号码@变更信息,受让人@变更信息,协助执行日期@变更信息,受让人证照种类@变更信息,受让人证照号码@创建时间@更新时间@是否删除";
+
+    public static final String abnormal_info_head = "公司标识@公司名字@列入异常名录原因@列入异常名录日期@决定列入异常名录部门@移除异常名录原因" +
+            "@移除异常名录日期@决定移除异常名录部门@创建时间@更新时间@是否删除";
+
+    public static final String punishment_info_head = "公司id@省份@行政处罚决定书文号@公司名称@注册号@法定代表人@法人类型@违法行为类型@行政处罚内容" +
+            "@作出行政处罚决定机关名称@作出行政处罚决定日期@公示日期@描述@行政处罚决定书文件下载路径@行政处罚决定书oss文件路径@详情最后修改时间" +
+            "@详情备注信息@原始链接@类型@备注信息@处理后的备注信息@创建时间@更新时间@是否删除";
+
+    public static final String cancellation_announcement_head = "企业名称@企业ID@公告状态@统一信用代码/注册号@清算组备案信息-登记机关@清算组备案信息-清算组备案日期" +
+            "@清算组备案信息-清算组成立日期@清算组备案信息-注销原因@清算组备案信息-清算组办公地址@清算组备案信息-清算组联系电话@清算组备案信息-清算组负责人" +
+            "@清算组备案信息-清算组成员@债权人公告信息-统一信用代码/注册号@债权人公告信息-登记机关@债权人公告信息-公告期@债权人公告信息-公告内容" +
+            "@债权人公告信息-债权申报联系人@债权人公告信息-债权申报联系电话@债权人公告信息-债权申报地址@爬取时间@数据更新时间@是否删除";
+
+    public static final String illegal_info_head = "公司标识@公司名字@列入原因@列入日期@决定列入部门@移除原因@移除日期@决定移除部门@类别@违法事实@创建时间@更新时间@是否删除";
+
+    public static final String check_info_head = "公司标识id@检查对象@检查实施机关@类型@日期@结果@备注@创建时间@更新时间@是否删除";
+
+    public static final String double_random_check_info_head = "公司标识@企业名称@抽查计划编号@抽查计划名称@抽查任务编号@抽查任务名称@类型@抽查机关@抽查完成日期@创建时间@更新时间@是否删除";
+
+    public static final String double_random_check_result_info_head = "检查事项@检查结果@创建时间@更新时间@是否删除";
+
+    public static final String change_summary_head = "自有企业id@公司名称@注册号@统一信用代码@维度名称@发送时间@变更时间";
+
     public static void main(String[] args) {
         System.out.println(PERSON_SUMMARYS);
     }

+ 138 - 5
src/main/java/com/winhc/task/util/CsvToXlsxUtil.java

@@ -1,9 +1,18 @@
 package com.winhc.task.util;
 
+import com.alibaba.excel.EasyExcelFactory;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializeConfig;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils;
-import com.winhc.task.bean.Company;
-import com.winhc.task.bean.Student;
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.model.GetObjectRequest;
+import com.aliyun.oss.model.OSSObject;
+import com.winhc.task.bean.*;
+import com.winhc.task.common.CompanyChangeArgs;
 import org.apache.poi.xssf.usermodel.XSSFRow;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -14,8 +23,11 @@ import org.slf4j.LoggerFactory;
 import java.io.*;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import static com.winhc.task.util.DateUtils.getMinusDay;
 
 /**
  * -----------------------maven 依赖----------------------------
@@ -151,7 +163,6 @@ public class CsvToXlsxUtil {
     public static void jsonToXLSxPlus(String csvFilePath, String xlsxFilePath, String sheetName, List<List<String>> heads) {
         EasyExcelUtil easyExcelUtil = new EasyExcelUtil();
         easyExcelUtil.init(xlsxFilePath, sheetName, heads);
-        easyExcelUtil.init(xlsxFilePath, sheetName);
         int RowNum = -1;
         try {
             File file = new File(csvFilePath);
@@ -184,6 +195,128 @@ public class CsvToXlsxUtil {
         }
     }
 
+    public static void jsonToXLSxNewCompany(String outPathPre, String objectName, List<List<String>> companyHeads,
+                                            List<List<String>> holderHeads, List<List<String>> staffHeads) {
+        Map<String, CompanyChangeArgs> exportArgs = CompanyChangeArgs.EXPORT_ARGS;
+        Function<JSONObject, JSONObject> company_handles = exportArgs.get("company").getHandles();
+        Function<JSONObject, JSONObject> company_holder_handles = exportArgs.get("company_holder").getHandles();
+
+        EasyExcelUtil company = new EasyExcelUtil().init(outPathPre + "new_company.xlsx", "company", companyHeads);
+        EasyExcelUtil company_holder = new EasyExcelUtil().init(outPathPre + "new_company_holder.xlsx", "company_holder", holderHeads);
+        EasyExcelUtil company_staff = new EasyExcelUtil().init(outPathPre + "new_company_staff.xlsx", "company_staff", staffHeads);
+        OSS ossClient = OssUtils.getOssClient();
+
+        int RowNum = -1;
+        try {
+            GetObjectRequest getObjectRequest = new GetObjectRequest("data-exchange-as", objectName);
+            OSSObject ossObject = ossClient.getObject(getObjectRequest);
+            BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent()));
+            String content;
+            do {
+                RowNum++;
+                System.out.println("new_company" + " --> " + RowNum);
+                content = reader.readLine();
+                if (StringUtils.isBlank(content)) {
+                    break;
+                }
+                NewCompany data = JSON.parseObject(content, NewCompany.class);
+                if (data.getCompany() != null) {
+                    String estiblish_time = data.getCompany().getEstiblish_time();
+                    String beforeDay = getMinusDay(30);
+                    if (StringUtils.isBlank(estiblish_time) || estiblish_time.split(" ")[0].compareTo(beforeDay) < 0) {
+                        continue;
+                    }
+
+                    JSONObject j1 = (JSONObject) JSONObject.toJSON(data.getCompany(), SerializeConfig.getGlobalInstance());
+                    CompanyOut companyOut = j1.parseObject(JSONObject.toJSONString(company_handles.apply(j1), SerializerFeature.WriteMapNullValue), CompanyOut.class);
+
+                    company.doExportExcel(Collections.singletonList(companyOut));
+                }
+                if (data.getCompany_holder() != null && data.getCompany_holder().size() > 0) {
+
+                    List<CompanyHolderOut> holderOutList = data
+                            .getCompany_holder()
+                            .stream()
+                            .map(x -> {
+                                JSONObject j1 = (JSONObject) JSONObject.toJSON(x, SerializeConfig.getGlobalInstance());
+                                return j1.parseObject(JSONObject.toJSONString(company_holder_handles.apply(j1), SerializerFeature.WriteMapNullValue), CompanyHolderOut.class);
+                            }).collect(Collectors.toList());
+
+                    company_holder.doExportExcel(holderOutList);
+                }
+                if (data.getCompany_staff() != null && data.getCompany_staff().size() > 0) {
+                    company_staff.doExportExcel(data.getCompany_staff());
+                }
+            } while (true);
+
+        } catch (Exception e) {
+            log.error("CsvToXlsxUtil exception :", e);
+        } finally {
+            try {
+                company.finish();
+                company_holder.finish();
+                company_staff.finish();
+                // 关闭OSSClient。
+                if (ossClient != null) {
+                    ossClient.shutdown();
+                }
+            } catch (Exception e) {
+                log.error("CsvToXlsxUtil close FileOutputStream exception :", e);
+            }
+        }
+    }
+
+    public static <T> void jsonToXLSxChange(String tn, String outPath, String objectName, List<List<String>> heads, Class<T> clazz, Function<JSONObject, JSONObject> handles) {
+        EasyExcelUtil company = new EasyExcelUtil().init(outPath, tn, heads);
+        OSS ossClient = OssUtils.getOssClient();
+
+        int RowNum = -1;
+        try {
+            GetObjectRequest getObjectRequest = new GetObjectRequest(OssUtils.bucketName, objectName);
+            OSSObject ossObject = ossClient.getObject(getObjectRequest);
+            BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent()));
+            String content;
+            List<T> dataList = new ArrayList<>();
+            do {
+                RowNum++;
+                System.out.println(tn + " --> " + RowNum);
+                content = reader.readLine();
+                if (StringUtils.isBlank(content)) {
+                    break;
+                }
+                if (handles != null) {
+                    content = JSONObject.toJSONString(handles.apply(JSON.parseObject(content)), SerializerFeature.WriteMapNullValue);
+                }
+
+                T data = JSON.parseObject(content, clazz);
+                if (data != null) {
+                    dataList.add(data);
+                }
+                if (dataList.size() == 1000) {
+                    company.doExportExcel(dataList);
+                    dataList.clear();
+                }
+            } while (true);
+
+            if (dataList.size() > 0) {
+                company.doExportExcel(dataList);
+            }
+
+        } catch (Exception e) {
+            log.error("CsvToXlsxUtil exception :", e);
+        } finally {
+            try {
+                company.finish();
+                // 关闭OSSClient。
+                if (ossClient != null) {
+                    ossClient.shutdown();
+                }
+            } catch (Exception e) {
+                log.error("CsvToXlsxUtil close FileOutputStream exception :", e);
+            }
+        }
+    }
+
     /**
      * 设置excel文件的sheet名称
      * 获取CSV文件名作为Excel文件的sheet名称

+ 1 - 0
src/main/java/com/winhc/task/util/DateUtils.java

@@ -36,5 +36,6 @@ public class DateUtils {
 
     public static void main(String[] args) {
         System.out.println(getYesterday());
+        System.out.println(getMinusDay(30));
     }
 }

+ 2 - 1
src/main/java/com/winhc/task/util/EasyExcelUtil.java

@@ -36,13 +36,14 @@ public class EasyExcelUtil {
      * @params: sheetName 标签页名字
      * @params: titleList 标题头(第一行)
      */
-    public void init(String absFilePath, String sheetName, List<List<String>> heads) {
+    public EasyExcelUtil init(String absFilePath, String sheetName, List<List<String>> heads) {
         if (excelWriter == null && writeSheet == null) {
             // 这里 需要指定写用哪个标题头去写 可以用class 也可以不用
             excelWriter = EasyExcelFactory.write(absFilePath).head(heads).build();
             // 这里注意 如果同一个sheet只要创建一次
             writeSheet = EasyExcelFactory.writerSheet(sheetName).build();
         }
+        return this;
     }
 
     public void init(String absFilePath, String sheetName) {

+ 55 - 0
src/main/java/com/winhc/task/util/OssUtils.java

@@ -0,0 +1,55 @@
+package com.winhc.task.util;
+
+
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.OSSClientBuilder;
+import com.aliyun.oss.OSSException;
+import com.aliyun.oss.model.*;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+
+/**
+ * @author π
+ * @Description:
+ * @date 2022/11/14 18:02
+ */
+
+public class OssUtils {
+
+    public static OSS ossClient;
+    public static String accessKeyId = "LTAI5tDrbWcjKkzTnJXCrwkC";
+    public static String accessKeySecret = "AWDvBsQc16AYMszNVRga5ANbzuLowy";
+    public static String endpoint = "https://oss-cn-shanghai.aliyuncs.com";
+    public static String bucketName = "data-exchange-as";
+
+
+    public static OSS getOssClient(){
+        return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+    }
+    public static void main(String[] args) {
+
+        try {
+            String objectName = "anshuo/new_company/20221113/new_company.json";
+            // 封装GetObject请求。
+            GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, objectName);
+            // ossObject包含文件所在的存储空间名称、文件名称、文件元信息以及一个输入流。
+            OSSObject ossObject = ossClient.getObject(getObjectRequest);
+
+            BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent()));
+            while (true) {
+                String line = reader.readLine();
+                if (line == null) break;
+                System.out.println("\n" + line);
+            }
+
+        } catch (Exception ce) {
+            System.out.println("Error Message:" + ce.getMessage());
+        } finally {
+            // 关闭OSSClient。
+            if (ossClient != null) {
+                ossClient.shutdown();
+            }
+        }
+    }
+}

+ 3 - 0
src/test/java/com/winhc/task/FileSplitV2.java

@@ -76,5 +76,8 @@ public class FileSplitV2 {
         } catch (Exception e) {
             e.printStackTrace();
         }
+
+        //转换格式
+        TransToExcelV2.toExcel();
     }
 }

+ 85 - 0
src/test/java/com/winhc/task/TransToExcelNewCompany.java

@@ -0,0 +1,85 @@
+package com.winhc.task;
+
+import com.alibaba.fastjson.JSONObject;
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.OSSClientBuilder;
+import com.winhc.task.bean.Company;
+import com.winhc.task.bean.CompanyOut;
+import com.winhc.task.common.CompanyChangeArgs;
+import com.winhc.task.util.CsvToXlsxUtil;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import static com.winhc.task.common.Constant.*;
+import static com.winhc.task.util.CsvToXlsxUtil.jsonToXLSxNewCompany;
+import static com.winhc.task.util.CsvToXlsxUtil.jsonToXLSxChange;
+
+/**
+ * @author π
+ * @Description:
+ * @date 2022/11/7 16:10
+ */
+public class TransToExcelNewCompany {
+
+
+    public static void main(String[] args) {
+
+        String ds = "20221114";
+        //单个变更维度
+        //toTrans(ds,"company_equity_info");
+        //toTrans(ds,"company");
+        //新公司
+        newCompanyToExcel(ds);
+        //变更
+        changeToExcel(ds);
+
+    }
+
+    public static void changeToExcel(String ds) {
+        Map<String, CompanyChangeArgs> exportArgs = CompanyChangeArgs.EXPORT_ARGS;
+        exportArgs.keySet().forEach(tn -> {
+            toTrans(ds, tn);
+        });
+
+    }
+
+    private static void toTrans(String ds, String tn) {
+        Map<String, CompanyChangeArgs> exportArgs = CompanyChangeArgs.EXPORT_ARGS;
+        CompanyChangeArgs args = exportArgs.get(tn);
+        Function<JSONObject, JSONObject> handles = args.getHandles();
+        List<List<String>> company_head_list = Arrays.stream(args.getHead().split("@"))
+                .map(Collections::singletonList)
+                .collect(Collectors.toList());
+        String objectName = "anshuo/dim_change/" + ds + "/" + tn + ".json";
+        String outPath = "D:\\tmp\\data\\change_" + tn + ".xlsx";
+        jsonToXLSxChange(tn, outPath, objectName, company_head_list, args.getClazz(),handles);
+    }
+
+    public static void newCompanyToExcel(String ds) {
+
+        List<List<String>> company_head_list = Arrays.stream(company_head.split("@"))
+                .map(Collections::singletonList)
+                .collect(Collectors.toList());
+
+        List<List<String>> holder_head_list = Arrays.stream(holder_head.split("@"))
+                .map(Collections::singletonList)
+                .collect(Collectors.toList());
+
+        List<List<String>> staff_head_list = Arrays.stream(staff_head.split("@"))
+                .map(Collections::singletonList)
+                .collect(Collectors.toList());
+
+        String objectName = "anshuo/new_company/" + ds + "/new_company.json";
+        String outPathPre = "D:\\tmp\\data\\";
+
+        jsonToXLSxNewCompany(outPathPre, objectName, company_head_list, holder_head_list, staff_head_list);
+    }
+}
+
+

+ 5 - 1
src/test/java/com/winhc/task/TransToExcelV2.java

@@ -16,6 +16,11 @@ import java.util.stream.Collectors;
 public class TransToExcelV2 {
     public static void main(String[] args) {
 
+        toExcel();
+
+    }
+
+    public static void toExcel() {
         String head = "企业名称,法定代表人,注册资本,成立日期,注吊销日期,登记状态,工商注册号,机构组织代码,统一社会信用代码,纳税人识别号,企业类型,所属行业,营业期限,核准日期,登记机关,省份代码,所属地区,详细地址,注册地址城市,经营范围,电话,更多电话,邮箱";
         List<List<String>> headList = Arrays.stream(head.split(","))
                 .map(Collections::singletonList)
@@ -33,7 +38,6 @@ public class TransToExcelV2 {
                         , fileName.replaceAll(".json", ""), headList);
             }
         }
-
     }
 }