Browse Source

fix: 定期报告保存文件关联基金信息

chenjianhua 4 months ago
parent
commit
4a6c4ed003

+ 6 - 14
service-daq/src/main/java/com/simuwang/daq/service/EmailParseService.java

@@ -225,11 +225,6 @@ public class EmailParseService {
                 // 过滤出解析成功的数据
                 fundNavDTOList = fundNavDTOList.stream().filter(e -> e != null && StrUtil.isBlank(e.getFailReason())).toList();
             }
-            if (CollUtil.isEmpty(fundNavDTOList) && (!Objects.equals(EmailTypeConst.MONTH_REPORT_EMAIL_TYPE, emailType)
-                    ||!Objects.equals(EmailTypeConst.YEAR_REPORT_EMAIL_TYPE, emailType)
-                    ||!Objects.equals(EmailTypeConst.QUARTER_REPORT_EMAIL_TYPE, emailType))) {
-                continue;
-            }
             if (Objects.equals(EmailTypeConst.MONTH_REPORT_EMAIL_TYPE, emailType)
                     ||Objects.equals(EmailTypeConst.YEAR_REPORT_EMAIL_TYPE, emailType)
                     ||Objects.equals(EmailTypeConst.QUARTER_REPORT_EMAIL_TYPE, emailType)) {
@@ -247,11 +242,13 @@ public class EmailParseService {
                         ||Objects.equals(EmailTypeConst.QUARTER_REPORT_EMAIL_TYPE, emailType)
                         || Objects.equals(EmailTypeConst.MONTH_REPORT_EMAIL_TYPE, emailType)) {
                     ReportData reportData = dataList.get(0).getData();
-                    ReportFundInfoDTO fundInfoDTO = reportData.getFundInfo();
                     EmailFundNavDTO emailFundNavDTO = new EmailFundNavDTO();
-                    if(fundInfoDTO != null){
-                        emailFundNavDTO.setFundName(fundInfoDTO.getFundName());
-                        emailFundNavDTO.setRegisterNumber(fundInfoDTO.getRegisterNumber());
+                    if(reportData != null){
+                        ReportFundInfoDTO fundInfoDTO = reportData.getFundInfo();
+                        if(fundInfoDTO != null){
+                            emailFundNavDTO.setFundName(fundInfoDTO.getFundName());
+                            emailFundNavDTO.setRegisterNumber(fundInfoDTO.getRegisterNumber());
+                        }
                     }
                     saveFileManage(fileId,emailType,emailContentInfoDTO,ListUtil.toList(emailFundNavDTO),parseDate);
                 }else{
@@ -269,11 +266,6 @@ public class EmailParseService {
         long successNavCount = fileNameNavMap.values().stream().flatMap(List::stream).filter(e -> e != null && StrUtil.isBlank(e.getFailReason())).count();
         emailParseStatus = successNavCount >= 1 ? EmailParseStatusConst.SUCCESS : EmailParseStatusConst.FAIL;
         String failReason = null;
-        //基金合同,分红公告,变更公告默认成功,因为不会解析数据只采集附件
-        if(Objects.equals(EmailTypeConst.DISTRIBUTION_EMAIL_TYPE, emailType) || Objects.equals(EmailTypeConst.CHANGE_EMAIL_TYPE, emailType)
-                || Objects.equals(EmailTypeConst.CHANGE_EMAIL_TYPE, emailType)){
-            emailParseStatus = EmailParseStatusConst.SUCCESS;
-        }
         if (emailParseStatus == EmailParseStatusConst.FAIL) {
             // 邮件解析失败时 -> 保存失败原因
             int hasPdfFile = emailContentInfoDTOList.stream().map(EmailContentInfoDTO::getFilePath).anyMatch(ExcelUtil::isPdf) ? 1 : 0;