|
@@ -12,6 +12,7 @@ import cn.hutool.http.HttpUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
import com.simuwang.base.common.conts.*;
|
|
import com.simuwang.base.common.conts.*;
|
|
import com.simuwang.base.common.util.EmailUtil;
|
|
import com.simuwang.base.common.util.EmailUtil;
|
|
|
|
+import com.simuwang.base.common.util.ExcelUtil;
|
|
import com.simuwang.base.common.util.FileUtil;
|
|
import com.simuwang.base.common.util.FileUtil;
|
|
import com.simuwang.base.config.DaqProperties;
|
|
import com.simuwang.base.config.DaqProperties;
|
|
import com.simuwang.base.config.EmailRuleConfig;
|
|
import com.simuwang.base.config.EmailRuleConfig;
|
|
@@ -127,6 +128,10 @@ public class EmailParseService {
|
|
log.info("采集邮件失败 -> 邮箱配置信息:{},堆栈信息:{}", mailboxInfoDTO, ExceptionUtil.stacktraceToString(e));
|
|
log.info("采集邮件失败 -> 邮箱配置信息:{},堆栈信息:{}", mailboxInfoDTO, ExceptionUtil.stacktraceToString(e));
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ if (MapUtil.isEmpty(emailContentMap)) {
|
|
|
|
+ log.info("未采集到邮件 -> 邮箱配置信息:{},开始时间:{},结束时间:{}", mailboxInfoDTO, DateUtil.format(startDate, DateConst.YYYY_MM_DD_HH_MM_SS), DateUtil.format(endDate, DateConst.YYYY_MM_DD_HH_MM_SS));
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
for (Map.Entry<String, List<EmailContentInfoDTO>> emailEntry : emailContentMap.entrySet()) {
|
|
for (Map.Entry<String, List<EmailContentInfoDTO>> emailEntry : emailContentMap.entrySet()) {
|
|
List<EmailContentInfoDTO> emailContentInfoDTOList = emailEntry.getValue();
|
|
List<EmailContentInfoDTO> emailContentInfoDTOList = emailEntry.getValue();
|
|
if (CollUtil.isEmpty(emailContentInfoDTOList)) {
|
|
if (CollUtil.isEmpty(emailContentInfoDTOList)) {
|
|
@@ -214,6 +219,7 @@ public class EmailParseService {
|
|
if (CollUtil.isEmpty(fundNavDTOList)) {
|
|
if (CollUtil.isEmpty(fundNavDTOList)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ valuationTableMapper.unValid(fileId);
|
|
for (EmailFundNavDTO fundNavDTO : fundNavDTOList) {
|
|
for (EmailFundNavDTO fundNavDTO : fundNavDTOList) {
|
|
ValuationTableDO valuationTableDO = fundNavDTO.getValuationTableDO();
|
|
ValuationTableDO valuationTableDO = fundNavDTO.getValuationTableDO();
|
|
if (valuationTableDO == null) {
|
|
if (valuationTableDO == null) {
|
|
@@ -225,21 +231,24 @@ public class EmailParseService {
|
|
List<FundPositionDetailDO> fundPositionDetailDOList = fundNavDTO.getFundPositionDetailDOList();
|
|
List<FundPositionDetailDO> fundPositionDetailDOList = fundNavDTO.getFundPositionDetailDOList();
|
|
List<CmValuationTableAttribute> valuationTableAttributeList = fundNavDTO.getValuationTableAttributeList();
|
|
List<CmValuationTableAttribute> valuationTableAttributeList = fundNavDTO.getValuationTableAttributeList();
|
|
if (CollUtil.isEmpty(fundIdList)) {
|
|
if (CollUtil.isEmpty(fundIdList)) {
|
|
- int valuationId = valuationTableMapper.insert(valuationTableDO);
|
|
|
|
|
|
+ valuationTableMapper.insert(valuationTableDO);
|
|
|
|
+ int valuationId = valuationTableDO.getId();
|
|
saveValuationTableAttribute(valuationId, valuationTableAttributeList);
|
|
saveValuationTableAttribute(valuationId, valuationTableAttributeList);
|
|
fundPositionDetailDOList.forEach(e -> e.setValuationId(valuationId));
|
|
fundPositionDetailDOList.forEach(e -> e.setValuationId(valuationId));
|
|
- saveFundPositionDetail(fundPositionDetailDOList, null, fundNavDTO.getPriceDate());
|
|
|
|
|
|
+ // 不匹配基金的情况下 -> 不写fund_position_detail
|
|
|
|
+ // saveFundPositionDetail(fundPositionDetailDOList, null, fundNavDTO.getPriceDate());
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
for (String fundId : fundIdList) {
|
|
for (String fundId : fundIdList) {
|
|
valuationTableDO.setFundId(fundId);
|
|
valuationTableDO.setFundId(fundId);
|
|
- int valuationId = valuationTableMapper.insert(valuationTableDO);
|
|
|
|
|
|
+ valuationTableMapper.insert(valuationTableDO);
|
|
|
|
+ int valuationId = valuationTableDO.getId();
|
|
fundPositionDetailDOList.forEach(e -> {
|
|
fundPositionDetailDOList.forEach(e -> {
|
|
e.setFundId(fundId);
|
|
e.setFundId(fundId);
|
|
e.setValuationId(valuationId);
|
|
e.setValuationId(valuationId);
|
|
});
|
|
});
|
|
saveValuationTableAttribute(valuationId, valuationTableAttributeList);
|
|
saveValuationTableAttribute(valuationId, valuationTableAttributeList);
|
|
- saveFundPositionDetail(fundPositionDetailDOList, null, fundNavDTO.getPriceDate());
|
|
|
|
|
|
+ saveFundPositionDetail(fundPositionDetailDOList, fundId, fundNavDTO.getPriceDate());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -803,6 +812,10 @@ public class EmailParseService {
|
|
emailContentInfoDTOList.add(emailContentInfoDTO);
|
|
emailContentInfoDTOList.add(emailContentInfoDTO);
|
|
}
|
|
}
|
|
if (CollUtil.isNotEmpty(emailContentInfoDTOList)) {
|
|
if (CollUtil.isNotEmpty(emailContentInfoDTOList)) {
|
|
|
|
+ // 估值表邮件不展示正文html文件
|
|
|
|
+ if (emailType.equals(EmailTypeConst.VALUATION_EMAIL_TYPE)) {
|
|
|
|
+ emailContentInfoDTOList = emailContentInfoDTOList.stream().filter(e -> !ExcelUtil.isHTML(e.getFilePath())).toList();
|
|
|
|
+ }
|
|
emailContentInfoDTOList.forEach(e -> {
|
|
emailContentInfoDTOList.forEach(e -> {
|
|
e.setEmailType(emailType);
|
|
e.setEmailType(emailType);
|
|
e.setSenderEmail(senderEmail);
|
|
e.setSenderEmail(senderEmail);
|