|
@@ -1,11 +1,15 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.diagbot.dto.DiseaseAllDetailDTO;
|
|
|
import com.diagbot.dto.DiseaseDetailDTO;
|
|
|
import com.diagbot.dto.DiseasePageDTO;
|
|
|
import com.diagbot.dto.DiseaseSubDetailDTO;
|
|
|
+import com.diagbot.entity.KlConcept;
|
|
|
+import com.diagbot.entity.KlLexiconRelationship;
|
|
|
import com.diagbot.service.KlDiseaseService;
|
|
|
+import com.diagbot.service.KlLexiconRelationshipService;
|
|
|
import com.diagbot.service.impl.KlDiseaseServiceImpl;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.vo.DiseasePageVO;
|
|
@@ -13,6 +17,7 @@ import com.diagbot.vo.GetDiseaseDetailVO;
|
|
|
import com.google.common.collect.Maps;
|
|
|
import org.apache.commons.collections4.MapUtils;
|
|
|
import org.apache.commons.compress.utils.Lists;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.LinkedHashMap;
|
|
@@ -27,51 +32,71 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
|
@Component
|
|
|
public class KlDiseaseFacade extends KlDiseaseServiceImpl {
|
|
|
+ @Autowired
|
|
|
+ KlLexiconRelationshipFacade klLexiconRelationshipFacade;
|
|
|
|
|
|
public IPage<DiseasePageDTO> getDiseasePageAll(DiseasePageVO klConceptInfoVO) {
|
|
|
- return this.getDiseasePage(klConceptInfoVO);
|
|
|
+ return this.getDiseasePage(klConceptInfoVO);
|
|
|
}
|
|
|
|
|
|
|
|
|
public DiseaseDetailDTO getDetail(GetDiseaseDetailVO getDiseaseDetailVO) {
|
|
|
DiseaseDetailDTO diseaseDetailDTO = new DiseaseDetailDTO();
|
|
|
|
|
|
- Map<Integer,List<DiseaseSubDetailDTO>> disSubDetailMap = Maps.newHashMap();
|
|
|
+ List<Integer> types = getDiseaseDetailVO.getTypes();
|
|
|
+ Map<Integer, String> type_nameMap = klLexiconRelationshipFacade.getTypeNameMap(getDiseaseDetailVO);
|
|
|
+
|
|
|
+ Map<Integer, DiseaseSubDetailDTO> disSubDetailMap = Maps.newHashMap();
|
|
|
List<DiseaseAllDetailDTO> diseaseAllDetailDTOS = this.getDiseaseDetail(getDiseaseDetailVO);
|
|
|
- if(ListUtil.isNotEmpty(diseaseAllDetailDTOS)){
|
|
|
- diseaseAllDetailDTOS.forEach(x ->{
|
|
|
+ if (ListUtil.isNotEmpty(diseaseAllDetailDTOS)) {
|
|
|
+ diseaseAllDetailDTOS.forEach(x -> {
|
|
|
diseaseDetailDTO.setSid(x.getSid());
|
|
|
diseaseDetailDTO.setDisName(x.getDisName());
|
|
|
- if(disSubDetailMap.containsKey(x.getRid())){
|
|
|
- List<DiseaseSubDetailDTO> diseaseSubDetailDTOS = disSubDetailMap.get(x.getRid());
|
|
|
- DiseaseSubDetailDTO diseaseSubDetailDTO = new DiseaseSubDetailDTO();
|
|
|
- diseaseSubDetailDTO.setEid(x.getEid());
|
|
|
- diseaseSubDetailDTO.setItemName(x.getItemName());
|
|
|
+ if (disSubDetailMap.containsKey(x.getRid())) {
|
|
|
+ DiseaseSubDetailDTO diseaseSubDetailDTO = disSubDetailMap.get(x.getRid());
|
|
|
+
|
|
|
diseaseSubDetailDTO.setRid(x.getRid());
|
|
|
diseaseSubDetailDTO.setRname(x.getRname());
|
|
|
- diseaseSubDetailDTOS.add(diseaseSubDetailDTO);
|
|
|
- disSubDetailMap.put(x.getRid(),diseaseSubDetailDTOS);
|
|
|
- }else {
|
|
|
- List<DiseaseSubDetailDTO> diseaseSubDetailDTOS = Lists.newArrayList();
|
|
|
+ List<KlConcept> details = diseaseSubDetailDTO.getDetails();
|
|
|
+ diseaseSubDetailDTO.setDetails(details);
|
|
|
+ KlConcept klConcept = new KlConcept();
|
|
|
+ klConcept.setId(x.getEid());
|
|
|
+ klConcept.setLibName(x.getItemName());
|
|
|
+ details.add(klConcept);
|
|
|
+
|
|
|
+ disSubDetailMap.put(x.getRid(), diseaseSubDetailDTO);
|
|
|
+ } else {
|
|
|
DiseaseSubDetailDTO diseaseSubDetailDTO = new DiseaseSubDetailDTO();
|
|
|
- diseaseSubDetailDTO.setEid(x.getEid());
|
|
|
- diseaseSubDetailDTO.setItemName(x.getItemName());
|
|
|
+
|
|
|
diseaseSubDetailDTO.setRid(x.getRid());
|
|
|
diseaseSubDetailDTO.setRname(x.getRname());
|
|
|
- diseaseSubDetailDTOS.add(diseaseSubDetailDTO);
|
|
|
- disSubDetailMap.put(x.getRid(),diseaseSubDetailDTOS);
|
|
|
+ List<KlConcept> details = Lists.newArrayList();
|
|
|
+ diseaseSubDetailDTO.setDetails(details);
|
|
|
+ KlConcept klConcept = new KlConcept();
|
|
|
+ klConcept.setId(x.getEid());
|
|
|
+ klConcept.setLibName(x.getItemName());
|
|
|
+ details.add(klConcept);
|
|
|
+
|
|
|
+ disSubDetailMap.put(x.getRid(), diseaseSubDetailDTO);
|
|
|
}
|
|
|
|
|
|
});
|
|
|
}
|
|
|
- if(MapUtils.isNotEmpty(disSubDetailMap)){
|
|
|
- Map<Integer, List<DiseaseSubDetailDTO>> collect = disSubDetailMap.entrySet().stream().sorted(Map.Entry.comparingByKey())
|
|
|
- .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
|
|
|
- (oldValue, newValue) -> newValue, LinkedHashMap::new));
|
|
|
- List<List<DiseaseSubDetailDTO>> datas = Lists.newArrayList();
|
|
|
- collect.forEach((x,y)->datas.add(y));
|
|
|
- diseaseDetailDTO.setDatas(datas);
|
|
|
+ List<DiseaseSubDetailDTO> datas = Lists.newArrayList();
|
|
|
+ if (MapUtils.isNotEmpty(disSubDetailMap)) {
|
|
|
+ for (Integer type : types) {
|
|
|
+ if (disSubDetailMap.containsKey(type)) {
|
|
|
+ datas.add(disSubDetailMap.get(type));
|
|
|
+ } else {
|
|
|
+ DiseaseSubDetailDTO diseaseSubDetailDTO = new DiseaseSubDetailDTO();
|
|
|
+ diseaseSubDetailDTO.setRid(type);
|
|
|
+ diseaseSubDetailDTO.setRname(type_nameMap.get(type));
|
|
|
+ datas.add(diseaseSubDetailDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
+ diseaseDetailDTO.setDatas(datas);
|
|
|
return diseaseDetailDTO;
|
|
|
}
|
|
|
}
|