|
@@ -1,12 +1,25 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
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.service.KlDiseaseService;
|
|
|
import com.diagbot.service.impl.KlDiseaseServiceImpl;
|
|
|
+import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.vo.DiseasePageVO;
|
|
|
+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.stereotype.Component;
|
|
|
|
|
|
+import java.util.LinkedHashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
/**
|
|
|
* @author wangfeng
|
|
|
* @Description:
|
|
@@ -18,4 +31,47 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
|
|
|
public IPage<DiseasePageDTO> getDiseasePageAll(DiseasePageVO klConceptInfoVO) {
|
|
|
return this.getDiseasePage(klConceptInfoVO);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ public DiseaseDetailDTO getDetail(GetDiseaseDetailVO getDiseaseDetailVO) {
|
|
|
+ DiseaseDetailDTO diseaseDetailDTO = new DiseaseDetailDTO();
|
|
|
+
|
|
|
+ Map<Integer,List<DiseaseSubDetailDTO>> disSubDetailMap = Maps.newHashMap();
|
|
|
+ List<DiseaseAllDetailDTO> diseaseAllDetailDTOS = this.getDiseaseDetail(getDiseaseDetailVO);
|
|
|
+ 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());
|
|
|
+ diseaseSubDetailDTO.setRid(x.getRid());
|
|
|
+ diseaseSubDetailDTO.setRname(x.getRname());
|
|
|
+ diseaseSubDetailDTOS.add(diseaseSubDetailDTO);
|
|
|
+ disSubDetailMap.put(x.getRid(),diseaseSubDetailDTOS);
|
|
|
+ }else {
|
|
|
+ List<DiseaseSubDetailDTO> diseaseSubDetailDTOS = Lists.newArrayList();
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ return diseaseDetailDTO;
|
|
|
+ }
|
|
|
}
|