Forráskód Böngészése

fix: 增加异常打印,查找zip解压失败的文件

chenjianhua 3 hónapja
szülő
commit
48794cbf6b

+ 9 - 7
service-base/src/main/java/com/simuwang/base/common/util/ExcelUtil.java

@@ -222,13 +222,12 @@ public class ExcelUtil {
 
     public static List<String> extractCompressedFiles(String zipFilePath, String destFilePath) {
         List<String> filePathList = CollUtil.newArrayList();
-
-        File destFile = new File(destFilePath);
-        if (!destFile.exists()) {
-            destFile.mkdirs();
-        }
-        logger.info("开始解压==================="+zipFilePath);
         try {
+            File destFile = new File(destFilePath);
+            if (!destFile.exists()) {
+                destFile.mkdirs();
+            }
+            logger.info("开始解压==================="+zipFilePath);
             BufferedInputStream fis = new BufferedInputStream(new FileInputStream(zipFilePath));
             ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(fis);
             ArchiveEntry entry;
@@ -238,10 +237,13 @@ public class ExcelUtil {
                     entryFile.mkdirs();
                     logger.info("解压子文件:{}",entryFile.getName());
                 } else {
-                    try (FileOutputStream fos = new FileOutputStream(entryFile)) {
+                    try {
+                        FileOutputStream fos = new FileOutputStream(entryFile);
                         IOUtils.copy(ais, fos);
                         filePathList.add(entryFile.getPath());
                         logger.info("解压子文件:{}",entryFile.getPath());
+                    }catch (Exception e){
+                        logger.error(e.getMessage());
                     }
                 }
             }

+ 15 - 11
service-daq/src/main/java/com/simuwang/daq/service/NavEmailParser.java

@@ -117,20 +117,24 @@ public class NavEmailParser extends AbstractEmailParser {
 
     private List<EmailFundNavDTO> parsePackageFile(EmailContentInfoDTO emailContentInfoDTO, String fileName, String filePath, Map<String, List<String>> emailFieldMap) {
         List<EmailFundNavDTO> emailFundNavDTOList = CollUtil.newArrayList();
-        if(ExcelUtil.isZip(filePath)){
-            String destPath = filePath.replaceAll(".zip", "").replaceAll(".ZIP", "");
-            log.info("压缩包地址:{},解压后文件地址:{}", filePath, destPath);
-            List<String> dir = ExcelUtil.extractCompressedFiles(filePath, destPath);
-            log.info("解压后文件列表大小:{}", dir.size());
-            for (String zipFilePath : dir) {
-                emailFundNavDTOList.addAll(parseZipFile(emailContentInfoDTO, zipFilePath, emailFieldMap));
-                File file = new File(zipFilePath);
-                if (file.isDirectory()) {
-                    for (String navFilePath : Objects.requireNonNull(file.list())) {
-                        emailFundNavDTOList.addAll(parseZipFile(emailContentInfoDTO, navFilePath, emailFieldMap));
+        try{
+            if(ExcelUtil.isZip(filePath)){
+                String destPath = filePath.replaceAll(".zip", "").replaceAll(".ZIP", "");
+                log.info("压缩包地址:{},解压后文件地址:{}", filePath, destPath);
+                List<String> dir = ExcelUtil.extractCompressedFiles(filePath, destPath);
+                log.info("解压后文件列表大小:{}", dir.size());
+                for (String zipFilePath : dir) {
+                    emailFundNavDTOList.addAll(parseZipFile(emailContentInfoDTO, zipFilePath, emailFieldMap));
+                    File file = new File(zipFilePath);
+                    if (file.isDirectory()) {
+                        for (String navFilePath : Objects.requireNonNull(file.list())) {
+                            emailFundNavDTOList.addAll(parseZipFile(emailContentInfoDTO, navFilePath, emailFieldMap));
+                        }
                     }
                 }
             }
+        }catch (Exception e){
+            log.error(e.getMessage(),e);
         }
         try{
             if(ExcelUtil.isRAR(filePath)){