xufei 2 年 前
コミット
814d847a01

+ 5 - 2
src/main/java/com/winhc/task/bean/CancellationAnnouncementOut.java

@@ -1,5 +1,6 @@
 package com.winhc.task.bean;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,8 +13,10 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CancellationAnnouncementOut {
-
-    @ExcelProperty("企业名称")
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
+    @ExcelProperty("公司名称")
     private String company_name;
     @ExcelProperty("企业ID")
     private String company_id;

+ 4 - 1
src/main/java/com/winhc/task/bean/ChangeSummaryOut.java

@@ -1,5 +1,6 @@
 package com.winhc.task.bean;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class ChangeSummaryOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("自有企业id")
     private String company_id;
     @ExcelProperty("公司名称")

+ 4 - 1
src/main/java/com/winhc/task/bean/CompanyAbnormalInfoOut.java

@@ -1,5 +1,6 @@
 package com.winhc.task.bean;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CompanyAbnormalInfoOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("公司标识")
     private String company_id;
     @ExcelProperty("公司名字")

+ 4 - 1
src/main/java/com/winhc/task/bean/CompanyChangeOut.java

@@ -1,5 +1,6 @@
 package com.winhc.task.bean;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CompanyChangeOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("公司标识")
     private String company_id;
     @ExcelProperty("公司名称")

+ 4 - 1
src/main/java/com/winhc/task/bean/CompanyCheckInfoOut.java

@@ -1,5 +1,6 @@
 package com.winhc.task.bean;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CompanyCheckInfoOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("公司标识id")
     private String company_id;
     @ExcelProperty("检查对象")

+ 4 - 1
src/main/java/com/winhc/task/bean/CompanyDoubleRandomCheckInfoOut.java

@@ -1,5 +1,6 @@
 package com.winhc.task.bean;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CompanyDoubleRandomCheckInfoOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("公司标识")
     private String company_id;
     @ExcelProperty("企业名称")

+ 4 - 1
src/main/java/com/winhc/task/bean/CompanyDoubleRandomCheckResultInfoOut.java

@@ -1,5 +1,6 @@
 package com.winhc.task.bean;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CompanyDoubleRandomCheckResultInfoOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("检查事项")
     private String check_item;
     @ExcelProperty("检查结果")

+ 3 - 1
src/main/java/com/winhc/task/bean/CompanyEquityInfoOut.java

@@ -13,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CompanyEquityInfoOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("股权出质标的企业")
     private String related_company_name;
     @ExcelProperty("股权出质标的企业id")

+ 3 - 1
src/main/java/com/winhc/task/bean/CompanyHolderOut.java

@@ -13,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CompanyHolderOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("公司id")
     private String company_id;
     @ExcelProperty("公司名称")

+ 4 - 1
src/main/java/com/winhc/task/bean/CompanyIllegalInfoOut.java

@@ -1,5 +1,6 @@
 package com.winhc.task.bean;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CompanyIllegalInfoOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("公司标识")
     private String company_id;
     @ExcelProperty("公司名字")

+ 4 - 1
src/main/java/com/winhc/task/bean/CompanyJudicialAssistanceOut.java

@@ -1,5 +1,6 @@
 package com.winhc.task.bean;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CompanyJudicialAssistanceOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("冻结股权标的企业")
     private String company_name;
     @ExcelProperty("冻结股权标的企业id")

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

@@ -1,6 +1,7 @@
 package com.winhc.task.bean;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,7 +13,11 @@ import lombok.NoArgsConstructor;
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
+@ExcelIgnoreUnannotated
 public class CompanyOut {
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("自有企业id")
     private String company_id;
     @ExcelProperty("公司名称")

+ 4 - 1
src/main/java/com/winhc/task/bean/CompanyPunishmentInfoOut.java

@@ -1,5 +1,6 @@
 package com.winhc.task.bean;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CompanyPunishmentInfoOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("公司id")
     private String company_id;
     @ExcelProperty("省份")

+ 4 - 1
src/main/java/com/winhc/task/bean/CompanyStaffOut.java

@@ -1,5 +1,6 @@
 package com.winhc.task.bean;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,7 +13,9 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 public class CompanyStaffOut {
-
+    //@ExcelIgnore
+    @ExcelProperty("原始名称")
+    private String old_name;
     @ExcelProperty("公司id")
     private String company_id;
     @ExcelProperty("公司名称")

+ 7 - 6
src/main/java/com/winhc/task/util/CsvToXlsxUtil.java

@@ -196,14 +196,14 @@ public class CsvToXlsxUtil {
     }
 
     public static void jsonToXLSxNewCompany(String outPathPre, String objectName, List<List<String>> companyHeads,
-                                            List<List<String>> holderHeads, List<List<String>> staffHeads) {
+                                            List<List<String>> holderHeads, List<List<String>> staffHeads, Set<String> excludeColumnFiledNames) {
         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);
+        EasyExcelUtil company = new EasyExcelUtil().init(outPathPre + "new_company.xlsx", "company", companyHeads, excludeColumnFiledNames);
+        EasyExcelUtil company_holder = new EasyExcelUtil().init(outPathPre + "new_company_holder.xlsx", "company_holder", holderHeads, excludeColumnFiledNames);
+        EasyExcelUtil company_staff = new EasyExcelUtil().init(outPathPre + "new_company_staff.xlsx", "company_staff", staffHeads, excludeColumnFiledNames);
         OSS ossClient = OssUtils.getOssClient();
 
         int RowNum = -1;
@@ -266,8 +266,9 @@ public class CsvToXlsxUtil {
         }
     }
 
-    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);
+    public static <T> void jsonToXLSxChange(String tn, String outPath, String objectName, List<List<String>> heads
+            , Class<T> clazz, Function<JSONObject, JSONObject> handles, Set<String> excludeColumnFiledNames) {
+        EasyExcelUtil company = new EasyExcelUtil().init(outPath, tn, heads, excludeColumnFiledNames);
         OSS ossClient = OssUtils.getOssClient();
 
         int RowNum = -1;

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

@@ -2,6 +2,7 @@ package com.winhc.task.util;
 
 import com.alibaba.excel.EasyExcelFactory;
 import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.builder.ExcelWriterBuilder;
 import com.alibaba.excel.write.metadata.WriteSheet;
 
 import java.io.File;
@@ -36,16 +37,25 @@ public class EasyExcelUtil {
      * @params: sheetName 标签页名字
      * @params: titleList 标题头(第一行)
      */
-    public EasyExcelUtil init(String absFilePath, String sheetName, List<List<String>> heads) {
+    public EasyExcelUtil init(String absFilePath, String sheetName, List<List<String>> heads, Set<String> excludeColumnFiledNames) {
         if (excelWriter == null && writeSheet == null) {
+            ExcelWriterBuilder excelWriterBuilder = EasyExcelFactory.write(absFilePath).head(heads).excludeColumnFieldNames(excludeColumnFiledNames);
+            if (excludeColumnFiledNames != null && excludeColumnFiledNames.size() > 0) {
+                //excelWriterBuilder.excludeColumnIndexes(new HashSet<>(0));
+                excelWriterBuilder.excludeColumnFieldNames(excludeColumnFiledNames);
+            }
             // 这里 需要指定写用哪个标题头去写 可以用class 也可以不用
-            excelWriter = EasyExcelFactory.write(absFilePath).head(heads).build();
+            excelWriter = excelWriterBuilder.build();
             // 这里注意 如果同一个sheet只要创建一次
             writeSheet = EasyExcelFactory.writerSheet(sheetName).build();
         }
         return this;
     }
 
+    public EasyExcelUtil init(String absFilePath, String sheetName, List<List<String>> heads) {
+        return this.init(absFilePath, sheetName, heads, null);
+    }
+
     public void init(String absFilePath, String sheetName) {
         if (excelWriter == null && writeSheet == null) {
             // 这里 需要指定写用哪个标题头去写 可以用class 也可以不用

+ 42 - 0
src/main/resources/logback-spring.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <!-- 控制台打印日志的相关配置 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <!-- 日志格式 -->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] - %m%n</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>info</level>
+        </filter>
+
+    </appender>
+
+    <!-- 文件保存日志的相关配置 -->
+    <appender name="ERROR-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>info</level>
+        </filter>
+        <!-- 保存日志文件的路径 -->
+        <file>logs/info.log</file>
+        <!-- 日志格式 -->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] [%class:%line] - %m%n</pattern>
+        </encoder>
+
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>logs/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 最大保存时间:30天-->
+            <maxHistory>30</maxHistory>
+        </rollingPolicy>
+    </appender>
+
+    <!-- 基于dubug处理日志:具体控制台或者文件对日志级别的处理还要看所在appender配置的filter,如果没有配置filter,则使用root配置 -->
+    <root level="debug">
+        <appender-ref ref="STDOUT"/>
+        <appender-ref ref="ERROR-OUT"/>
+    </root>
+    <logger name="org.mongodb.driver" additivity="false"/>
+</configuration>

+ 42 - 12
src/test/java/com/winhc/task/TransToExcelNewCompany.java

@@ -10,14 +10,13 @@ import com.winhc.task.util.CsvToXlsxUtil;
 import com.winhc.task.util.ZipUtils;
 
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import static com.winhc.task.common.Constant.*;
 import static com.winhc.task.util.CsvToXlsxUtil.jsonToXLSxNewCompany;
@@ -33,14 +32,32 @@ public class TransToExcelNewCompany {
 
 
     public static void main(String[] args) throws IOException {
+
+
+        //全部任务
+        run();
+        //映射跑
+        //mapping_run();
+    }
+
+    private static void mapping_run() {
+        Stream.of("company", "company_double_random_check_info", "company_staff",
+                "company_abnormal_info",
+                "cancellation_announcement", "company_change", "company_punishment_info",
+                "company_holder", "company_check_info", "company_illegal_info", "company_judicial_assistance", "company_equity_info")
+                .forEach(tn -> {
+                    String outXlsxPath = "D:\\tmp\\mapping\\" + tn + ".xlsx";
+                    String objectNamePath = "anshuo/mapping/" + tn + ".json";
+                    toTrans2(outXlsxPath, objectNamePath, tn);
+                });
+    }
+
+    private static void run() throws FileNotFoundException {
         String ds = getYesterday_ymd();
-        //ds = "20221114";
         String outPathPre = "D:\\tmp\\data\\" + ds + "\\";
         File file = new File(outPathPre);
         //如果文件夹不存在则会创建
         if (!file.exists()) file.mkdirs();
-        //单个变更维度
-        //toTrans(ds,"company_equity_info");
         //新公司
         newCompanyToExcel(outPathPre, ds);
         //变更
@@ -48,7 +65,6 @@ public class TransToExcelNewCompany {
         //压缩文件
         FileOutputStream outZipPath = new FileOutputStream(new File("D:\\tmp\\data\\" + ds + ".zip"));
         ZipUtils.toZip("D:\\tmp\\data\\" + ds, outZipPath, true);
-
     }
 
     public static void changeToExcel(String outPathPre, String ds) {
@@ -59,7 +75,7 @@ public class TransToExcelNewCompany {
 
     }
 
-    private static void toTrans(String outPathPre, String ds, String tn) {
+    public static void toTrans(String outPathPre, String ds, String tn) {
         Map<String, CompanyChangeArgs> exportArgs = CompanyChangeArgs.EXPORT_ARGS;
         CompanyChangeArgs args = exportArgs.get(tn);
         Function<JSONObject, JSONObject> handles = args.getHandles();
@@ -67,9 +83,21 @@ public class TransToExcelNewCompany {
                 .map(Collections::singletonList)
                 .collect(Collectors.toList());
         String objectName = "anshuo/dim_change/" + ds + "/" + tn + ".json";
-        //String outPath = "D:\\tmp\\data\\change_" + tn + ".xlsx";
         String outPath = outPathPre + "change_" + tn + ".xlsx";
-        jsonToXLSxChange(tn, outPath, objectName, company_head_list, args.getClazz(), handles);
+        Set<String> excludeColumnFiledNames = new HashSet<>();
+        excludeColumnFiledNames.add("old_name");
+        jsonToXLSxChange(tn, outPath, objectName, company_head_list, args.getClazz(), handles, excludeColumnFiledNames);
+    }
+
+    public static void toTrans2(String outPath, String objectNamePath, String tn) {
+        Map<String, CompanyChangeArgs> exportArgs = CompanyChangeArgs.EXPORT_ARGS;
+        CompanyChangeArgs args = exportArgs.get(tn);
+        Function<JSONObject, JSONObject> handles = args.getHandles();
+        String head = "原始名称@" + args.getHead();
+        List<List<String>> company_head_list = Arrays.stream(head.split("@"))
+                .map(Collections::singletonList)
+                .collect(Collectors.toList());
+        jsonToXLSxChange(tn, outPath, objectNamePath, company_head_list, args.getClazz(), handles, null);
     }
 
     public static void newCompanyToExcel(String outPathPre, String ds) {
@@ -88,7 +116,9 @@ public class TransToExcelNewCompany {
 
         String objectName = "anshuo/new_company/" + ds + "/new_company.json";
 
-        jsonToXLSxNewCompany(outPathPre, objectName, company_head_list, holder_head_list, staff_head_list);
+        Set<String> excludeColumnFiledNames = new HashSet<>();
+        excludeColumnFiledNames.add("old_name");
+        jsonToXLSxNewCompany(outPathPre, objectName, company_head_list, holder_head_list, staff_head_list, excludeColumnFiledNames);
     }
 }