浏览代码

fix:代码被覆盖的问题

wangzaijun 6 月之前
父节点
当前提交
5c722fe4a8
共有 1 个文件被更改,包括 21 次插入8 次删除
  1. 21 8
      service-daq/src/main/java/com/simuwang/daq/service/EmailParseService.java

+ 21 - 8
service-daq/src/main/java/com/simuwang/daq/service/EmailParseService.java

@@ -395,11 +395,13 @@ public class EmailParseService {
             registerNumber = matcher.group();
         }
         // 类型识别---先识别季度报告,没有季度再识别年度报告,最后识别月报
-        ReportType reportType = ReportType.MONTHLY;
+        ReportType reportType = null;
         if (StrUtil.containsAny(fileName, ReportType.QUARTERLY.getPatterns())) {
             reportType = ReportType.QUARTERLY;
         } else if (StrUtil.containsAny(fileName, ReportType.ANNUALLY.getPatterns())) {
             reportType = ReportType.ANNUALLY;
+        } else if (StrUtil.containsAny(fileName, ReportType.MONTHLY.getPatterns())) {
+            reportType = ReportType.MONTHLY;
         }
         // 解析器--如果开启python解析则直接调用python接口,否则根据文件后缀获取对应解析器
         ReportParserFileType fileType;
@@ -409,13 +411,24 @@ public class EmailParseService {
             String fileSuffix = StrUtil.subAfter(fileName, ".", true);
             fileType = ReportParserFileType.getBySuffix(fileSuffix);
         }
+        // 不支持的格式
+        if (fileType == null) {
+            result.setStatus(ReportParseStatus.NO_SUPPORT_TEMPLATE.getCode());
+            result.setMsg(StrUtil.format(ReportParseStatus.NO_SUPPORT_TEMPLATE.getMsg(), fileName));
+            return result;
+        }
+        // 不是定期报告的判断逻辑放在不支持的格式下面
+        if (reportType == null) {
+            result.setStatus(ReportParseStatus.NOT_A_REPORT.getCode());
+            result.setMsg(StrUtil.format(ReportParseStatus.NOT_A_REPORT.getMsg(), fileName));
+            return result;
+        }
         // 解析报告
-        ReportParserParams params = null;
         ReportData reportData = null;
         StopWatch parserWatch = new StopWatch();
         parserWatch.start();
         try {
-            params = ReportParserParams.builder().fileId(fileId).filename(fileName)
+            ReportParserParams params = ReportParserParams.builder().fileId(fileId).filename(fileName)
                     .filepath(emailContentInfoDTO.getFilePath()).registerNumber(registerNumber).build();
             ReportParser<ReportData> instance = this.reportParserFactory.getInstance(reportType, fileType);
             reportData = instance.parse(params);
@@ -423,17 +436,17 @@ public class EmailParseService {
             result.setMsg("报告解析成功");
             result.setData(reportData);
         } catch (ReportParseException e) {
-            log.error("报告{}解析失败\n{}", params, e.getMsg());
+            log.error("解析失败\n{}", e.getMsg());
             result.setStatus(e.getCode());
             result.setMsg(e.getMsg());
         } catch (Exception e) {
-            log.error("报告{}解析失败\n{}", params, ExceptionUtil.stacktraceToString(e));
+            log.error("解析错误\n{}", ExceptionUtil.stacktraceToString(e));
             result.setStatus(ReportParseStatus.PARSE_FAIL.getCode());
             result.setMsg(StrUtil.format(ReportParseStatus.PARSE_FAIL.getMsg(), e.getMessage()));
         } finally {
             parserWatch.stop();
             if (log.isInfoEnabled()) {
-                log.info("报告{}解析结果为{},耗时{}ms", params, reportData, parserWatch.getTotalTimeMillis());
+                log.info("报告{}解析结果为{},耗时{}ms", fileName, reportData, parserWatch.getTotalTimeMillis());
             }
         }
         // 保存报告解析结果
@@ -444,11 +457,11 @@ public class EmailParseService {
                 ReportWriter<ReportData> instance = this.reportWriterFactory.getInstance(reportType);
                 instance.write(reportData);
             } catch (Exception e) {
-                log.error("报告{}结果保存失败\n{}", params, ExceptionUtil.stacktraceToString(e));
+                log.error("报告{}结果保存失败\n{}", fileName, ExceptionUtil.stacktraceToString(e));
             } finally {
                 writeWatch.stop();
                 if (log.isInfoEnabled()) {
-                    log.info("报告{}解析结果保存完成,耗时{}ms", params, writeWatch.getTotalTimeMillis());
+                    log.info("报告{}解析结果保存完成,耗时{}ms", fileName, writeWatch.getTotalTimeMillis());
                 }
             }
         }