Quellcode durchsuchen

feat: 估值表解析增加模板支持

chenjianhua vor 3 Monaten
Ursprung
Commit
a600bea69d

+ 1 - 1
service-daq/src/main/java/com/simuwang/daq/service/NavEmailParser.java

@@ -42,9 +42,9 @@ public class NavEmailParser extends AbstractEmailParser {
 
     @Value("${email.parse.force-template-enable}")
     private boolean forceTemplateEnable;
+    private final EmailTemplateService emailTemplateService;
 
     private final ValuationEmailParser valuationEmailParser;
-    private final EmailTemplateService emailTemplateService;
 
     private static final int MAX_COLUMN = 20;
 

+ 17 - 2
service-daq/src/main/java/com/simuwang/daq/service/ValuationEmailParser.java

@@ -12,6 +12,7 @@ import com.simuwang.base.pojo.dto.ValuationPdfTransformToExcelDTO;
 import com.simuwang.base.pojo.valuation.AssetsValuationResult;
 import com.simuwang.base.pojo.valuation.ParseValuationInfo;
 import com.simuwang.base.pojo.valuation.ValuationNeedParseParam;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.io.File;
@@ -28,10 +29,14 @@ public class ValuationEmailParser extends AbstractEmailParser {
 
     private final ValuationParseService valuationParseService;
     private final PdfToExcelService pdfToExcelService;
+    private final EmailTemplateService emailTemplateService;
+    @Value("${email.parse.force-template-enable}")
+    private boolean forceTemplateEnable;
 
-    public ValuationEmailParser(ValuationParseService valuationParseService, PdfToExcelService pdfToExcelService) {
+    public ValuationEmailParser(ValuationParseService valuationParseService, PdfToExcelService pdfToExcelService, EmailTemplateService emailTemplateService) {
         this.valuationParseService = valuationParseService;
         this.pdfToExcelService = pdfToExcelService;
+        this.emailTemplateService = emailTemplateService;
     }
 
     @Override
@@ -53,7 +58,17 @@ public class ValuationEmailParser extends AbstractEmailParser {
             List<EmailFundNavDTO> fundNavDTOList = convertToFundNavDTO(recordList);
             Optional.ofNullable(fundNavDTOList).ifPresent(emailFundNavDTOList::addAll);
         }
-
+        long successNavCount = 0;
+        if (CollUtil.isNotEmpty(emailFundNavDTOList)) {
+            successNavCount = emailFundNavDTOList.stream().filter(e -> e != null && StrUtil.isBlank(e.getFailReason())).count();
+        }
+        //如果通用模板解析不到正确数据,就走模板解析一次
+        if (successNavCount == 0 || forceTemplateEnable) {
+            List<EmailFundNavDTO> templateFundNavDTOList = emailTemplateService.parseUsingTemplate(emailContentInfoDTO);
+            if(CollUtil.isNotEmpty(templateFundNavDTOList)){
+                emailFundNavDTOList.addAll(templateFundNavDTOList);
+            }
+        }
         return emailFundNavDTOList;
     }
 

+ 0 - 5
service-manage/src/main/java/com/simuwang/manage/task/ParseSchedulerTask.java

@@ -1,14 +1,9 @@
 package com.simuwang.manage.task;
 
-import ch.qos.logback.core.util.StringUtil;
-import cn.hutool.crypto.asymmetric.KeyType;
-import cn.hutool.crypto.asymmetric.RSA;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson2.JSON;
 import com.simuwang.base.common.enums.EmailCron;
 import com.simuwang.base.common.util.DateUtils;
-import com.simuwang.base.common.util.QuartzUtils;
-import com.simuwang.base.config.DaqProperties;
 import com.simuwang.base.pojo.dos.MailboxInfoDO;
 import com.simuwang.base.pojo.dto.MailboxInfoDTO;
 import com.simuwang.daq.service.EmailParseApiService;