瀏覽代碼

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

gaodm 6 年之前
父節點
當前提交
1e167d523c
共有 36 個文件被更改,包括 408 次插入298 次删除
  1. 1 1
      aipt-service/src/main/java/com/diagbot/dto/RetrievalDTO.java
  2. 47 9
      aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  3. 31 0
      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. 23 0
      aipt-service/src/main/java/com/diagbot/vo/ConceptExistVO.java
  9. 1 1
      aipt-service/src/main/java/com/diagbot/vo/EvaluationdiseaseNameVO.java
  10. 20 3
      aipt-service/src/main/java/com/diagbot/web/ConceptController.java
  11. 1 1
      aipt-service/src/main/resources/mapper/ConceptMapper.xml
  12. 0 1
      aipt-service/src/main/resources/mapper/IndexConfigMapper.xml
  13. 21 0
      icss-service/src/main/java/com/diagbot/client/AiptServiceClient.java
  14. 23 0
      icss-service/src/main/java/com/diagbot/client/bean/ConceptExistVO.java
  15. 27 1
      icss-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java
  16. 20 0
      icss-service/src/main/java/com/diagbot/dto/ConceptRetrievalDTO.java
  17. 2 0
      icss-service/src/main/java/com/diagbot/dto/RetrievalDTO.java
  18. 22 26
      icss-service/src/main/java/com/diagbot/facade/PushFacade.java
  19. 48 37
      icss-service/src/main/java/com/diagbot/facade/RetrievalFacade.java
  20. 0 0
      icss-service/src/main/java/com/diagbot/vo/EvaluationDiseaseNameVO.java
  21. 0 1
      icss-service/src/main/java/com/diagbot/vo/PushVO.java
  22. 1 1
      icssman-service/src/main/java/com/diagbot/client/KnowledgemanServiceClient.java
  23. 1 2
      icssman-service/src/main/java/com/diagbot/client/hystrix/KnowledgemanServiceHystrix.java
  24. 2 2
      icssman-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  25. 20 124
      icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java
  26. 6 0
      knowledgeman-service/src/main/java/com/diagbot/dto/GetConceptInfoDetailDTO.java
  27. 1 14
      knowledgeman-service/src/main/java/com/diagbot/entity/LibraryInfo.java
  28. 53 40
      knowledgeman-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  29. 2 1
      knowledgeman-service/src/main/java/com/diagbot/facade/LibraryDetailFacade.java
  30. 2 1
      knowledgeman-service/src/main/java/com/diagbot/facade/MedicalFacade.java
  31. 3 2
      knowledgeman-service/src/main/java/com/diagbot/facade/RelationFacade.java
  32. 3 3
      knowledgeman-service/src/main/java/com/diagbot/vo/ConceptExistVO.java
  33. 1 1
      knowledgeman-service/src/main/java/com/diagbot/web/CommonConceptController.java
  34. 15 16
      knowledgeman-service/src/main/resources/mapper/ConceptMapper.xml
  35. 3 3
      knowledgeman-service/src/main/resources/mapper/LibraryInfoMapper.xml
  36. 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

+ 47 - 9
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;
@@ -16,6 +16,7 @@ import com.diagbot.service.impl.ConceptServiceImpl;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.vo.ConceptBaseVO;
+import com.diagbot.vo.ConceptExistVO;
 import com.diagbot.vo.ConceptSearchVO;
 import com.diagbot.vo.ConceptUsualVO;
 import com.diagbot.vo.RetrievalVO;
