|
@@ -332,21 +332,7 @@ public class EmailParseService {
|
|
public void saveRelatedTable(Integer emailId, EmailInfoDTO emailInfo) {
|
|
public void saveRelatedTable(Integer emailId, EmailInfoDTO emailInfo) {
|
|
// 解析并保存数据
|
|
// 解析并保存数据
|
|
List<ParseResult<ReportData>> dataList = ListUtil.list(true);
|
|
List<ParseResult<ReportData>> dataList = ListUtil.list(true);
|
|
- this.parseResults(emailInfo, dataList);
|
|
|
|
-
|
|
|
|
- String failReason = null;
|
|
|
|
- int emailParseStatus = EmailParseStatusConst.SUCCESS;
|
|
|
|
- // 报告邮件有一条失败就表示整个邮件解析失败
|
|
|
|
- if (CollUtil.isNotEmpty(dataList)) {
|
|
|
|
- List<EmailFileInfoDO> entityList = this.buildEmailFileInfo(dataList);
|
|
|
|
- this.emailFileInfoMapper.batchUpdateByFileId(entityList);
|
|
|
|
- long failNum = dataList.stream().filter(e -> !Objects.equals(EmailParseStatusConst.SUCCESS, e.getStatus())).count();
|
|
|
|
- if (failNum > 0) {
|
|
|
|
- emailParseStatus = EmailParseStatusConst.FAIL;
|
|
|
|
- failReason = dataList.stream().map(ParseResult::getMsg).collect(Collectors.joining(";"));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- this.emailParseInfoMapper.updateParseStatus(emailId, emailParseStatus, failReason);
|
|
|
|
|
|
+ this.parseAndUpdateResult(emailId, emailInfo, dataList);
|
|
}
|
|
}
|
|
|
|
|
|
private List<EmailFileInfoDO> buildEmailFileInfo(List<ParseResult<ReportData>> dataList) {
|
|
private List<EmailFileInfoDO> buildEmailFileInfo(List<ParseResult<ReportData>> dataList) {
|
|
@@ -392,11 +378,6 @@ public class EmailParseService {
|
|
// 重新判断类型
|
|
// 重新判断类型
|
|
this.recheckEmailType(emailTitle, dtos);
|
|
this.recheckEmailType(emailTitle, dtos);
|
|
EmailInfoDTO emailInfo = new EmailInfoDTO(emailTitle, dtos);
|
|
EmailInfoDTO emailInfo = new EmailInfoDTO(emailTitle, dtos);
|
|
-// // 附件文件检查
|
|
|
|
-// Long totalSize = this.checkEmailFileInfo(emailInfo);
|
|
|
|
-// if (totalSize == null) {
|
|
|
|
-// return null;
|
|
|
|
-// }
|
|
|
|
Long totalSize = dtos.stream().map(EmailZipFileDTO::getFileSize).reduce(0L, Long::sum);
|
|
Long totalSize = dtos.stream().map(EmailZipFileDTO::getFileSize).reduce(0L, Long::sum);
|
|
EmailParseInfoDO emailDo = this.buildEmailParseInfo("upload", emailInfo, totalSize);
|
|
EmailParseInfoDO emailDo = this.buildEmailParseInfo("upload", emailInfo, totalSize);
|
|
Integer emailId = this.saveEmailParseInfo(emailDo);
|
|
Integer emailId = this.saveEmailParseInfo(emailDo);
|
|
@@ -404,15 +385,35 @@ public class EmailParseService {
|
|
EmailFileInfoDO emailFile = this.saveEmailFileInfo(emailId, zipFile.getFilename(), zipFile.getFilepath());
|
|
EmailFileInfoDO emailFile = this.saveEmailFileInfo(emailId, zipFile.getFilename(), zipFile.getFilepath());
|
|
zipFile.setFileId(emailFile.getId());
|
|
zipFile.setFileId(emailFile.getId());
|
|
}
|
|
}
|
|
- this.parseResults(emailInfo, dataList);
|
|
|
|
|
|
+ // 解析并处理解析结果
|
|
|
|
+ this.parseAndUpdateResult(emailId, emailInfo, dataList);
|
|
|
|
+ // 解析结果转换
|
|
List<UploadReportResult> resultList = ListUtil.list(false);
|
|
List<UploadReportResult> resultList = ListUtil.list(false);
|
|
for (ParseResult<ReportData> result : dataList) {
|
|
for (ParseResult<ReportData> result : dataList) {
|
|
ReportData data = result.getData();
|
|
ReportData data = result.getData();
|
|
- resultList.add(new UploadReportResult(data.getReportPath(), result.getStatus(), result.getMsg()));
|
|
|
|
|
|
+ resultList.add(new UploadReportResult(data.getBaseInfo().getFileId(),
|
|
|
|
+ data.getBaseInfo().getReportName(), result.getStatus(), result.getMsg()));
|
|
}
|
|
}
|
|
return resultList;
|
|
return resultList;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void parseAndUpdateResult(Integer emailId, EmailInfoDTO emailInfo, List<ParseResult<ReportData>> dataList) {
|
|
|
|
+ this.parseResults(emailInfo, dataList);
|
|
|
|
+ String failReason = null;
|
|
|
|
+ int emailParseStatus = EmailParseStatusConst.SUCCESS;
|
|
|
|
+ // 报告邮件有一条失败就表示整个邮件解析失败
|
|
|
|
+ if (CollUtil.isNotEmpty(dataList)) {
|
|
|
|
+ List<EmailFileInfoDO> entityList = this.buildEmailFileInfo(dataList);
|
|
|
|
+ this.emailFileInfoMapper.batchUpdateByFileId(entityList);
|
|
|
|
+ long failNum = dataList.stream().filter(e -> !Objects.equals(EmailParseStatusConst.SUCCESS, e.getStatus())).count();
|
|
|
|
+ if (failNum > 0) {
|
|
|
|
+ emailParseStatus = EmailParseStatusConst.FAIL;
|
|
|
|
+ failReason = dataList.stream().map(ParseResult::getMsg).collect(Collectors.joining(";"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.emailParseInfoMapper.updateParseStatus(emailId, emailParseStatus, failReason);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 重新校验邮件附件的类型(用邮件主题+附件名称)
|
|
* 重新校验邮件附件的类型(用邮件主题+附件名称)
|
|
*
|
|
*
|