|
@@ -189,34 +189,38 @@ public class EmailParseService {
|
|
// python 报告解析接口结果
|
|
// python 报告解析接口结果
|
|
List<ParseResult<ReportData>> dataList = ListUtil.list(false);
|
|
List<ParseResult<ReportData>> dataList = ListUtil.list(false);
|
|
for (Map.Entry<EmailContentInfoDTO, List<EmailFundNavDTO>> fileNameNavEntry : fileNameNavMap.entrySet()) {
|
|
for (Map.Entry<EmailContentInfoDTO, List<EmailFundNavDTO>> fileNameNavEntry : fileNameNavMap.entrySet()) {
|
|
- // 保存邮件文件表
|
|
|
|
- EmailContentInfoDTO emailContentInfoDTO = fileNameNavEntry.getKey();
|
|
|
|
- String fileName = emailContentInfoDTO.getFileName();
|
|
|
|
- if (Objects.equals(EmailTypeConst.REPORT_EMAIL_TYPE, emailType) && fileName.endsWith(".html")) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- Integer fileId = saveEmailFileInfo(emailId, emailContentInfoDTO.getFileId(), fileName, emailContentInfoDTO.getFilePath(), parseDate);
|
|
|
|
|
|
+ try{
|
|
|
|
+ // 保存邮件文件表
|
|
|
|
+ EmailContentInfoDTO emailContentInfoDTO = fileNameNavEntry.getKey();
|
|
|
|
+ String fileName = emailContentInfoDTO.getFileName();
|
|
|
|
+ if (Objects.equals(EmailTypeConst.REPORT_EMAIL_TYPE, emailType) && fileName.endsWith(".html")) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ Integer fileId = saveEmailFileInfo(emailId, emailContentInfoDTO.getFileId(), fileName, emailContentInfoDTO.getFilePath(), parseDate);
|
|
|
|
|
|
- List<EmailFundNavDTO> fundNavDTOList = fileNameNavEntry.getValue();
|
|
|
|
- if (CollUtil.isNotEmpty(fundNavDTOList)) {
|
|
|
|
- // 过滤出解析成功的数据
|
|
|
|
- fundNavDTOList = fundNavDTOList.stream().filter(e -> e != null && StrUtil.isBlank(e.getFailReason())).toList();
|
|
|
|
- }
|
|
|
|
- if (CollUtil.isEmpty(fundNavDTOList) && !Objects.equals(EmailTypeConst.REPORT_EMAIL_TYPE, emailType)) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- if (Objects.equals(EmailTypeConst.REPORT_EMAIL_TYPE, emailType)) {
|
|
|
|
- // 解析结果(可以从python获取或者自行解析)并保存报告
|
|
|
|
- ParseResult<ReportData> parseResult = this.parseReportAndHandleResult(fileId, emailContentInfoDTO);
|
|
|
|
- dataList.add(parseResult);
|
|
|
|
- }
|
|
|
|
- for (EmailFundNavDTO fundNavDTO : fundNavDTOList) {
|
|
|
|
- // 设置净值数据的解析状态
|
|
|
|
- setNavParseStatus(fundNavDTO, emailTitle);
|
|
|
|
|
|
+ List<EmailFundNavDTO> fundNavDTOList = fileNameNavEntry.getValue();
|
|
|
|
+ if (CollUtil.isNotEmpty(fundNavDTOList)) {
|
|
|
|
+ // 过滤出解析成功的数据
|
|
|
|
+ fundNavDTOList = fundNavDTOList.stream().filter(e -> e != null && StrUtil.isBlank(e.getFailReason())).toList();
|
|
|
|
+ }
|
|
|
|
+ if (CollUtil.isEmpty(fundNavDTOList) && !Objects.equals(EmailTypeConst.REPORT_EMAIL_TYPE, emailType)) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if (Objects.equals(EmailTypeConst.REPORT_EMAIL_TYPE, emailType)) {
|
|
|
|
+ // 解析结果(可以从python获取或者自行解析)并保存报告
|
|
|
|
+ ParseResult<ReportData> parseResult = this.parseReportAndHandleResult(fileId, emailContentInfoDTO);
|
|
|
|
+ dataList.add(parseResult);
|
|
|
|
+ }
|
|
|
|
+ for (EmailFundNavDTO fundNavDTO : fundNavDTOList) {
|
|
|
|
+ // 设置净值数据的解析状态
|
|
|
|
+ setNavParseStatus(fundNavDTO, emailTitle);
|
|
|
|
+ }
|
|
|
|
+ // 保存净值表和规模表
|
|
|
|
+ saveNavAndAssetNet(fileId, fundNavDTOList, parseDate);
|
|
|
|
+ saveValuationInfo(fileId, fundNavDTOList);
|
|
|
|
+ }catch (Exception e) {
|
|
|
|
+ log.error(e.getMessage(), e);
|
|
}
|
|
}
|
|
- // 保存净值表和规模表
|
|
|
|
- saveNavAndAssetNet(fileId, fundNavDTOList, parseDate);
|
|
|
|
- saveValuationInfo(fileId, fundNavDTOList);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// 更新邮件解析结果 -> 当【净值日期】和【备案编码/基金名称】能正常解读,即识别为【成功】
|
|
// 更新邮件解析结果 -> 当【净值日期】和【备案编码/基金名称】能正常解读,即识别为【成功】
|