@@ -116,12 +117,48 @@ public class ConceptFacade extends ConceptServiceImpl {
     public List<Concept> getListByNamesAndType(List<String> nameList, Integer libType) {
         QueryWrapper<Concept> conceptQueryWrapper = new QueryWrapper<>();
         conceptQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .in("lib_name", nameList)
-                .eq("lib_type", libType);
+                .in("lib_name", nameList);
+        if (libType != null) {
+            conceptQueryWrapper.eq("lib_type", libType);
+        }
         List<Concept> list = this.list(conceptQueryWrapper);
         return list;
     }
 
+
+    /**
+     * 根据名称和类型获取概念列表Map
+     *
+     * @param conceptExistVO 搜索参数
+     * @return 术语id和术语 Map
+     */
+    public Map<String, Long> getConceptMap(ConceptExistVO conceptExistVO) {
+        // 入参验证
+        if (ListUtil.isEmpty(conceptExistVO.getNameList())) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "名称列表不能为空");
+        }
+
+        if (conceptExistVO.getType() != null) {
+            Integer libType = ParamConvertUtil.conceptConvert2Lib(conceptExistVO.getType());
+            if (libType == null) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "类型不匹配");
+            }
+            conceptExistVO.setLibType(libType);
+        }
+
+        //获取结构
+        List<Concept> concepts
+                = this.getListByNamesAndType(conceptExistVO.getNameList(), conceptExistVO.getLibType());
+
+        //出参封装
+        Map<String, Long> map = new HashMap<>();
+        if (ListUtil.isNotEmpty(concepts)) {
+            map = concepts.stream().collect(Collectors.toMap(r -> r.getLibName(), r -> r.getId()));
+        }
+        return map;
+    }
+
+
     /**
      * 获取常用标签
      *
@@ -168,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;
     }
 
 }

+ 31 - 0
aipt-service/src/main/java/com/diagbot/facade/EvaluationFacade.java

@@ -1,8 +1,39 @@
 package com.diagbot.facade;
 
+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 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;
+	}
 }

+ 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);
     }
 

+ 23 - 0
aipt-service/src/main/java/com/diagbot/vo/ConceptExistVO.java

@@ -0,0 +1,23 @@
+package com.diagbot.vo;
+
+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;
+}

+ 1 - 1
aipt-service/src/main/java/com/diagbot/vo/EvaluationdiseaseNameVO.java

@@ -11,7 +11,7 @@ import lombok.Setter;
  */
 @Setter
 @Getter
-public class EvaluationdiseaseNameVO {
+public class EvaluationdiseaseNameVO extends SearchVo{
 
 	private String diseaseName;
 	

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

@@ -3,11 +3,12 @@ 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;
+import com.diagbot.vo.ConceptExistVO;
 import com.diagbot.vo.ConceptSearchVO;
 import com.diagbot.vo.ConceptUsualVO;
 import com.diagbot.vo.RetrievalVO;
@@ -91,8 +92,24 @@ 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);
     }
+
+
+    /**
+     * 根据名称和类型获取概念列表Map
+     *
+     * @param conceptExistVO 搜索参数
+     * @return 术语id和术语 Map
+     */
+    @ApiOperation(value = "知识库标准化-根据名称和类型获取概念列表Map[by:zhoutg]",
+            notes = "nameList: 名称列表<br>" +
+                    "type: 类型")
+    @PostMapping("/getConceptMapByNameAndType")
+    @SysLogger("getConceptMapByNameAndType")
+    public RespDTO<Map<String, Long>> getConceptMapByNameAndType(@RequestBody ConceptExistVO conceptExistVO){
+        return RespDTO.onSuc(conceptFacade.getConceptMap(conceptExistVO));
+    }
 }

+ 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

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

@@ -28,7 +28,6 @@
 		LEFT JOIN kl_concept b ON a.concept_id = b.id and  b.is_deleted ="N"
 		LEFT JOIN kl_concept c ON a.disease_id = c.id and  c.is_deleted ="N"
 		WHERE a.is_deleted ="N"
-		and b.lib_type = 46
 		and c.lib_type = 18
 		<if test="indexConfig.diseaseName != ''">
 		AND c.lib_name =  #{indexConfig.diseaseName}

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

@@ -2,6 +2,7 @@ package com.diagbot.client;
 
 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;
@@ -9,6 +10,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 +30,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 +163,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;
+}

+ 27 - 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,28 @@ 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;
+    }
+
+    /**
+     * 标签检索
+     *
+     * @param retrievalVO
+     * @return
+     */
+    @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;
     }
 }

icss-service/src/main/java/com/diagbot/vo/EvaluationdiseaseNameVO.java → icss-service/src/main/java/com/diagbot/vo/EvaluationDiseaseNameVO.java


+ 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;   //推理指标

