فهرست منبع

fix:修复报告日期解析错误问题

wangzaijun 1 ماه پیش
والد
کامیت
ffeffc1e83

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

@@ -336,7 +336,7 @@ public final class ReportParseUtils {
         Pattern pat2 = Pattern.compile("\\d{4}-\\d{2}-\\d{2}");  // 2023-12-31
         Pattern pat3 = Pattern.compile("(2\\d{3})年年度");  // 2023年年度
         Pattern pat4 = Pattern.compile("(\\d{4})年(\\d{1,2})月");  // 2023年12月
-        Pattern pat5 = Pattern.compile("^\\d{4}\\d{2}\\d{2}$");  // 20231231
+        Pattern pat5 = Pattern.compile("(?<!\\d)\\d{4}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])(?!\\d)");  // 20231231
         Pattern pat6 = Pattern.compile("(2\\d{3})年度");  // 2023年度
         // 创建Matcher对象
         Matcher matcher1 = pat1.matcher(string);

+ 1 - 1
mo-daq/src/main/java/com/smppw/modaq/application/components/report/parser/ai/AIWeeklyReportParser.java

@@ -22,7 +22,7 @@ public class AIWeeklyReportParser extends AbstractAIReportParser<WeeklyReportDat
     protected String prompt() {
         return """
                 识别文件中的基金名称、基金编码、基金管理人和报告日期,
-                基金编码的正则表达式是`^S\\d{5,6}$`,
+                基金编码的正则表达式是`S\\d{5,6}`,
                 如果日期是区间段则取截止日期,如果无法识别就返回空字符串,结果用json返回
                 """;
     }

+ 3 - 3
mo-daq/src/test/java/com/smppw/modaq/MoDaqApplicationTests.java

@@ -38,14 +38,14 @@ public class MoDaqApplicationTests {
     @Test
     public void reportTest() {
         MailboxInfoDTO emailInfoDTO = this.buildMailbox("**@simuwang.com", "**");
-        Date startDate = DateUtil.parse("2025-05-07 10:20:00", DateConst.YYYY_MM_DD_HH_MM_SS);
-        Date endDate = DateUtil.parse("2025-05-07 19:42:05", DateConst.YYYY_MM_DD_HH_MM_SS);
+        Date startDate = DateUtil.parse("2025-05-09 09:55:00", DateConst.YYYY_MM_DD_HH_MM_SS);
+        Date endDate = DateUtil.parse("2025-05-09 19:55:05", DateConst.YYYY_MM_DD_HH_MM_SS);
         try {
             List<String> folderNames = ListUtil.list(false);
 //            folderNames.add("其他文件夹/报告公告");
             folderNames.add("INBOX");
             emailParseService.parseEmail(emailInfoDTO, startDate, endDate,
-                    folderNames, EmailTypeConst.REPORT_EMAIL_TYPES);
+                    folderNames, ListUtil.of(EmailTypeConst.REPORT_LETTER_EMAIL_TYPE));
         } catch (Exception e) {
             throw new RuntimeException(e);
         }