Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/dev/KLBstand' into dev/KLBstand

zhoutg 6 anni fa
parent
commit
67c9fec93c
25 ha cambiato i file con 241 aggiunte e 174 eliminazioni
  1. 1 1
      aipt-service/src/main/java/com/diagbot/dto/RetrievalDTO.java
  2. 8 7
      aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  3. 9 37
      aipt-service/src/main/java/com/diagbot/facade/EvaluationFacade.java
  4. 1 0
      aipt-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java
  5. 2 2
      aipt-service/src/main/java/com/diagbot/mapper/ConceptMapper.java
  6. 2 2
      aipt-service/src/main/java/com/diagbot/service/ConceptService.java
  7. 2 2
      aipt-service/src/main/java/com/diagbot/service/impl/ConceptServiceImpl.java
  8. 3 3
      aipt-service/src/main/java/com/diagbot/web/ConceptController.java
  9. 1 1
      aipt-service/src/main/resources/mapper/ConceptMapper.xml
  10. 20 0
      icss-service/src/main/java/com/diagbot/client/AiptServiceClient.java
  11. 23 0
      icss-service/src/main/java/com/diagbot/client/bean/ConceptExistVO.java
  12. 21 1
      icss-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java
  13. 20 0
      icss-service/src/main/java/com/diagbot/dto/ConceptRetrievalDTO.java
  14. 2 0
      icss-service/src/main/java/com/diagbot/dto/RetrievalDTO.java
  15. 22 26
      icss-service/src/main/java/com/diagbot/facade/PushFacade.java
  16. 48 37
      icss-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  17. 0 1
      icss-service/src/main/java/com/diagbot/vo/PushVO.java
  18. 6 0
      knowledgeman-service/src/main/java/com/diagbot/dto/GetConceptInfoDetailDTO.java
  19. 1 14
      knowledgeman-service/src/main/java/com/diagbot/entity/LibraryInfo.java
  20. 38 32
      knowledgeman-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  21. 2 1
      knowledgeman-service/src/main/java/com/diagbot/facade/LibraryDetailFacade.java
  22. 2 1
      knowledgeman-service/src/main/java/com/diagbot/facade/MedicalFacade.java
  23. 3 2
      knowledgeman-service/src/main/java/com/diagbot/facade/RelationFacade.java
  24. 3 3
      knowledgeman-service/src/main/resources/mapper/LibraryInfoMapper.xml
  25. 1 1
      knowledgeman-service/src/test/java/com/diagbot/CodeGeneration.java

+ 1 - 1
aipt-service/src/main/java/com/diagbot/dto/RetrievalDTO.java

@@ -10,7 +10,7 @@ import lombok.Setter;
  */
 @Getter
 @Setter
