|
@@ -66,17 +66,17 @@ public class FundNavService {
|
|
|
log.info("查询基金规模数据");
|
|
|
if (CollUtil.isNotEmpty(assetDOList)) {
|
|
|
fundIdAssetMap = assetDOList.stream().collect(Collectors.groupingBy(AssetDO::getFundId));
|
|
|
- log.info("fundIdAssetMap:{}",fundIdAssetMap);
|
|
|
+ log.info("fundIdAssetMap:{}", fundIdAssetMap);
|
|
|
}
|
|
|
Map<String, List<NavDO>> fundIdNavMap = navDOList.stream().collect(Collectors.groupingBy(NavDO::getFundId));
|
|
|
for (Map.Entry<String, List<NavDO>> fundIdNavEntry : fundIdNavMap.entrySet()) {
|
|
|
String fundId = fundIdNavEntry.getKey();
|
|
|
- log.info("组装基金净值明细数据 -> 基金id:{}",fundId);
|
|
|
+ log.info("组装基金净值明细数据 -> 基金id:{}", fundId);
|
|
|
List<NavDO> fundNavDoList = fundIdNavEntry.getValue();
|
|
|
List<AssetDO> fundAssetDoList = fundIdAssetMap.get(fundId);
|
|
|
FundAndCompanyInfoDO fundInfoDO = fundIdCompanyNameMap.get(fundId);
|
|
|
List<FundNavDataDTO> fundNavDataDTOList = buildFundNavDataDTO(fundInfoDO, fundNavDoList, fundAssetDoList);
|
|
|
- log.info("基金净值明细数据:{}",fundNavDataDTOList);
|
|
|
+ log.info("基金净值明细数据:{}", fundNavDataDTOList);
|
|
|
navDataDTOList.addAll(fundNavDataDTOList);
|
|
|
}
|
|
|
return navDataDTOList;
|
|
@@ -96,17 +96,19 @@ public class FundNavService {
|
|
|
if (CollUtil.isEmpty(fundInfoCompanyNameList)) {
|
|
|
return navDeletionDTOList;
|
|
|
}
|
|
|
- // 得到存在基金完整的基金id
|
|
|
+ // 全部基金id
|
|
|
List<String> allFundIdList = navMapper.getAllFundId();
|
|
|
- // 得到基金净值缺失的基金Id
|
|
|
+ // 存在净值缺失的基金Id
|
|
|
List<String> deletionFundIdList = getDeletionFundId(fundInfoCompanyNameList, fundIdDeletionInfoMap);
|
|
|
List<String> notDeletionFundIdList = allFundIdList.stream().filter(e -> !deletionFundIdList.contains(e)).toList();
|
|
|
+ log.info("不缺失净值的基金id:{}", notDeletionFundIdList);
|
|
|
|
|
|
// 获取大赛开赛时间
|
|
|
String competitionStartTime = DateUtil.format(fundInfoMapper.queryCompetitionStartTime(competitionId), DateConst.YYYY_MM_DD);
|
|
|
|
|
|
// 过滤掉净值没有缺失的基金Id
|
|
|
fundInfoCompanyNameList = fundInfoCompanyNameList.stream().filter(e -> !notDeletionFundIdList.contains(e.getFundId())).toList();
|
|
|
+
|
|
|
for (FundAndCompanyInfoDO fundAndCompanyInfoDO : fundInfoCompanyNameList) {
|
|
|
String fundId = fundAndCompanyInfoDO.getFundId();
|
|
|
String inceptionDate = DateUtil.format(fundAndCompanyInfoDO.getInceptionDate(), DateConst.YYYY_MM_DD);
|
|
@@ -115,10 +117,15 @@ public class FundNavService {
|
|
|
List<FundDeletionInfoDO> fundDeletionInfoDOList = fundIdDeletionInfoMap.get(fundId);
|
|
|
if (CollUtil.isNotEmpty(fundDeletionInfoDOList)) {
|
|
|
fundDeletionInfoDOList = fundDeletionInfoDOList.stream().filter(e -> e.getDeletionDate().compareTo(date) >= 0).toList();
|
|
|
+ if (CollUtil.isEmpty(fundDeletionInfoDOList)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
+ log.info("基金id:{},缺失的净值数据:{}", fundId, fundDeletionInfoDOList);
|
|
|
// 获取净值日期所在年和所在周
|
|
|
Map<String, TradeDateDTO> tradeDateDoMap = getYearAndWeekOfDate(date, endDate);
|
|
|
List<FundNavDeletionDTO> fundNavDataDTOList = buildFundNavDeletionDTO(fundAndCompanyInfoDO, fundDeletionInfoDOList, tradeDateDoMap);
|
|
|
+ log.info("基金id:{},缺失的净值数据fundNavDataDTOList:{}", fundId, fundNavDataDTOList);
|
|
|
navDeletionDTOList.addAll(fundNavDataDTOList);
|
|
|
}
|
|
|
return navDeletionDTOList;
|