Преглед на файлове

fix:修复确认单报告日期正则匹配可能不适用严格的日期正则问题

wangzaijun преди 1 месец
родител
ревизия
457c54b73a

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

@@ -2,6 +2,7 @@ package com.smppw.modaq.application.components;
 
 import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.map.MapUtil;
+import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.StrUtil;
 import com.smppw.modaq.application.util.EmailUtil;
 import com.smppw.modaq.common.conts.EmailTypeConst;
@@ -350,8 +351,12 @@ public final class ReportParseUtils {
             }
         }
         if (ReportType.WEEKLY.equals(reportType) || ReportType.LETTER.equals(reportType) || ReportType.OTHER.equals(reportType)) {
-            Matcher matcher = PatternConsts.STRICT_DAY_PATTERN.matcher(text);
+            Matcher matcher = PatternConsts.DAY_PATTERN.matcher(text);
             if (matcher.find()) {
+                String date = matcher.group();
+                if (NumberUtil.isNumber(date) && date.length() >= 10) {
+                    return StrUtil.sub(date, 0, 10);
+                }
                 return matcher.group();
             }
         }

+ 9 - 5
mo-daq/src/main/java/com/smppw/modaq/common/conts/PatternConsts.java

@@ -7,15 +7,15 @@ import java.util.regex.Pattern;
  */
 public class PatternConsts {
     /**
-     * 季度报告正则匹配
+     * 季度报告日期正则匹配
      */
     public static final Pattern QUARTERLY_PATTERN = Pattern.compile("(20[23]\\d)\\D*([一二三四1234])季");
     /**
-     * 年度报告正则匹配
+     * 年度报告日期正则匹配
      */
     public static final Pattern ANNUALLY_PATTERN = Pattern.compile("(20[23]\\d)(年度|年报|年年度|年年报)?");
     /**
-     * 月度报告正则匹配
+     * 月度报告日期正则匹配
      */
     public static Pattern MONTHLY_PATTERN = Pattern.compile("(20[23]\\d)[年_-]*(\\d{1,2})月?");
     /**
@@ -27,9 +27,13 @@ public class PatternConsts {
      */
     public static final Pattern DAY_PATTERN = Pattern.compile("(20[23]\\d)[年_-]*(\\d{1,2})[月_-]*(\\d{1,2})[日号\\d]+");
 
-
+    /**
+     * 基金编码的正则表达式
+     */
     public static final Pattern FUND_CODE_PATTERN = Pattern.compile("S[A-Z0-9]{5}");
 
-
+    /**
+     * 分级基金级别正则匹配
+     */
     public static final Pattern FUND_LEVEL_PATTERN = Pattern.compile("[A-F]级|基金[A-F]");
 }

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

@@ -293,14 +293,6 @@ public class EmailParseService {
                 dto.setEmailType(emailType);
             }
 
-//            for (EmailZipFileDTO dto : dtos) {
-//                String filename = dto.getFilename();
-//                Integer emailType = dto.getEmailType();
-//                ReportType reportType = ReportParseUtils.matchReportType(emailType, filename);
-//                String reportDate = ReportParseUtils.matchReportDate(reportType, filename);
-//                System.out.println(filename + ",emailType=" + emailType + ",reportType=" + reportType + ",reportDate=" + reportDate);
-//            }
-
             // 数据库已存在的数据过滤
             Iterator<EmailZipFileDTO> iterator = dtos.iterator();
             while (iterator.hasNext()) {