Explorar el Código

fix:投资报告为其他观点报告、新增配置开启已读标记状态

wangzaijun hace 3 semanas
padre
commit
6c5dc403bc

+ 15 - 8
mo-daq/src/main/java/com/smppw/modaq/common/enums/ReportType.java

@@ -5,22 +5,29 @@ import lombok.Getter;
 @Getter
 public enum ReportType {
     // 最后识别的类型
-    OTHER(-2, "其他报告", new String[]{"公告", "通知", "告知函", "意见征询函", "说明函",
-            "清算报告", "邀请函", "观点", "预警", "投研报告", "公示", "回顾", "风险提示函", "说明", "合同变更", "生效函"}),
+    OTHER(-2, "其他报告",
+            new String[]{"公告", "通知", "告知函", "意见征询函", "说明函",
+                    "清算报告", "邀请函", "观点", "预警", "投研报告", "公示", "回顾",
+                    "风险提示函", "说明", "合同变更", "生效函", "投资报告"}),
 
-    LETTER(-1, "交易流水确认函", new String[]{"确认单", "确认函", "交易确认数据",
-            "赎回确认", "申购确认", "分红确认", "确认表", "交易确认", "确认"}),
+    LETTER(-1, "交易流水确认函",
+            new String[]{"确认单", "确认函", "交易确认数据",
+                    "赎回确认", "申购确认", "分红确认", "确认表", "交易确认", "确认"}),
 
     /**
      * 月报识别规则(单独的“月”字不绑定到月度报告中,防止影响其他报告)
      */
-    MONTHLY(0, "月", new String[]{"月度报告", "月报", "月度"}),
+    MONTHLY(0, "月",
+            new String[]{"月度报告", "月报", "月度"}),
 
-    QUARTERLY(1, "季", new String[]{"季度报告", "季报", "季度"}),
+    QUARTERLY(1, "季",
+            new String[]{"季度报告", "季报", "季度"}),
 
-    ANNUALLY(2, "年", new String[]{"年度", "年报", "年度报告"}),
+    ANNUALLY(2, "年",
+            new String[]{"年度", "年报", "年度报告"}),
 
-    WEEKLY(3, "周", new String[]{"周报", "周度报告", "周度"}),
+    WEEKLY(3, "周",
+            new String[]{"周报", "周度报告", "周度"}),
     ;
 
     private final int type;

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

@@ -90,6 +90,9 @@ public class EmailParseService {
     @Value("${email.report.ocr-parser-url}")
     private String ocrParserUrl;
 
+    @Value("${email.read-write-seen:true}")
+    private boolean readWriteSeen;
+
     public EmailParseService(EmailParseInfoMapper emailParseInfoMapper,
                              EmailFileInfoMapper emailFileInfoMapper,
                              ReportParserFactory reportParserFactory,
@@ -699,7 +702,7 @@ public class EmailParseService {
                                                                   Store store, String folderName) throws MessagingException {
         // 默认读取收件箱的邮件
         Folder folder = store.getFolder(folderName);
-        folder.open(Folder.READ_WRITE);
+        folder.open(this.readWriteSeen ? Folder.READ_WRITE : Folder.READ_ONLY);
         Message[] messages = getEmailMessage(folder, mailboxInfoDTO.getProtocol(), startDate);
         if (messages == null || messages.length == 0) {
             log.warn("{} 获取不到邮件 -> 邮箱信息:{},开始时间:{},结束时间:{}", folderName, mailboxInfoDTO, startDate, endDate);
@@ -713,7 +716,7 @@ public class EmailParseService {
             Integer emailType;
             String senderEmail;
             String emailTitle = message.getSubject();
-            if (isMessageRead(message)) {
+            if (this.readWriteSeen && isMessageRead(message)) {
                 log.warn("{} 邮件{} 已读,不用重新下载解析!", folderName, emailTitle);
                 continue;
             }
@@ -767,8 +770,10 @@ public class EmailParseService {
                 log.error("{} 获取邮箱的邮件{} 报错,堆栈信息:{}", folderName, emailTitle, ExceptionUtil.stacktraceToString(e));
             }
         }
-        // 设置已读标志
-        folder.setFlags(messages, new Flags(Flags.Flag.SEEN), true);
+        if (this.readWriteSeen) {
+            // 设置已读标志
+            folder.setFlags(messages, new Flags(Flags.Flag.SEEN), true);
+        }
         folder.close(false);
         return emailMessageMap;
     }

+ 3 - 1
mo-daq/src/main/resources/application.yml

@@ -54,4 +54,6 @@ email:
     # ai解析远程地址
     ai-parser-url: http://localhost:8088/upload-filepath
     # ocr文字识别接口地址
-    ocr-parser-url: http://localhost:8088/parse-img
+    ocr-parser-url: http://localhost:8088/parse-img
+  # 读写 seen 标记
+  read-write-seen: false