+ 1 - 1
icssman-service/src/main/java/com/diagbot/client/KnowledgemanServiceClient.java

@@ -26,7 +26,7 @@ public interface KnowledgemanServiceClient {
     RespDTO<List<ConceptBaseDTO>> index(@RequestBody IndexVO indexVO);
 
     @PostMapping("/commonconcept/getConceptMapByNameAndType")
-    RespDTO<Map<String, Long>> getConceptMap(@RequestBody ConceptExistVO conceptExistVO);
+    RespDTO<Map<String, List<Integer>>> getConceptMap(@RequestBody ConceptExistVO conceptExistVO);
 
     /**
      * 根据概念Id列表获取概念列表Map

+ 1 - 2
icssman-service/src/main/java/com/diagbot/client/hystrix/KnowledgemanServiceHystrix.java

@@ -9,7 +9,6 @@ import com.diagbot.vo.ConceptTypeVO;
 import com.diagbot.vo.IndexVO;
 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 java.util.List;
@@ -31,7 +30,7 @@ public class KnowledgemanServiceHystrix implements KnowledgemanServiceClient {
     }
 
     @Override
-    public RespDTO<Map<String, Long>> getConceptMap(ConceptExistVO conceptExistVO) {
+    public RespDTO<Map<String, List<Integer>>> getConceptMap(ConceptExistVO conceptExistVO) {
         log.error("【hystrix】调用{}异常", "getConceptMap");
         return null;
     }

+ 2 - 2
icssman-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -31,8 +31,8 @@ public class ConceptFacade extends DisTypeServiceImpl {
     }
 
 
-    public Map<String, Long> getConceptMap(ConceptExistVO conceptExistVO){
-        RespDTO<Map<String, Long>> res = knowledgemanServiceClient.getConceptMap(conceptExistVO);
+    public Map<String, List<Integer>> getConceptMap(ConceptExistVO conceptExistVO){
+        RespDTO<Map<String, List<Integer>>> res = knowledgemanServiceClient.getConceptMap(conceptExistVO);
         RespDTOUtil.respNGDeal(res, "远程调用获取概念列表失败");
         return res.data;
     }

+ 20 - 124
icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -13,14 +13,10 @@ import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.CommonParam;
 import com.diagbot.entity.DeptInfo;
 import com.diagbot.entity.DeptVital;
-import com.diagbot.entity.DisScale;
 import com.diagbot.entity.DisType;
-import com.diagbot.entity.ModuleDetail;
-import com.diagbot.entity.ModuleInfo;
 import com.diagbot.entity.QuestionDetail;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.entity.QuestionMapping;
-import com.diagbot.entity.RetrievalMapping;
 import com.diagbot.entity.wrapper.QuestionInfoWrapper;
 import com.diagbot.entity.wrapper.QuestionMappingWrapper;
 import com.diagbot.entity.wrapper.QuestionWrapper;
@@ -39,8 +35,10 @@ import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
+import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
+import com.diagbot.vo.ConceptExistVO;
 import com.diagbot.vo.DeleteQuestionVO;
 import com.diagbot.vo.GetQuestionIdsByTypeVO;
 import com.diagbot.vo.GetQuestionInfoVO;
@@ -135,11 +133,6 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
             default:
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "请选择标签显示类型");
         }
-
-        //保存诊断类型
-        if (questionSaveVO.getDisTypeVO() != null) {
-            saveDisType(param, questionSaveVO.getDisTypeVO().getType());
-        }
     }
 
 
@@ -158,33 +151,6 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
     }
 
 
-    /**
-     * 保存诊断类型
-     *
-     * @param param
-     * @param disType
-     */
-    public void saveDisType(CommonParam param, Integer disType) {
-        if (param.getQuestionInfo().getType() == QuestionTypeEnum.Disease.getKey()) {
-            DisType bean = disTypeFacade.getOne(new QueryWrapper<DisType>()
-                    .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("dis_id", param.getQuestionInfo().getId()));
-            if (bean == null) {
-                bean = new DisType();
-            }
-            if (InsertOrUpdateEnum.Insert.getKey() == param.getInsertOrUpdate()) {
-                bean.setGmtCreate(param.getNow());
-                bean.setCreator(param.getPerson());
-            }
-            bean.setType(disType);
-            bean.setDisId(param.getQuestionInfo().getId());
-            bean.setModifier(param.getPerson());
-            bean.setGmtModified(param.getNow());
-            disTypeFacade.saveOrUpdate(bean);
-        }
-    }
-
-
     /**
      * 保存映射关系
      *
@@ -436,23 +402,24 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
             bean.setModifier(mapRespDTO.data.get(bean.getModifier()));
         }
 
-        //TODO 待修改
-//        List<String> nameList = res.getRecords().stream().map(row -> row.getTagName()).collect(Collectors.toList());
-//        ConceptExistVO conceptExistVO = new ConceptExistVO();
-//        conceptExistVO.setNameList(nameList);
-//        conceptExistVO.setType(res.getRecords().get(0).getType());
-//        try {
-//            RespDTO<Map<String, Long>> resMap = knowledgemanServiceClient.getConceptMap(conceptExistVO);
-//            RespDTOUtil.respNGDeal(resMap, "远程调用根据名称和类型获取概念列表失败");
-//            Map<String, Long> map = resMap.data;
-//            for (QuestionPageDTO bean :  res.getRecords()) {
-//                if(map.get(bean.getTagName()) != null) {
-//                    bean.setExist(true);
-//                }
-//            }
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
+        List<String> nameList = res.getRecords().stream().map(row -> row.getTagName()).collect(Collectors.toList());
+        ConceptExistVO conceptExistVO = new ConceptExistVO();
+        conceptExistVO.setNameList(nameList);
+        try {
+            RespDTO<Map<String, List<Integer>>> resMap = knowledgemanServiceClient.getConceptMap(conceptExistVO);
+            RespDTOUtil.respNGDeal(resMap, "远程调用根据名称和类型获取概念列表失败");
+            Map<String, List<Integer>> map = resMap.data;
+            for (QuestionPageDTO bean : res.getRecords()) {
+                List<Integer> list = map.get(bean.getTagName());
+                if (ListUtil.isNotEmpty(list)) {
+                    if (list.contains(bean.getType())) {
+                        bean.setExist(true);
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         return res;
     }
 
@@ -473,34 +440,6 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
         Date now = DateUtil.now();
         String person = UserUtils.getCurrentPrincipleID();
         for (String id : idList) {
-            // 查询映射关系中是否存在父级
-           /* List<QuestionInfo> info = this.getParentQuestion(Long.parseLong(id));
-            for (QuestionInfo bean : info) {
-                if (bean.getTagType() != null && bean.getTagType() == TagTypeEnum.T10.getKey()) {
-                    List<QuestionInfo> info2 = this.getParentQuestion(bean.getId());
-                    List<String> msg = info2.stream().map(row -> "【" + row.getTagName() + "】").collect(Collectors.toList());
-                    errMsg.append(String.join("", msg));
-                } else {
-                    errMsg.append("【").append(bean.getTagName()).append("】");
-                }
-            }
-            if (StringUtil.isNotEmpty(errMsg.toString())) {
-                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "请先删除标签的关联:" + errMsg);
-            }*/
-
-            // 查询模板中是否存在
-            /*List<ModuleDetail> moduleDetails = moduleDetailFacade.list(new QueryWrapper<ModuleDetail>()
-                    .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("question_id", id));
-            if (ListUtil.isNotEmpty(moduleDetails)) {
-                List<Long> moduleIds = moduleDetails.stream().map(row -> row.getModuleId()).collect(Collectors.toList());
-                List<String> moduleName = moduleInfoFacade.list(new QueryWrapper<ModuleInfo>()
-                        .eq("is_deleted", IsDeleteEnum.N.getKey())
-                        .in("id", moduleIds))
-                        .stream().map(row -> "{" + row.getName() + "}").collect(Collectors.toList());
-                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "请先删除模板的关联:" + String.join("、", moduleName));
-            }*/
-
             Map paramMap = new HashMap<>();
             paramMap.put("delete", IsDeleteEnum.Y.getKey());
             paramMap.put("ids", Arrays.asList(ids.split(",")));
@@ -519,49 +458,6 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
                     .set("gmt_modified", now)
                     .set("modifier", person)
                     .set("is_deleted", IsDeleteEnum.Y.getKey()));
