|
@@ -274,7 +274,8 @@ public class EmailParseService {
|
|
String filepath, Integer emailType, String aiFileId) {
|
|
String filepath, Integer emailType, String aiFileId) {
|
|
ParseResult<ReportData> result = new ParseResult<>();
|
|
ParseResult<ReportData> result = new ParseResult<>();
|
|
boolean reportFlag = !Objects.equals(EmailTypeConst.REPORT_EMAIL_TYPE, emailType)
|
|
boolean reportFlag = !Objects.equals(EmailTypeConst.REPORT_EMAIL_TYPE, emailType)
|
|
- && !Objects.equals(EmailTypeConst.REPORT_LETTER_EMAIL_TYPE, emailType);
|
|
|
|
|
|
+ && !Objects.equals(EmailTypeConst.REPORT_LETTER_EMAIL_TYPE, emailType)
|
|
|
|
+ && !Objects.equals(EmailTypeConst.REPORT_OTHER_TYPE, emailType);
|
|
if (reportFlag || StrUtil.isBlank(fileName) || fileName.endsWith(".html")) {
|
|
if (reportFlag || StrUtil.isBlank(fileName) || fileName.endsWith(".html")) {
|
|
result.setStatus(ReportParseStatus.NOT_A_REPORT.getCode());
|
|
result.setStatus(ReportParseStatus.NOT_A_REPORT.getCode());
|
|
result.setMsg(StrUtil.format(ReportParseStatus.NOT_A_REPORT.getMsg(), fileName));
|
|
result.setMsg(StrUtil.format(ReportParseStatus.NOT_A_REPORT.getMsg(), fileName));
|
|
@@ -291,7 +292,7 @@ public class EmailParseService {
|
|
if (Objects.equals(EmailTypeConst.REPORT_LETTER_EMAIL_TYPE, emailType)) {
|
|
if (Objects.equals(EmailTypeConst.REPORT_LETTER_EMAIL_TYPE, emailType)) {
|
|
reportType = ReportType.LETTER;
|
|
reportType = ReportType.LETTER;
|
|
}
|
|
}
|
|
- // 解析器--如果开启python解析则直接调用python接口,否则根据文件后缀获取对应解析器
|
|
|
|
|
|
+ // 解析器--根据文件后缀获取对应解析器,解析不了就用AI来解析
|
|
ReportParserFileType fileType;
|
|
ReportParserFileType fileType;
|
|
String fileSuffix = StrUtil.subAfter(fileName, ".", true);
|
|
String fileSuffix = StrUtil.subAfter(fileName, ".", true);
|
|
fileType = ReportParserFileType.getBySuffix(fileSuffix);
|
|
fileType = ReportParserFileType.getBySuffix(fileSuffix);
|
|
@@ -313,7 +314,7 @@ public class EmailParseService {
|
|
StopWatch parserWatch = new StopWatch();
|
|
StopWatch parserWatch = new StopWatch();
|
|
parserWatch.start();
|
|
parserWatch.start();
|
|
try {
|
|
try {
|
|
- if (StrUtil.isBlank(aiFileId)) {
|
|
|
|
|
|
+ if (StrUtil.isBlank(aiFileId) && reportType != ReportType.OTHER) {
|
|
ReportParserParams params = ReportParserParams.builder().fileId(fileId).filename(fileName).filepath(filepath)
|
|
ReportParserParams params = ReportParserParams.builder().fileId(fileId).filename(fileName).filepath(filepath)
|
|
.registerNumber(registerNumber).reportType(reportType).build();
|
|
.registerNumber(registerNumber).reportType(reportType).build();
|
|
ReportParser<ReportData> instance = this.reportParserFactory.getInstance(reportType, fileType);
|
|
ReportParser<ReportData> instance = this.reportParserFactory.getInstance(reportType, fileType);
|
|
@@ -322,8 +323,14 @@ public class EmailParseService {
|
|
result.setMsg("报告解析成功");
|
|
result.setMsg("报告解析成功");
|
|
result.setData(reportData);
|
|
result.setData(reportData);
|
|
} else {
|
|
} else {
|
|
- if (log.isInfoEnabled()) {
|
|
|
|
- log.info("报告{} 是已经存在ai解析记录,上传过文件{},直接跳转到AI解析器进行解析", fileName, fileId);
|
|
|
|
|
|
+ if (reportType == ReportType.OTHER) {
|
|
|
|
+ if (log.isInfoEnabled()) {
|
|
|
|
+ log.info("报告{} 是其他类型,直接用AI解析器解析", fileName);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (log.isInfoEnabled()) {
|
|
|
|
+ log.info("报告{} 是已经存在ai解析记录,上传过文件{},直接跳转到AI解析器进行解析", fileName, fileId);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} catch (ReportParseException e) {
|
|
} catch (ReportParseException e) {
|
|
@@ -451,7 +458,9 @@ public class EmailParseService {
|
|
emailTypeMap.put(EmailTypeConst.REPORT_EMAIL_TYPE,
|
|
emailTypeMap.put(EmailTypeConst.REPORT_EMAIL_TYPE,
|
|
ListUtil.toList("月报", "月度报告", "季报", "季度报告", "年报", "年度报告"));
|
|
ListUtil.toList("月报", "月度报告", "季报", "季度报告", "年报", "年度报告"));
|
|
emailTypeMap.put(EmailTypeConst.REPORT_LETTER_EMAIL_TYPE,
|
|
emailTypeMap.put(EmailTypeConst.REPORT_LETTER_EMAIL_TYPE,
|
|
- ListUtil.toList("确认单", "确认函", "交易确认数据", "赎回确认", "申购确认", "分红确认", "确认表", "交易确认", "确认"));
|
|
|
|
|
|
+ ListUtil.toList(ReportType.LETTER.getPatterns()));
|
|
|
|
+ emailTypeMap.put(EmailTypeConst.REPORT_OTHER_TYPE,
|
|
|
|
+ ListUtil.toList(ReportType.OTHER.getPatterns()));
|
|
return emailTypeMap;
|
|
return emailTypeMap;
|
|
}
|
|
}
|
|
|
|
|