|
|
|
@ -248,15 +248,18 @@ public class ModelIndexServiceImpl extends ServiceImpl<ModelIndexMapper, ModelIn
|
|
|
|
|
.eq(ModelAtomicResult::getCasePersonId, actorId)
|
|
|
|
|
.in(ModelAtomicResult::getAtomicId, atomicIndexIds));
|
|
|
|
|
|
|
|
|
|
Map<String, ModelAtomicResult> modelAtomicResultMap = modelAtomicResults.stream()
|
|
|
|
|
.filter(modelAtomicResult -> StrUtil.isNotEmpty(modelAtomicResult.getAtomicId())).collect(Collectors.toMap(ModelAtomicResult::getAtomicId, v -> v, (v1, v2) -> v1));
|
|
|
|
|
Map<String, Map<String, List<ModelAtomicResult>>> modelAtomicResultGroup = modelAtomicResults.stream()
|
|
|
|
|
.filter(modelAtomicResult -> StrUtil.isNotEmpty(modelAtomicResult.getAtomicId()))
|
|
|
|
|
.collect(Collectors.groupingBy(ModelAtomicResult::getIndexId, Collectors.groupingBy(ModelAtomicResult::getAtomicId)));
|
|
|
|
|
|
|
|
|
|
Map<String, List<ModelIndex>> modelIndexMapAtomic = groupModelIndexByAtomicIndexId(modelIndexList);
|
|
|
|
|
|
|
|
|
|
// 以原子指标为基准,组装数据
|
|
|
|
|
return modelAtomicIndexList.stream().flatMap(atomicIndex ->
|
|
|
|
|
modelIndexMapAtomic.get(atomicIndex.getId()).stream().map(modelIndex ->
|
|
|
|
|
new CaseAtomicIndexDTO(atomicIndex, modelIndex, modelAtomicResultMap.get(atomicIndex.getId())))
|
|
|
|
|
modelIndexMapAtomic.get(atomicIndex.getId()).stream().map(modelIndex ->{
|
|
|
|
|
Map<String, List<ModelAtomicResult>> map = modelAtomicResultGroup.getOrDefault(modelIndex.getId(),new HashMap<>(1));
|
|
|
|
|
return new CaseAtomicIndexDTO(atomicIndex, modelIndex,CollUtil.getFirst(map.get(atomicIndex.getId())));
|
|
|
|
|
})
|
|
|
|
|
).toList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|