|
@@ -203,7 +203,7 @@ public class EmailParseService {
|
|
|
//记录采集表
|
|
|
if(CollUtil.isNotEmpty(fundNavDTOList)){
|
|
|
List<EmailFundNavCollectionDO> emailFundNavCollectionVOList = new ArrayList<>();
|
|
|
- fundNavDTOList.stream().forEach( e -> emailFundNavCollectionVOList.add(toEmailFundNavCollectionVO(e,fileId,parseDate)));
|
|
|
+ fundNavDTOList.stream().forEach( e -> emailFundNavCollectionVOList.add(toEmailFundNavCollectionVO(e,fileId,parseDate,emailAddress,senderEmail,emailDate)));
|
|
|
batchSaveEmailFundNavCollection(emailFundNavCollectionVOList);
|
|
|
}
|
|
|
if (CollUtil.isNotEmpty(fundNavDTOList)) {
|
|
@@ -283,7 +283,7 @@ public class EmailParseService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private EmailFundNavCollectionDO toEmailFundNavCollectionVO(EmailFundNavDTO fundNavDTO, Integer fileId,Date parseDate) {
|
|
|
+ private EmailFundNavCollectionDO toEmailFundNavCollectionVO(EmailFundNavDTO fundNavDTO, Integer fileId,Date parseDate,String email,String senderEmail,String emailDate) {
|
|
|
EmailFundNavCollectionDO vo = new EmailFundNavCollectionDO();
|
|
|
vo.setFileId(fileId);
|
|
|
vo.setFundName(fundNavDTO.getFundName());
|
|
@@ -299,6 +299,9 @@ public class EmailParseService {
|
|
|
vo.setUpdateTime(DateUtils.getNowDate());
|
|
|
vo.setIsvalid(1);
|
|
|
vo.setParseDate(parseDate);
|
|
|
+ vo.setEmail(email);
|
|
|
+ vo.setSenderEmail(senderEmail);
|
|
|
+ vo.setEmailDate(DateUtils.parse(emailDate,DateUtils.YYYY_MM_DD_HH_MM_SS));
|
|
|
return vo;
|
|
|
}
|
|
|
|
|
@@ -1123,34 +1126,98 @@ public class EmailParseService {
|
|
|
EmailParseFailAnalysisVO result = new EmailParseFailAnalysisVO();
|
|
|
//净值规模
|
|
|
List<NameValueVO> navNameValueVOS = new ArrayList<>();
|
|
|
- NameValueVO pdfNoDataVO = new NameValueVO();
|
|
|
+ NameValueVO navAssetIsErrorVO = new NameValueVO();
|
|
|
databoardQuery.setEmailType(1);
|
|
|
- Long pdfNoData = emailParseInfoMapper.countpdfNoData(databoardQuery, "无法从PDF文件中获取到数据");
|
|
|
- pdfNoDataVO.setName("无法从PDF文件中获取到数据");
|
|
|
- pdfNoDataVO.setValue(pdfNoData);
|
|
|
- navNameValueVOS.add(pdfNoDataVO);
|
|
|
+ Long navAssetIsError = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.NAV_ASSET_IS_ERROR);
|
|
|
+ navAssetIsErrorVO.setName(NavParseStatusConst.NAV_ASSET_IS_ERROR_TEXT);
|
|
|
+ navAssetIsErrorVO.setValue(navAssetIsError);
|
|
|
+ navNameValueVOS.add(navAssetIsErrorVO);
|
|
|
+
|
|
|
NameValueVO priceDateMissVO = new NameValueVO();
|
|
|
- Long priceDateMiss = emailParseInfoMapper.countpdfNoData(databoardQuery, "缺少净值日期");
|
|
|
+ Long priceDateMiss = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.PRICE_DATE_IS_NULL);
|
|
|
priceDateMissVO.setValue(priceDateMiss);
|
|
|
- priceDateMissVO.setName("缺少净值日期");
|
|
|
+ priceDateMissVO.setName(NavParseStatusConst.PRICE_DATE_IS_NULL_TEXT);
|
|
|
navNameValueVOS.add(priceDateMissVO);
|
|
|
- NameValueVO navMissVO = new NameValueVO();
|
|
|
- Long navMiss = emailParseInfoMapper.countpdfNoData(databoardQuery, "单位净值和累计净值和资产净值均缺失");
|
|
|
- navMissVO.setName("单位净值和累计净值和资产净值均缺失");
|
|
|
- navMissVO.setValue(navMiss);
|
|
|
- navNameValueVOS.add(navMissVO);
|
|
|
+
|
|
|
+ NameValueVO navAssetMissVO = new NameValueVO();
|
|
|
+ Long navAssetMiss = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.NAV_ASSET_IS_NULL);
|
|
|
+ navAssetMissVO.setName(NavParseStatusConst.NAV_ASSET_IS_NULL_TEXT);
|
|
|
+ navAssetMissVO.setValue(navAssetMiss);
|
|
|
+ navNameValueVOS.add(navAssetMissVO);
|
|
|
+
|
|
|
NameValueVO fundNameNumberMissVO = new NameValueVO();
|
|
|
- Long fundNameNumberMiss = emailParseInfoMapper.countpdfNoData(databoardQuery, "基金名称和备案编码均缺失");
|
|
|
- fundNameNumberMissVO.setName("基金名称和备案编码均缺失");
|
|
|
+ Long fundNameNumberMiss = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.FUND_NAME_REGISTER_IS_NULL);
|
|
|
+ fundNameNumberMissVO.setName(NavParseStatusConst.FUND_NAME_REGISTER_IS_NULL_TEXT);
|
|
|
fundNameNumberMissVO.setValue(fundNameNumberMiss);
|
|
|
navNameValueVOS.add(fundNameNumberMissVO);
|
|
|
+
|
|
|
+ NameValueVO navMissVO = new NameValueVO();
|
|
|
+ Long navMiss = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.NAV_DEFICIENCY);
|
|
|
+ navMissVO.setName(NavParseStatusConst.NAV_DEFICIENCY_TEXT);
|
|
|
+ navMissVO.setValue(navMiss);
|
|
|
+ navNameValueVOS.add(navMissVO);
|
|
|
+
|
|
|
+ NameValueVO navNegativeVO = new NameValueVO();
|
|
|
+ Long navNegative = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.NAV_NEGATIVE);
|
|
|
+ navNegativeVO.setName(NavParseStatusConst.NAV_NEGATIVE_TEXT);
|
|
|
+ navNegativeVO.setValue(navNegative);
|
|
|
+ navNameValueVOS.add(navNegativeVO);
|
|
|
+
|
|
|
+ NameValueVO assetLessZeroVO = new NameValueVO();
|
|
|
+ Long assetLessZero = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.ASSET_NET_NEGATIVE);
|
|
|
+ assetLessZeroVO.setName(NavParseStatusConst.ASSET_NET_NEGATIVE_TEXT);
|
|
|
+ assetLessZeroVO.setValue(assetLessZero);
|
|
|
+ navNameValueVOS.add(assetLessZeroVO);
|
|
|
+
|
|
|
+ NameValueVO notMatchFundVO = new NameValueVO();
|
|
|
+ Long notMatch = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.NOT_MATCH);
|
|
|
+ notMatchFundVO.setName(NavParseStatusConst.NOT_MATCH_TEXT);
|
|
|
+ notMatchFundVO.setValue(notMatch);
|
|
|
+ navNameValueVOS.add(notMatchFundVO);
|
|
|
+
|
|
|
+ NameValueVO amplitudeNavVO = new NameValueVO();
|
|
|
+ Long amplitudeNav = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.AMPLITUDE_EXCEPTION);
|
|
|
+ amplitudeNavVO.setName(NavParseStatusConst.AMPLITUDE_EXCEPTION_TEXT);
|
|
|
+ amplitudeNavVO.setValue(amplitudeNav);
|
|
|
+ navNameValueVOS.add(amplitudeNavVO);
|
|
|
+
|
|
|
+ NameValueVO amplitudeNavErrorVO = new NameValueVO();
|
|
|
+ Long amplitudeNavError = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.AMPLITUDE_ERROR);
|
|
|
+ amplitudeNavErrorVO.setName(NavParseStatusConst.AMPLITUDE_ERROR_TEXT);
|
|
|
+ amplitudeNavErrorVO.setValue(amplitudeNavError);
|
|
|
+ navNameValueVOS.add(amplitudeNavErrorVO);
|
|
|
+
|
|
|
+ NameValueVO priceDateAfterNowVO = new NameValueVO();
|
|
|
+ Long priceDateAfterNow = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.PRICE_DATE_AFTER_NOW);
|
|
|
+ priceDateAfterNowVO.setName(NavParseStatusConst.PRICE_DATE_AFTER_NOW_TEXT);
|
|
|
+ priceDateAfterNowVO.setValue(priceDateAfterNow);
|
|
|
+ navNameValueVOS.add(priceDateAfterNowVO);
|
|
|
+
|
|
|
+ NameValueVO priceDateErrorVO = new NameValueVO();
|
|
|
+ Long priceDateError = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.PRICE_DATE_IS_ERROR);
|
|
|
+ priceDateErrorVO.setName(NavParseStatusConst.PRICE_DATE_IS_ERROR_TEXT);
|
|
|
+ priceDateErrorVO.setValue(priceDateError);
|
|
|
+ navNameValueVOS.add(priceDateErrorVO);
|
|
|
+
|
|
|
+ NameValueVO priceDateBeforeInceptionVO = new NameValueVO();
|
|
|
+ Long priceDateBeforeInception = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.PRICE_DATE_BEFORE_INCEPTION);
|
|
|
+ priceDateBeforeInceptionVO.setName(NavParseStatusConst.PRICE_DATE_BEFORE_INCEPTION_TEXT);
|
|
|
+ priceDateBeforeInceptionVO.setValue(priceDateBeforeInception);
|
|
|
+ navNameValueVOS.add(priceDateBeforeInceptionVO);
|
|
|
+
|
|
|
+ NameValueVO priceDateNotWorkDayVO = new NameValueVO();
|
|
|
+ Long priceDateNotWorkDay = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.PRICE_DATE_NOT_WORK_DAY);
|
|
|
+ priceDateNotWorkDayVO.setName(NavParseStatusConst.PRICE_DATE_NOT_WORK_DAY_TEXT);
|
|
|
+ priceDateNotWorkDayVO.setValue(priceDateNotWorkDay);
|
|
|
+ navNameValueVOS.add(priceDateNotWorkDayVO);
|
|
|
+
|
|
|
+ NameValueVO priceDateAfterLiquidateVO = new NameValueVO();
|
|
|
+ Long priceDateAfterLiquidate = emailFundNavCollectionMapper.countDataByExceptionStatus(databoardQuery, NavParseStatusConst.PRICE_DATE_AFTER_LIQUIDATE);
|
|
|
+ priceDateAfterLiquidateVO.setName(NavParseStatusConst.PRICE_DATE_AFTER_LIQUIDATE_TEXT);
|
|
|
+ priceDateAfterLiquidateVO.setValue(priceDateAfterLiquidate);
|
|
|
+ navNameValueVOS.add(priceDateAfterLiquidateVO);
|
|
|
result.setNavFailAnalysisVO(navNameValueVOS);
|
|
|
- NameValueVO templateUnSupportVO = new NameValueVO();
|
|
|
- Long templateUnSupport = emailParseInfoMapper.countpdfNoData(databoardQuery, "模板不支持");
|
|
|
- templateUnSupportVO.setName("模板不支持");
|
|
|
- templateUnSupportVO.setValue(templateUnSupport);
|
|
|
- navNameValueVOS.add(templateUnSupportVO);
|
|
|
- result.setNavFailAnalysisVO(navNameValueVOS);
|
|
|
+
|
|
|
//估值表规模
|
|
|
databoardQuery.setEmailType(2);
|
|
|
List<NameValueVO> valuationNameValueVOS = new ArrayList<>();
|