Explorar o código

fix: 因为有些邮件是净值邮件,但标题是估值表的标题,会导致无法解析到数据,这里做个补丁如果估值表类型的邮件解析不到数据,就再使用净值解析逻辑处理一次

chenjianhua hai 4 meses
pai
achega
616ea620e8

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

@@ -174,7 +174,16 @@ public class EmailParseService {
     public List<EmailFundNavDTO> parseEmail(EmailContentInfoDTO emailContentInfoDTO, Map<String, List<String>> emailFieldMap) {
         Integer emailType = emailContentInfoDTO.getEmailType();
         AbstractEmailParser emailParser = emailParserFactory.getInstance(emailType);
-        return emailParser.parse(emailContentInfoDTO, emailFieldMap);
+        List<EmailFundNavDTO> emailFundNavDTOList = emailParser.parse(emailContentInfoDTO, emailFieldMap);
+        //因为有些邮件是净值邮件,但标题是估值表的标题,会导致无法解析到数据,这里做个补丁如果估值表类型的邮件解析不到数据,就再使用净值解析逻辑处理一次
+        if(EmailTypeConst.VALUATION_EMAIL_TYPE.equals(emailType)){
+            long successCount = emailFundNavDTOList.stream().filter(e -> StringUtil.isEmpty(e.getFailReason())).count();
+            if(successCount < 1){
+                emailParser = emailParserFactory.getInstance(EmailTypeConst.NAV_EMAIL_TYPE);
+                emailFundNavDTOList = emailParser.parse(emailContentInfoDTO, emailFieldMap);
+            }
+        }
+        return emailFundNavDTOList;
     }
 
     public void saveRelatedTable(String emailAddress, List<EmailContentInfoDTO> emailContentInfoDTOList, Map<EmailContentInfoDTO, List<EmailFundNavDTO>> fileNameNavMap) {

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

@@ -53,7 +53,6 @@ public class ValuationEmailParser extends AbstractEmailParser {
             List<EmailFundNavDTO> fundNavDTOList = convertToFundNavDTO(recordList);
             Optional.ofNullable(fundNavDTOList).ifPresent(emailFundNavDTOList::addAll);
         }
-
         return emailFundNavDTOList;
     }