-public class RetrievalDTO {
+public class ConceptRetrievalDTO {
     private Long selfId;//本身概念id
     private String selfName;//本身名称
     private Long parentId;//父级id

+ 8 - 7
aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -3,7 +3,7 @@ package com.diagbot.facade;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptWithOrderRes;
-import com.diagbot.dto.RetrievalDTO;
+import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.enums.ConceptTypeEnum;
@@ -205,15 +205,16 @@ public class ConceptFacade extends ConceptServiceImpl {
      * @param retrievalVO
      * @return
      */
-    public List<RetrievalDTO> retrivelConceptInfo(RetrievalVO retrievalVO){
-        List<RetrievalDTO> retrievalDTOS = this.retrievalConcept(retrievalVO);
+    public List<ConceptRetrievalDTO> retrivelConceptInfo(RetrievalVO retrievalVO){
+        retrievalVO.setType(ParamConvertUtil.conceptConvert2Lib(retrievalVO.getType()));//标签类型
+        List<ConceptRetrievalDTO> conceptRetrievalDTOS = this.retrievalConcept(retrievalVO);
         //把本体的sameName过滤掉
-        for (RetrievalDTO retrievalDTO: retrievalDTOS) {
-            if(retrievalDTO.getSameName() != null && retrievalDTO.getSameName().equals(retrievalDTO.getSelfName())){
-                retrievalDTO.setSameName(null);
+        for (ConceptRetrievalDTO conceptRetrievalDTO : conceptRetrievalDTOS) {
+            if(conceptRetrievalDTO.getSameName() != null && conceptRetrievalDTO.getSameName().equals(conceptRetrievalDTO.getSelfName())){
+                conceptRetrievalDTO.setSameName(null);
             }
         }
-        return retrievalDTOS;
+        return conceptRetrievalDTOS;
     }
 
 }

+ 9 - 37
aipt-service/src/main/java/com/diagbot/facade/EvaluationFacade.java

@@ -1,64 +1,36 @@
 package com.diagbot.facade;
 
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
 import com.alibaba.fastjson.JSONObject;
 import com.diagbot.dto.EvaluationDTO;
 import com.diagbot.service.impl.EvaluationServiceImpl;
 import com.diagbot.vo.EvaluationdiseaseNameVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
 
 @Component
 public class EvaluationFacade extends EvaluationServiceImpl {
-	
+
 	@Autowired
 	PushFacade pushFacade;
+
 	/**
 	 * 获取管理与评估模板接口
 	 *
-	 * @param evaluationDiseaseIdVO
+	 * @param evaluationdiseaseNameVO
 	 * @return
 	 */
 	public List<EvaluationDTO> getEvaluationModule(EvaluationdiseaseNameVO evaluationdiseaseNameVO) {
 
 		List<EvaluationDTO> evaluationList = getEvaluationModule(evaluationdiseaseNameVO);
-		
+
 		Map<String, JSONObject> jsonobject = pushFacade.getManagementEvaluationContent(evaluationdiseaseNameVO);
 		for (String key : jsonobject.keySet()) {
 			for (EvaluationDTO evaluadata : evaluationList) {
 				if (key.equals(evaluadata.getRegionName())) {
 					evaluadata.setData(jsonobject.get(key));
-
-				}
-			}
-
-		}
-		return evaluationList;
-	}
-/*
-	*//**
-	 * 获取管理与评估模板接口
-	 *
-	 * @param diseaseId
-	 * @param contentMap
-	 * @return
-	 */
-	public List<EvaluationDTO> getEvaluationModule(Long diseaseId, Map<String, JSONObject> contentMap) {
-		EvaluationdiseaseNameVO evaluationdiseaseNameVO =new EvaluationdiseaseNameVO();
-		evaluationdiseaseNameVO.setDiseaseName("糖尿病");
-		List<EvaluationDTO> evaluationList = getEvaluationModule(evaluationdiseaseNameVO);
-		//List<EvaluationDTO> datas= evaluationList.data;
-		// 过滤
-		//List<EvaluationDTO> data = BeanUtil.listCopyTo(datas, EvaluationDTO.class);
-		if (contentMap != null && contentMap.size() > 0) {
-			for (String key : contentMap.keySet()) {
-				for (EvaluationDTO evaluadata : evaluationList) {
-					if (key.equals(evaluadata.getRegionName())) {
-						evaluadata.setData(contentMap.get(key));
-					}
 				}
 			}
 		}

+ 1 - 0
aipt-service/src/main/java/com/diagbot/facade/PatientInfoFacade.java

@@ -1,5 +1,6 @@
 package com.diagbot.facade;
 
+import com.diagbot.enums.LexiconTypeEnum;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestBody;

+ 2 - 2
aipt-service/src/main/java/com/diagbot/mapper/ConceptMapper.java

@@ -3,7 +3,7 @@ package com.diagbot.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptWithOrderRes;
-import com.diagbot.dto.RetrievalDTO;
+import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.vo.RetrievalVO;
@@ -42,5 +42,5 @@ public interface ConceptMapper extends BaseMapper<Concept> {
      * @param retrievalVO
      * @return
      */
-    List<RetrievalDTO> retrievalConcept(RetrievalVO retrievalVO);
+    List<ConceptRetrievalDTO> retrievalConcept(RetrievalVO retrievalVO);
 }

+ 2 - 2
aipt-service/src/main/java/com/diagbot/service/ConceptService.java

@@ -3,7 +3,7 @@ package com.diagbot.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptWithOrderRes;
-import com.diagbot.dto.RetrievalDTO;
+import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.vo.RetrievalVO;
@@ -42,5 +42,5 @@ public interface ConceptService extends IService<Concept> {
      * @param retrievalVO
      * @return
      */
-    List<RetrievalDTO> retrievalConcept(RetrievalVO retrievalVO);
+    List<ConceptRetrievalDTO> retrievalConcept(RetrievalVO retrievalVO);
 }

+ 2 - 2
aipt-service/src/main/java/com/diagbot/service/impl/ConceptServiceImpl.java

@@ -3,7 +3,7 @@ package com.diagbot.service.impl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptWithOrderRes;
-import com.diagbot.dto.RetrievalDTO;
+import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.mapper.ConceptMapper;
@@ -42,7 +42,7 @@ public class ConceptServiceImpl extends ServiceImpl<ConceptMapper, Concept> impl
      * @return
      */
     @Override
-    public List<RetrievalDTO> retrievalConcept(RetrievalVO retrievalVO) {
+    public List<ConceptRetrievalDTO> retrievalConcept(RetrievalVO retrievalVO) {
         return baseMapper.retrievalConcept(retrievalVO);
     }
 

+ 3 - 3
aipt-service/src/main/java/com/diagbot/web/ConceptController.java

@@ -3,8 +3,8 @@ package com.diagbot.web;
 
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.ConceptBaseDTO;
+import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.facade.ConceptFacade;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.vo.ConceptBaseVO;
@@ -92,8 +92,8 @@ public class ConceptController {
                     "inputIds:需要去重的id<br>")
     @PostMapping("/retrivelConceptInfo")
     @SysLogger("retrivelConceptInfo")
-    public RespDTO<List<RetrievalDTO>> retrivelConceptInfo(@RequestBody @Valid RetrievalVO retrievalVO) {
-        List<RetrievalDTO> data = conceptFacade.retrivelConceptInfo(retrievalVO);
+    public RespDTO<List<ConceptRetrievalDTO>> retrivelConceptInfo(@RequestBody @Valid RetrievalVO retrievalVO) {
+        List<ConceptRetrievalDTO> data = conceptFacade.retrivelConceptInfo(retrievalVO);
         return RespDTO.onSuc(data);
     }
 

+ 1 - 1
aipt-service/src/main/resources/mapper/ConceptMapper.xml

@@ -186,7 +186,7 @@
         ORDER BY t4.order_no
     </select>
 
-    <select id="retrievalConcept" resultType="com.diagbot.dto.RetrievalDTO">
+    <select id="retrievalConcept" resultType="com.diagbot.dto.ConceptRetrievalDTO">
         SELECT a1.* from (
         SELECT t1.id selfId,t1.lib_name selfName,t5.id parentId,t5.lib_name parentName,null sameName,t2.is_concept showType FROM kl_concept t1
         LEFT JOIN kl_library_info t2 ON t1.id = t2.concept_id

+ 20 - 0
icss-service/src/main/java/com/diagbot/client/AiptServiceClient.java

@@ -9,6 +9,7 @@ import com.diagbot.client.bean.SearchData;
 import com.diagbot.client.hystrix.AiptServiceHystrix;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptIntroduceDTO;
+import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.DeptInfoDTO;
 import com.diagbot.dto.DisScaleDTO;
 import com.diagbot.dto.DisTypeDTO;
@@ -28,6 +29,7 @@ import com.diagbot.vo.EvaluationdiseaseNameVO;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.IndexConfigdiseaseNameVO;
+import com.diagbot.vo.RetrievalVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -160,4 +162,22 @@ public interface AiptServiceClient {
      */
     @PostMapping("/disType/verifyDisType")
     RespDTO<Boolean> verifyDisType(@Valid @RequestBody DisTypeVO disTypeVO);
+
+    /**
+     * 根据名称和类型获取概念列表Map
+     *
+     * @param conceptExistVO
+     * @return
+     */
+    @PostMapping("/concept/getConceptMapByNameAndType")
+    RespDTO<Map<String, Long>> getConceptMapByNameAndType(@RequestBody ConceptExistVO conceptExistVO);
+
+    /**
+     * 标签检索
+     *
+     * @param retrievalVO
+     * @return
+     */
+    @PostMapping("/concept/retrivelConceptInfo")
+    RespDTO<List<ConceptRetrievalDTO>> retrivelConceptInfo(@RequestBody @Valid RetrievalVO retrievalVO);
 }

+ 23 - 0
icss-service/src/main/java/com/diagbot/client/bean/ConceptExistVO.java

@@ -0,0 +1,23 @@
+package com.diagbot.client.bean;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2019/5/6 18:50
+ */
+@Getter
+@Setter
+public class ConceptExistVO {
+    @ApiModelProperty(value = "名称列表")
+    private List<String> nameList;
+    @ApiModelProperty(value = "类型")
+    private Integer type;
+    @ApiModelProperty(hidden = true)
+    private Integer libType;
+}

+ 21 - 1
icss-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java

@@ -3,12 +3,14 @@ package com.diagbot.client.hystrix;
 import com.diagbot.client.AiptServiceClient;
 import com.diagbot.client.bean.CalculateData;
 import com.diagbot.client.bean.ConceptBaseVO;
+import com.diagbot.client.bean.ConceptExistVO;
 import com.diagbot.client.bean.DisTypeVO;
 import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.SearchData;
 import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptIntroduceDTO;
+import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.DeptInfoDTO;
 import com.diagbot.dto.DisScaleDTO;
 import com.diagbot.dto.DisTypeDTO;
@@ -28,9 +30,9 @@ import com.diagbot.vo.EvaluationdiseaseNameVO;
 import com.diagbot.vo.GetDiseaseIcdVO;
 import com.diagbot.vo.GetTopPatientInfoVO;
 import com.diagbot.vo.IndexConfigdiseaseNameVO;
+import com.diagbot.vo.RetrievalVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
-import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
@@ -207,4 +209,22 @@ public class AiptServiceHystrix implements AiptServiceClient {
         log.error("【hystrix】调用{}异常", "verifyDisType");
         return null;
     }
+
+    /**
+     * 根据名称和类型获取概念列表Map
+     *
+     * @param conceptExistVO
+     * @return
+     */
+    @Override
+    public RespDTO<Map<String, Long>> getConceptMapByNameAndType(@RequestBody ConceptExistVO conceptExistVO) {
+        log.error("【hystrix】调用{}异常", "getConceptMapByNameAndType");
+        return null;
+    }
+
+    @Override
+    public RespDTO<List<ConceptRetrievalDTO>> retrivelConceptInfo(@Valid RetrievalVO retrievalVO) {
+        log.error("【hystrix】调用{}异常", "retrivelConceptInfo");
+        return null;
+    }
 }

+ 20 - 0
icss-service/src/main/java/com/diagbot/dto/ConceptRetrievalDTO.java

@@ -0,0 +1,20 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/5/10 10:20
+ */
+@Getter
+@Setter
+public class ConceptRetrievalDTO {
+    private Long selfId;//本身概念id
+    private String selfName;//本身名称
+    private Long parentId;//父级id
+    private String parentName;//父级名称
+    private String sameName;//同义词名称
+    private Integer showType;//显示类型(1本体,2同义词)
+}

+ 2 - 0
icss-service/src/main/java/com/diagbot/dto/RetrievalDTO.java

@@ -19,4 +19,6 @@ public class RetrievalDTO {
     private Integer showType;
     //Tag名称
     private String retrievalName;
+    //概念id
+    private Long conceptId;
 }

+ 22 - 26
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.AiptServiceClient;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.bean.ConceptBaseVO;
+import com.diagbot.client.bean.ConceptExistVO;
 import com.diagbot.client.bean.FeatureRate;
 import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.ResponseData;
@@ -63,8 +64,6 @@ public class PushFacade {
     @Autowired
     private QuestionFacade questionFacade;
     @Autowired
-    private DeptInfoFacade deptInfoFacade;
-    @Autowired
     private DeptVitalFacade deptVitalFacade;
     @Autowired
     private TreatmentFacade treatmentFacade;
@@ -73,10 +72,6 @@ public class PushFacade {
     @Autowired
     private DisTypeFacade disTypeFacade;
     @Autowired
-    private ScaleContentFacade scaleContentFacade;
-    @Autowired
-    private EvaluationModuleMappingFacade evaluationModuleMappingFacade;
-    @Autowired
     private TranServiceClient tranServiceClient;
     @Autowired
     private AiptServiceClient aiptServiceClient;
@@ -182,6 +177,8 @@ public class PushFacade {
                 //公表项转套餐项
                 Map<String, List<String>> lisMapping = lisMappingFacade.getLisMappingByUniqueName();
                 List<String> nameList = Lists.newLinkedList();
+                Map<String, Long> lisMap = new LinkedHashMap<>();
+                List<ConceptPushDTO> lisDTO = Lists.newLinkedList();
                 for (ConceptPushDTO lab : labs) {
                     if (ListUtil.isNotEmpty(lisMapping.get(lab.getName()))) {
                         //匹配出多个套餐项默认取第一个
@@ -192,7 +189,25 @@ public class PushFacade {
                         nameList.add(name);
                     }
                 }
-                List<ConceptPushDTO> lisDTO = Lists.newLinkedList();
+                if (ListUtil.isNotEmpty(nameList)) {
+                    ConceptExistVO conceptExistVO = new ConceptExistVO();
+                    conceptExistVO.setNameList(nameList);
+                    conceptExistVO.setType(ConceptTypeEnum.Lis.getKey());
+                    RespDTO<Map<String, Long>> respDTO = aiptServiceClient.getConceptMapByNameAndType(conceptExistVO);
+                    if (RespDTOUtil.respIsOK(respDTO)) {
+                        lisMap = respDTO.data;
+                    }
+                }
+                for (Map.Entry<String, Long> entry : lisMap.entrySet()) {
+                    ConceptPushDTO conceptPushDTO = new ConceptPushDTO();
+                    conceptPushDTO.setConceptId(entry.getValue());
+                    conceptPushDTO.setName(entry.getKey());
+                    conceptPushDTO.setLibType(ConceptTypeEnum.Lis.getKey());
+                    lisDTO.add(conceptPushDTO);
+                }
+                if (ListUtil.isNotEmpty(lisDTO)) {
+                    lisDTO = addQuestionId(lisDTO, ConceptTypeEnum.Lis.getKey());
+                }
                 pushDTO.setLab(lisDTO);
             }
         }
@@ -208,25 +223,6 @@ public class PushFacade {
         if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.MedicalIndication.getKey()))) {
             pushDTO.setMedicalIndications(data.getMedicalIndications());
         }
-        //量表内容 featuretype=21
-        /*if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Scale.getKey()))) {
-            Map<String, Object> scale = scale(aiSearchData);
-            String scaleContent = "";
-            if (scale != null && scale.size() > 0) {
-                scaleContent = JSON.toJSONString(scale);
-            }
-            List<ScaleContent> scaleContentList = scaleContentFacade.getContent(pushVO.getScaleId(), scaleContent);
-            pushDTO.setScale(scaleContentList);
-        }*/
-
-        //管理评估 featuretype=11 && disType=1(慢病)
-        /*if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.ManagementEvaluation.getKey()))) {
-            Map<String, JSONObject> managementEvaluation = data.getManagementEvaluation();
-            if (pushVO.getDisType().equals(DisTypeEnum.CHRONIC.getKey())) {
-                List<EvaluationDTO> evaluationModule = evaluationModuleMappingFacade.getEvaluationModule(pushVO.getDiseaseId(), managementEvaluation);
-                pushDTO.setEvaluationModule(evaluationModule);
-            }
-        }*/
         return pushDTO;
     }
 

+ 48 - 37
icss-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -1,9 +1,16 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.client.AiptServiceClient;
+import com.diagbot.dto.ConceptRetrievalDTO;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.entity.QuestionInfo;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.RetrievalServiceImpl;
 import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.RetrievalVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -25,6 +32,8 @@ public class RetrievalFacade extends RetrievalServiceImpl {
 
     @Autowired
     QuestionFacade questionFacade;
+    @Autowired
+    AiptServiceClient aiptServiceClient;
 
     /**
      * 获取标签信息
@@ -33,46 +42,48 @@ public class RetrievalFacade extends RetrievalServiceImpl {
      * @return
      */
     public List<RetrievalDTO> getTagInfos(@Valid @RequestBody RetrievalVO retrievalVO) {
-        if (retrievalVO.getInputStr() == null || retrievalVO.getInputStr() == "") {
-            retrievalVO.setInputStr(" ");
-        }
-        //过滤传来的空值
-        if(ListUtil.isNotEmpty(retrievalVO.getInputIds())){
-            List<Long> questionIds = new ArrayList<>();
-            for (Long questionId:retrievalVO.getInputIds()) {
-                if (null != questionId){
-                    questionIds.add(questionId);
+        List<RetrievalDTO> retrievalDTOS = new ArrayList<>();
+        //调用aipt-服务
+        RespDTO<List<ConceptRetrievalDTO>> conceptInfos = aiptServiceClient.retrivelConceptInfo(retrievalVO);
+        RespDTOUtil.respNGDeal(conceptInfos,"获取检索信息失败");
+        //获取questionId
+        List<String> questionNames = new ArrayList<>();
+        if(ListUtil.isNotEmpty(conceptInfos.data)){
+            for (ConceptRetrievalDTO conceptRetrievalDTO: conceptInfos.data) {
+                if(!questionNames.contains(conceptRetrievalDTO.getSameName())){
+                        questionNames.add(conceptRetrievalDTO.getSelfName());
+                    }
+                    if(!questionNames.contains(conceptRetrievalDTO.getParentName())){
+                        questionNames.add(conceptRetrievalDTO.getParentName());
+                    }
                 }
-            }
-            retrievalVO.setInputIds(questionIds);
-        }
-        //获取同义词标签信息
-        List<RetrievalDTO> data = this.getSymptopInfo(retrievalVO);
-        List<Long> selfIds = new ArrayList<>();
-        for (RetrievalDTO bean : data) {//筛选本身的id
-            if ((1 == bean.getShowType())
-                    && !selfIds.contains(bean.getQuestionId())) {
-                selfIds.add(bean.getQuestionId());
-            }
-        }
-        List<RetrievalDTO> resultSubitemData = new ArrayList<>();
-        for (RetrievalDTO bean : data) {//当出现本体和同义词时,不显示同义词
-            if (1 == bean.getShowType()) {
-                resultSubitemData.add(bean);
-            } else {
-                if (!selfIds.contains(bean.getQuestionId())) {
-                    resultSubitemData.add(bean);
+            QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
+            questionInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .in("tag_name",questionNames)
+                    .eq("type",retrievalVO.getType());
+            List<QuestionInfo> questionInfoList = questionFacade.list(questionInfoQueryWrapper);
+            Map<String,QuestionInfo> questionInfoMap = questionInfoList.stream().collect(Collectors.toMap(QuestionInfo::getTagName,questionInfo -> questionInfo));
+            RetrievalDTO retrievalDTO = new RetrievalDTO();
+            //封装
+            for (ConceptRetrievalDTO conceptRetrievalDTO: conceptInfos.data) {
+                retrievalDTO = new RetrievalDTO();
+                retrievalDTO.setConceptId(conceptRetrievalDTO.getSelfId());
+                retrievalDTO.setName(conceptRetrievalDTO.getSelfName());
+                if(StringUtil.isNotEmpty(conceptRetrievalDTO.getParentName())){//parent不为空时说明有子项,返回父级id
+                    retrievalDTO.setQuestionId(questionInfoMap.get(conceptRetrievalDTO.getParentName()).getId());
+                }else {//parent为空时说明没有子项返回本体id
+                    retrievalDTO.setQuestionId(questionInfoMap.get(conceptRetrievalDTO.getSelfName()).getId());
+                }
+                if(StringUtil.isNotEmpty(conceptRetrievalDTO.getSameName())){//同义词
+                    retrievalDTO.setRetrievalName(conceptRetrievalDTO.getSameName());
                 }
+                if(StringUtil.isNotEmpty(conceptRetrievalDTO.getParentName())){//子项
+                    retrievalDTO.setRetrievalName(conceptRetrievalDTO.getParentName());
+                }
+                retrievalDTO.setShowType(conceptRetrievalDTO.getShowType());
+                retrievalDTOS.add(retrievalDTO);
             }
         }
-        List<Long> questionIdList = resultSubitemData.stream()
-                .map(r -> r.getQuestionId())
-                .collect(Collectors.toList());
-        //将标签名放入实体
-        Map<Long, QuestionInfo> map = questionFacade.getQuestionInfos(questionIdList);
-        for (RetrievalDTO retrievalDTO : resultSubitemData) {
-            retrievalDTO.setName(map.get(retrievalDTO.getQuestionId()).getTagName());
-        }
-        return resultSubitemData;
+        return retrievalDTOS;
     }
 }

+ 0 - 1
icss-service/src/main/java/com/diagbot/vo/PushVO.java

@@ -18,7 +18,6 @@ public class PushVO  extends PushBaseVO {
     private String diseaseName;
     private Long patientId;   //病人id
     private String scaleName; //量表名称
-    //private Long scaleId;     //量表id
     private Integer disType;  //0-普通病(默认不填),1-慢病,2-急诊
     private List<AdverseReaction> adverseReactions; //不良反应
     private String indications;   //推理指标

+ 6 - 0
knowledgeman-service/src/main/java/com/diagbot/dto/GetConceptInfoDetailDTO.java

@@ -19,6 +19,12 @@ public class GetConceptInfoDetailDTO {
 	@ApiModelProperty(value="名称")
     private String name;
     
+    /**
+     * 类型id
+     */
+	@ApiModelProperty(value="类型id")
+	private Long typeId;
+	
     /**
      * 类型
      */

+ 1 - 14
knowledgeman-service/src/main/java/com/diagbot/entity/LibraryInfo.java

@@ -13,7 +13,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
  * </p>
  *
  * @author gaodm
- * @since 2019-05-09
+ * @since 2019-05-13
  */
 @TableName("kl_library_info")
 public class LibraryInfo implements Serializable {
@@ -71,11 +71,6 @@ public class LibraryInfo implements Serializable {
      */
     private Long typeId;
 
-    /**
-     * 词性
-     */
-    private String type;
-
     /**
      * 拼音
      */
@@ -156,13 +151,6 @@ public class LibraryInfo implements Serializable {
     public void setTypeId(Long typeId) {
         this.typeId = typeId;
     }
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
     public String getSpell() {
         return spell;
     }
@@ -191,7 +179,6 @@ public class LibraryInfo implements Serializable {
         ", conceptId=" + conceptId +
         ", isConcept=" + isConcept +
         ", typeId=" + typeId +
-        ", type=" + type +
         ", spell=" + spell +
         ", remark=" + remark +
         "}";

+ 38 - 32
knowledgeman-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -1,5 +1,27 @@
 package com.diagbot.facade;
 
+import java.io.InputStream;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.UserServiceClient;
@@ -30,6 +52,7 @@ import com.diagbot.util.EntityUtil;
 import com.diagbot.util.IntegerUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamConvertUtil;
+import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.AddConceptInfoDetailVO;
@@ -43,27 +66,6 @@ import com.diagbot.vo.GetAllLisConceptVO;
 import com.diagbot.vo.GetConceptInfoDetailVO;
 import com.diagbot.vo.IndexVO;
 import com.diagbot.vo.RemoveConceptInfoVO;
-import org.apache.commons.lang.time.DateFormatUtils;
-import org.apache.poi.hssf.usermodel.HSSFDateUtil;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.InputStream;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * @Description: 术语查询业务层
@@ -162,14 +164,11 @@ public class ConceptFacade extends ConceptServiceImpl {
      * @return
      */
     public IPage<GetAllInformationDTO> getAllInformation(GetAllInformationVO getAllInformationVO) {
-        IPage<GetAllInformationDTO> ipage = libraryinfoFacade.getAllInformation(getAllInformationVO);
+    	IPage<GetAllInformationDTO> ipage = libraryinfoFacade.getAllInformation(getAllInformationVO);
         if (ipage.getRecords().size() > 0) {
             List<String> ids = ipage.getRecords().stream().map(i -> i.getOperName()).distinct().collect(Collectors.toList());
             RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(ids);
-            if (respDTO == null || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
-                throw new CommonException(CommonErrorCode.RPC_ERROR,
-                        "获取用户信息失败");
-            }
+            RespDTOUtil.respNGDealCover(respDTO, "获取用户信息失败");
             ipage.getRecords().forEach(i -> {
                 i.setOperName(respDTO.data.get(i.getOperName()));
             });
@@ -263,15 +262,24 @@ public class ConceptFacade extends ConceptServiceImpl {
      */
     public GetConceptInfoDTO getConceptInfoDetail(GetConceptInfoDetailVO getConceptInfoDetailVO) {
         GetConceptInfoDTO getConceptInfoDTO = new GetConceptInfoDTO();
+        
+        Concept concept = this.getById(getConceptInfoDetailVO.getConceptId());
+        if (concept == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS);
+        }
 
         QueryWrapper<LibraryInfo> libraryInfoQe = new QueryWrapper<LibraryInfo>();
         libraryInfoQe.eq("concept_id", getConceptInfoDetailVO.getConceptId());
-        List<LibraryInfo> libraryInfoList = libraryinfoFacade.list(libraryInfoQe);
+        List<GetConceptInfoDetailDTO> getConceptInfoDetailDTOList = BeanUtil.listCopyTo(libraryinfoFacade.list(libraryInfoQe), GetConceptInfoDetailDTO.class);
+        getConceptInfoDetailDTOList.forEach(i->{
+        	i.setType(LexiconTypeEnum.getName(i.getTypeId().intValue()));
+        });
 
-        getConceptInfoDTO.setLibName(BeanUtil.listCopyTo(libraryInfoList.stream().filter(i -> i.getIsConcept() != null && i.getIsConcept() == 1).collect(Collectors.toList()), GetConceptInfoDetailDTO.class));
-        getConceptInfoDTO.setOtherNames(BeanUtil.listCopyTo(libraryInfoList.stream().filter(i -> i.getIsConcept() == null || i.getIsConcept() == 0).collect(Collectors.toList()), GetConceptInfoDetailDTO.class));
+        getConceptInfoDTO.setLibName(getConceptInfoDetailDTOList.stream().filter(i -> i.getIsConcept() != null && i.getIsConcept() == 1).collect(Collectors.toList()));
+        getConceptInfoDTO.setOtherNames(getConceptInfoDetailDTOList.stream().filter(i -> i.getIsConcept() == null || i.getIsConcept() == 0).collect(Collectors.toList()));
 
-        Integer isHasCommon = lexiconFacade.getById(libraryInfoList.get(0).getTypeId()).getIsHasCommon();
+        Integer isHasCommon = lexiconFacade.getById(concept.getLibType()).getIsHasCommon();
+        getConceptInfoDTO.setIsHasCommon(isHasCommon);
         if (isHasCommon == 1) {
             QueryWrapper<ConceptCommon> conceptCommonQe = new QueryWrapper<>();
             conceptCommonQe.eq("concept_id", getConceptInfoDetailVO.getConceptId());
@@ -346,7 +354,6 @@ public class ConceptFacade extends ConceptServiceImpl {
             BeanUtil.copyProperties(addConceptInfoDetailVOMain, libraryInfoMain);
             libraryInfoMain.setGmtCreate(now);
             libraryInfoMain.setCreator(currentUser);
-            libraryInfoMain.setType(addConceptInfoVO.getType());
             libraryInfoMain.setTypeId(lexicon.getId());
             libraryinfoFacade.save(libraryInfoMain);
             concept.setLibId(libraryInfoMain.getId());
@@ -413,7 +420,6 @@ public class ConceptFacade extends ConceptServiceImpl {
         for (LibraryInfo i : saveOrUpdateLibraryInfoList) {
             i.setId(null);
             i.setConceptId(conceptId);
-            i.setType(addConceptInfoVO.getType());
             i.setTypeId(lexicon.getId());
         }
         libraryInfoMain.setIsConcept(1);

+ 2 - 1
knowledgeman-service/src/main/java/com/diagbot/facade/LibraryDetailFacade.java

@@ -16,6 +16,7 @@ import com.diagbot.dto.GetLibraryDetailListDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.LibraryDetail;
 import com.diagbot.entity.LibraryInfo;
+import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.LibraryDetailServiceImpl;
@@ -101,7 +102,7 @@ public class LibraryDetailFacade extends LibraryDetailServiceImpl {
 		GetLibraryDetailDTO getLibraryDetailDTO = new GetLibraryDetailDTO();
     	BeanUtil.copyProperties(libraryDetail, getLibraryDetailDTO);
     	getLibraryDetailDTO.setConceptName(libraryInfo.getName());
-    	getLibraryDetailDTO.setConceptType(libraryInfo.getType());
+    	getLibraryDetailDTO.setConceptType(LexiconTypeEnum.getName(libraryInfo.getTypeId().intValue()));
     	
     	return getLibraryDetailDTO;
     }

+ 2 - 1
knowledgeman-service/src/main/java/com/diagbot/facade/MedicalFacade.java

@@ -34,6 +34,7 @@ import com.diagbot.entity.Bodypart;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.LibraryInfo;
 import com.diagbot.entity.Medical;
+import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.MedicalService;
@@ -132,7 +133,7 @@ public class MedicalFacade extends MedicalServiceImpl {
     	GetMedicalInfoDetailDTO getMedicalInfoDetailDTO = new GetMedicalInfoDetailDTO();
     	BeanUtil.copyProperties(medical, getMedicalInfoDetailDTO);
     	getMedicalInfoDetailDTO.setConceptName(libraryInfo.getName());
-    	getMedicalInfoDetailDTO.setConceptType(libraryInfo.getType());
+    	getMedicalInfoDetailDTO.setConceptType(LexiconTypeEnum.getName(libraryInfo.getTypeId().intValue()));
     	
     	return getMedicalInfoDetailDTO;
     }

+ 3 - 2
knowledgeman-service/src/main/java/com/diagbot/facade/RelationFacade.java

@@ -32,6 +32,7 @@ import com.diagbot.entity.Concept;
 import com.diagbot.entity.LexiconRelationship;
 import com.diagbot.entity.LibraryInfo;
 import com.diagbot.entity.Relation;
+import com.diagbot.enums.LexiconTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.RelationService;
@@ -134,7 +135,7 @@ public class RelationFacade extends RelationServiceImpl {
     	}
     	getRelationInfoDetailDTO.setStartId(startLibraryInfo.getConceptId());
     	getRelationInfoDetailDTO.setStartName(startLibraryInfo.getName());
-    	getRelationInfoDetailDTO.setStartType(startLibraryInfo.getType());
+    	getRelationInfoDetailDTO.setStartType(LexiconTypeEnum.getName(startLibraryInfo.getTypeId().intValue()));
     	
     	
     	Concept endConcept = conceptFacade.getById(relation.getEndId());
@@ -147,7 +148,7 @@ public class RelationFacade extends RelationServiceImpl {
     	}
     	getRelationInfoDetailDTO.setEndId(endLibraryInfo.getConceptId());
     	getRelationInfoDetailDTO.setEndName(endLibraryInfo.getName());
-    	getRelationInfoDetailDTO.setEndType(endLibraryInfo.getType());
+    	getRelationInfoDetailDTO.setEndType(LexiconTypeEnum.getName(endLibraryInfo.getTypeId().intValue()));
     	
     	LexiconRelationship lexiconRelationship = lexiconRelationshipFacade.getById(relation.getRelationId());
     	if(lexiconRelationship==null||lexiconRelationship.getIsDeleted().equals("Y")){

+ 3 - 3
knowledgeman-service/src/main/resources/mapper/LibraryInfoMapper.xml

@@ -14,7 +14,6 @@
         <result column="concept_id" property="conceptId" />
         <result column="is_concept" property="isConcept" />
         <result column="type_id" property="typeId" />
-        <result column="type" property="type" />
         <result column="spell" property="spell" />
         <result column="remark" property="remark" />
     </resultMap>
@@ -25,13 +24,14 @@
 		FROM
 		(SELECT
 		a.id as conceptId,
-		GROUP_CONCAT(CASE WHEN a.lib_id=b.id THEN b.`name` ELSE NULL END) AS libName,
-		b.type AS libType,
+		a.lib_name AS libName,
+		c.`name` AS libType,
 		GROUP_CONCAT(b.`name` ORDER BY b.id ASC SEPARATOR '、') as otherNames,
 		a.modifier as operName,
 		a.gmt_modified as operTime,
 		a.is_deleted as isDeleted
 		FROM kl_concept a JOIN kl_library_info b ON a.id=b.concept_id
+		LEFT JOIN kl_lexicon c ON a.lib_type=c.id 
 		GROUP BY a.id) t
 		where 1=1
 		<if test="name!=null and name!=''">

+ 1 - 1
knowledgeman-service/src/test/java/com/diagbot/CodeGeneration.java

@@ -56,7 +56,7 @@ public class CodeGeneration {
         StrategyConfig strategy = new StrategyConfig();
         strategy.setTablePrefix(new String[] { "kl_" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "kl_lexicon"}); // 需要生成的表
+        strategy.setInclude(new String[] { "kl_library_info"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);