-            //删除检索映射
-            retrievalMappingFacade.update(new RetrievalMapping(), new UpdateWrapper<RetrievalMapping>()
-                    .eq("question_id", id)
-                    .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .set("gmt_modified", now)
-                    .set("modifier", person)
-                    .set("is_deleted", IsDeleteEnum.Y.getKey()));
-            //如果是诊断
-            if (deleteQuestionVO.getType() == QuestionTypeEnum.Disease.getKey()) {
-                // 删除诊断类型映射关系
-                disTypeFacade.update(new DisType(), new UpdateWrapper<DisType>()
-                        .eq("dis_id", id)
-                        .eq("is_deleted", IsDeleteEnum.N.getKey())
-                        .set("gmt_modified", now)
-                        .set("modifier", person)
-                        .set("is_deleted", IsDeleteEnum.Y.getKey()));
-                //删除诊断和量表的映射关系
-                disScaleFacade.update(new DisScale(), new UpdateWrapper<DisScale>()
-                        .eq("dis_id", id)
-                        .eq("is_deleted", IsDeleteEnum.N.getKey())
-                        .set("gmt_modified", now)
-                        .set("modifier", person)
-                        .set("is_deleted", IsDeleteEnum.Y.getKey()));
-                //删除慢病模板
-                QueryWrapper<ModuleInfo> moduleInfoQueryWrapper = new QueryWrapper<>();
-                moduleInfoQueryWrapper.eq("relation_id", id)
-                        .eq("is_deleted", IsDeleteEnum.N.getKey());
-                List<ModuleInfo> moduleInfoList = moduleInfoFacade.list(moduleInfoQueryWrapper);
-                List<Long> moduleIds = moduleInfoList.stream().map(ModuleInfo::getId).collect(Collectors.toList());
-                moduleInfoFacade.update(new ModuleInfo(), new UpdateWrapper<ModuleInfo>()
-                        .in("id", moduleIds)
-                        .eq("is_deleted", IsDeleteEnum.N.getKey())
-                        .set("gmt_modified", now)
-                        .set("modifier", person)
-                        .set("is_deleted", IsDeleteEnum.Y.getKey()));
-                //删除模板明细
-                moduleDetailFacade.update(new ModuleDetail(), new UpdateWrapper<ModuleDetail>()
-                        .in("module_id", moduleIds)
-                        .eq("is_deleted", IsDeleteEnum.N.getKey())
-                        .set("gmt_modified", now)
-                        .set("modifier", person)
-                        .set("is_deleted", IsDeleteEnum.Y.getKey()));
-            }
 
             //TODO 删除映射关系或检查抛异常
 

