Просмотр исходного кода

fix:定期报告类型匹配优先级调整到最低

wangzaijun 1 месяц назад
Родитель
Сommit
f2e79e1c6f

+ 3 - 3
mo-daq/src/main/java/com/smppw/modaq/application/components/ReportParseUtils.java

@@ -387,7 +387,7 @@ public final class ReportParseUtils {
             return null;
         }
         ReportType reportType = null;
-        // 优先确认函、周报,然后才匹配定期报告,最后匹配其他观点
+        // 优先确认函、周报、其他观点,然后才匹配定期报告
         boolean isAmac = Objects.equals(EmailTypeConst.REPORT_EMAIL_TYPE, emailType);
         if (!isAmac) {
             if (Objects.equals(EmailTypeConst.REPORT_LETTER_EMAIL_TYPE, emailType)
@@ -395,6 +395,8 @@ public final class ReportParseUtils {
                 reportType = ReportType.LETTER;
             } else if (StrUtil.containsAny(string, ReportType.WEEKLY.getPatterns())) {
                 reportType = ReportType.WEEKLY;
+            } else if (StrUtil.containsAny(string, ReportType.OTHER.getPatterns())) {
+                reportType = ReportType.OTHER;
             }
             return reportType;
         }
@@ -410,8 +412,6 @@ public final class ReportParseUtils {
         } else if (matcher.find()) {
             // 特殊的月报(当季度->年度->月度报告无法识别时,如果包含“\\d{1,2}月”就说明也是月报)
             reportType = ReportType.MONTHLY;
-        } else if (StrUtil.containsAny(string, ReportType.OTHER.getPatterns())) {
-            reportType = ReportType.OTHER;
         }
         return reportType;
     }

+ 2 - 2
mo-daq/src/main/java/com/smppw/modaq/application/task/ParseSchedulerTask.java

@@ -44,8 +44,8 @@ public class ParseSchedulerTask {
         try {
             // 确认函从 INBOX 文件夹获取邮件
             this.emailParseApiService.parseEmail(
-                    DateUtil.parseDateTime("2025-05-12 10:20:00"),
-                    DateUtil.parseDateTime("2025-05-12 10:21:00"),
+                    DateUtil.parseDateTime("2025-05-13 16:31:00"),
+                    DateUtil.parseDateTime("2025-05-13 16:32:00"),
                     null, ListUtil.of(EmailTypeConst.REPORT_LETTER_EMAIL_TYPE));
         } catch (Exception e) {
             logger.error(ExceptionUtil.getMessage(e));

+ 4 - 4
mo-daq/src/main/java/com/smppw/modaq/domain/service/EmailParseService.java

@@ -556,15 +556,15 @@ public class EmailParseService {
         // 2.周报
         emailTypeMap.put(EmailTypeConst.REPORT_WEEKLY_TYPE,
                 ListUtil.toList(ReportType.WEEKLY.getPatterns()));
-        // 3.定期报告的类型判断
+        // 3.其他
+        emailTypeMap.put(EmailTypeConst.REPORT_OTHER_TYPE,
+                ListUtil.toList(ReportType.OTHER.getPatterns()));
+        // 4.定期报告的类型判断
         List<String> types = ListUtil.list(true);
         CollUtil.addAll(types, ReportType.QUARTERLY.getPatterns());
         CollUtil.addAll(types, ReportType.ANNUALLY.getPatterns());
         CollUtil.addAll(types, ReportType.MONTHLY.getPatterns());
         emailTypeMap.put(EmailTypeConst.REPORT_EMAIL_TYPE, types);
-        // 4.其他
-        emailTypeMap.put(EmailTypeConst.REPORT_OTHER_TYPE,
-                ListUtil.toList(ReportType.OTHER.getPatterns()));
         return emailTypeMap;
     }