+ 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 +
         "}";

+ 53 - 40
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;
@@ -26,9 +48,11 @@ import com.diagbot.service.LibraryInfoService;
 import com.diagbot.service.impl.ConceptServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+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;
@@ -42,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: 术语查询业务层
@@ -161,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()));
             });
@@ -262,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());
@@ -345,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());
@@ -412,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);
@@ -762,13 +769,13 @@ public class ConceptFacade extends ConceptServiceImpl {
      * @param conceptExistVO 搜索参数
      * @return 术语id和术语 Map
      */
-    public Map<String, Long> getConceptMap(ConceptExistVO conceptExistVO) {
+    public Map<String, List<Integer>> getConceptMap(ConceptExistVO conceptExistVO) {
         // 入参验证
         if (ListUtil.isEmpty(conceptExistVO.getNameList())) {
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "名称列表不能为空");
         }
 
-        if (conceptExistVO.getType() == null) {
+        if (conceptExistVO.getType() != null) {
             Integer libType = ParamConvertUtil.conceptConvert2Lib(conceptExistVO.getType());
             if (libType == null) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "类型不匹配");
@@ -779,13 +786,19 @@ public class ConceptFacade extends ConceptServiceImpl {
         //获取结构
         List<Concept> concepts
                 = this.getListByNamesAndType(conceptExistVO.getNameList(), conceptExistVO.getLibType());
-
-        //出参封装
-        Map<String, Long> map = new HashMap<>();
-        if (ListUtil.isNotEmpty(concepts)) {
-            map = concepts.stream().collect(Collectors.toMap(r -> r.getLibName(), r -> r.getId()));
+        Map<String, List<Concept>> map1 = EntityUtil.makeEntityListMap(concepts, "libName");
+        Map<String, List<Integer>> typeMap = new HashMap<>();
+        for(String key : map1.keySet()) {
+            List<Concept> list = map1.get(key);
+            List<Integer> typeList = new ArrayList<>();
+            if (ListUtil.isNotEmpty(list)) {
+                for (Concept c : list) {
+                    typeList.add(ParamConvertUtil.libConvert2Concept(c.getLibType().intValue()));
+                }
+                typeMap.put(key, typeList);
+            }
         }
-        return map;
+        return typeMap;
     }
 
 

+ 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/java/com/diagbot/vo/ConceptExistVO.java

@@ -7,9 +7,9 @@ import lombok.Setter;
 import java.util.List;
 
 /**
- * @Description:
- * @author: gaodm
- * @time: 2019/5/6 18:50
+ * @description:
+ * @author: zhoutg
+ * @date: 2019/5/13 9:57
  */
 @Getter
 @Setter

+ 1 - 1
knowledgeman-service/src/main/java/com/diagbot/web/CommonConceptController.java

@@ -45,7 +45,7 @@ public class CommonConceptController {
                     "type: 类型")
     @PostMapping("/getConceptMapByNameAndType")
     @SysLogger("getConceptMapByNameAndType")
-    public RespDTO<Map<String, Long>> getConceptMapByNameAndType(@RequestBody ConceptExistVO conceptExistVO){
+    public RespDTO<Map<String, List<Integer>>> getConceptMapByNameAndType(@RequestBody ConceptExistVO conceptExistVO){
         return RespDTO.onSuc(conceptFacade.getConceptMap(conceptExistVO));
     }
 

+ 15 - 16
knowledgeman-service/src/main/resources/mapper/ConceptMapper.xml

@@ -20,34 +20,33 @@
     		conceptName
     	FROM
     	((SELECT
-		b.`name` as conceptName
-		FROM kl_concept a JOIN kl_library_info b ON a.lib_id=b.id
-		WHERE a.is_deleted='N' AND b.type='化验套餐'
-		ORDER BY a.gmt_modified DESC)
+		lib_name as conceptName
+		FROM kl_concept
+		WHERE is_deleted='N' AND lib_type=12
+		ORDER BY gmt_modified DESC)
 		UNION
 		(SELECT
-		conceptName
-		FROM
-		(SELECT
 		CONCAT(t1.conceptName,'-',t3.conceptName) as conceptName
 		FROM
 		(SELECT
-		a.id as conceptId,
-		b.`name` as conceptName
-		FROM kl_concept a JOIN kl_library_info b ON a.lib_id=b.id
-		WHERE a.is_deleted='N' AND b.type='化验套餐') t1
+		id as conceptId,
+		lib_name as conceptName
+		FROM kl_concept
+		WHERE is_deleted='N' AND lib_type=12) t1
 		JOIN
 		kl_relation t2 
 		ON t1.conceptId=t2.end_id 
 		JOIN
 		(SELECT
-		a.id as conceptId,
-		b.`name` as conceptName
-		FROM kl_concept a JOIN kl_library_info b ON a.lib_id=b.id
-		WHERE a.is_deleted='N' AND b.type='化验明细') t3
+		id as conceptId,
+		lib_name as conceptName
+		FROM kl_concept
+		WHERE is_deleted='N' AND lib_type=13) t3
 		ON t2.start_id=t3.conceptId
+		LEFT JOIN kl_relation_order t4
+		ON t2.id=t4.t_relation_id
 		WHERE t2.is_deleted='N' AND t2.relation_id=3
-		ORDER BY t2.gmt_modified DESC) t)) t
+		ORDER BY t4.order_no DESC)) t
 		WHERE 1=1
 		<if test="conceptName!=null and conceptName!=''">
 			and (conceptName LIKE CONCAT('%',#{conceptName},'%'))

+ 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);