Bladeren bron

加入根据概念Id,年龄,性别列表获取概念列表Map

gaodm 6 jaren geleden
bovenliggende
commit
39e82041c8

+ 35 - 0
aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -15,16 +15,19 @@ import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ConceptServiceImpl;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.IntegerUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptExistVO;
+import com.diagbot.vo.ConceptFindVO;
 import com.diagbot.vo.ConceptSearchVO;
 import com.diagbot.vo.ConceptUsualVO;
 import com.diagbot.vo.ExistListByConceptIdsVO;
 import com.diagbot.vo.GetStaticKnowledgeVO;
 import com.diagbot.vo.RetrievalVO;
+import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -101,6 +104,38 @@ public class ConceptFacade extends ConceptServiceImpl {
         return map;
     }
 
+    /**
+     * 根据概念Id列表获取概念列表Map
+     *
+     * @param conceptFindVO 搜索参数
+     * @return 术语id和术语 Map
+     */
+    public Map<Long, String> getConceptCondMap(ConceptFindVO conceptFindVO) {
+        //入参验证
+        if (ListUtil.isEmpty(conceptFindVO.getConceptIds())) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "术语列表不能为空");
+        }
+
+        if (IntegerUtil.isNull(conceptFindVO.getAge())){
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "年龄不能为空");
+        }
+
+        if (IntegerUtil.isNull(conceptFindVO.getSexType())){
+            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "性别不能为空");
+        }
+
+        //获取结构
+        List<ConceptBaseDTO>  concepts
+                = this.getConceptConMap(conceptFindVO);
+
+        //出参封装
+        Map<Long, String> map = new HashMap<>();
+        if (ListUtil.isNotEmpty(concepts)) {
+            map = concepts.stream().collect(Collectors.toMap(r -> r.getConceptId(), r -> r.getName()));
+        }
+        return map;
+    }
+
     /**
      * 根据概念Id列表获取概念列表
      *

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

@@ -1,11 +1,13 @@
 package com.diagbot.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
+import com.diagbot.vo.ConceptFindVO;
 import com.diagbot.vo.RetrievalVO;
 
 import java.util.List;
@@ -44,6 +46,8 @@ public interface ConceptMapper extends BaseMapper<Concept> {
      */
     List<ConceptRetrievalDTO> retrievalConcept(RetrievalVO retrievalVO);
 
+    List<ConceptBaseDTO> getConceptConMap(ConceptFindVO conceptFindVO);
+
     /**
      * 获得诊断依据问题词的标准词
      * @return

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

@@ -1,11 +1,13 @@
 package com.diagbot.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
+import com.diagbot.vo.ConceptFindVO;
 import com.diagbot.vo.RetrievalVO;
 
 import java.util.List;
@@ -44,6 +46,8 @@ public interface ConceptService extends IService<Concept> {
      */
     List<ConceptRetrievalDTO> retrievalConcept(RetrievalVO retrievalVO);
 
+    List<ConceptBaseDTO> getConceptConMap(ConceptFindVO conceptFindVO);
+
     /**
      * 获得诊断依据问题词的标准词
      *

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

@@ -1,6 +1,7 @@
 package com.diagbot.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.ConceptRes;
 import com.diagbot.dto.ConceptRetrievalDTO;
 import com.diagbot.dto.ConceptWithOrderRes;
@@ -8,6 +9,7 @@ import com.diagbot.entity.Concept;
 import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.mapper.ConceptMapper;
 import com.diagbot.service.ConceptService;
+import com.diagbot.vo.ConceptFindVO;
 import com.diagbot.vo.RetrievalVO;
 import org.springframework.stereotype.Service;
 
@@ -57,6 +59,10 @@ public class ConceptServiceImpl extends ServiceImpl<ConceptMapper, Concept> impl
         return baseMapper.getConceptWithOrder(conceptWrapper);
     }
 
+    @Override
+    public List<ConceptBaseDTO> getConceptConMap(ConceptFindVO conceptFindVO){
+        return baseMapper.getConceptConMap(conceptFindVO);
+    }
     /**
      * 获得诊断依据问题词的标准词
      *

+ 22 - 0
aipt-service/src/main/java/com/diagbot/vo/ConceptFindVO.java

@@ -0,0 +1,22 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2019/5/6 18:50
+ */
+@Getter
+@Setter
+public class ConceptFindVO {
+    //术语Id列表
+    private List<Long> conceptIds;
+    //年龄
+    private Integer age;
+    //性别
+    private Integer sexType;
+}

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

@@ -11,6 +11,7 @@ import com.diagbot.facade.ConceptFacade;
 import com.diagbot.util.ParamConvertUtil;
 import com.diagbot.vo.ConceptBaseVO;
 import com.diagbot.vo.ConceptExistVO;
+import com.diagbot.vo.ConceptFindVO;
 import com.diagbot.vo.ConceptSearchVO;
 import com.diagbot.vo.ConceptUsualVO;
 import com.diagbot.vo.GetStaticKnowledgeVO;
@@ -70,6 +71,22 @@ public class ConceptController {
         return RespDTO.onSuc(conceptFacade.getConceptMap(conceptSearchVO));
     }
 
+    /**
+     * 根据概念Id列表获取概念列表Map
+     *
+     * @param conceptFindVO 搜索参数
+     * @return 术语id和术语 Map
+     */
+    @ApiOperation(value = "知识库标准化-根据概念Id,年龄,性别列表获取概念列表Map[by:gaodm]",
+            notes = "conceptIds: 术语Id列表" +
+                    "age:年龄<br>" +
+                    "sexType: 性别<br>")
+    @PostMapping("/getConceptCondMap")
+    @SysLogger("getConceptCondMap")
+    public RespDTO<Map<String, Long>> getConceptCondMap(@RequestBody ConceptFindVO conceptFindVO) {
+        return RespDTO.onSuc(conceptFacade.getConceptCondMap(conceptFindVO));
+    }
+
     /**
      * 验证存在并且获取概念基本信息
      *
@@ -116,7 +133,7 @@ public class ConceptController {
                     "type: 类型")
     @PostMapping("/getConceptMapByNameAndType")
     @SysLogger("getConceptMapByNameAndType")
-    public RespDTO<Map<String, Long>> getConceptMapByNameAndType(@RequestBody ConceptExistVO conceptExistVO){
+    public RespDTO<Map<String, Long>> getConceptMapByNameAndType(@RequestBody ConceptExistVO conceptExistVO) {
         return RespDTO.onSuc(conceptFacade.getConceptMap(conceptExistVO));
     }
 

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

@@ -483,6 +483,35 @@
         </if>
     </select>
 
+    <select id="getConceptConMap" resultType="com.diagbot.dto.ConceptBaseDTO" parameterType="com.diagbot.vo.ConceptFindVO">
+        SELECT
+            t1.id as conceptId,
+            t1.lib_name as name
+        FROM
+            kl_concept t1,
+            kl_concept_common t2
+        WHERE
+            t1.id = t2.concept_id
+        AND t1.is_deleted = 'N'
+        AND t2.is_deleted = 'N'
+        <if test="conceptIds != null and conceptIds.size > 0">
+            and t1.id in
+            <foreach item="id" collection="conceptIds" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        <if test="sexType == 3">
+            AND t2.sex_type IN ('1','2','3')
+        </if>
+        <if test="sexType != 3">
+            AND t2.sex_type IN ('3',#{sexType})
+        </if>
+        <if test="age != null and age != ''">
+            AND <![CDATA[ t2.min_age <= #{age} ]]>
+            AND <![CDATA[ t2.max_age >= #{age} ]]>
+        </if>
+    </select>
+
     <select id="getStandWord" resultType="java.lang.String">
         SELECT lib_name FROM kl_concept WHERE is_deleted = 'N' AND lib_type = 33
     </select>

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

@@ -24,6 +24,7 @@ import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.entity.ScaleContent;
+import com.diagbot.vo.ConceptFindVO;
 import com.diagbot.vo.ConceptIntroduceVO;
 import com.diagbot.vo.ConceptSearchVO;
 import com.diagbot.vo.ConceptUsualVO;
@@ -132,6 +133,16 @@ public interface AiptServiceClient {
     @PostMapping("/concept/getConceptMap")
     RespDTO<Map<Long, String>> getConceptMap(@RequestBody ConceptSearchVO conceptSearchVO);
 
+
+    /**
+     * 根据概念Id,年龄,性别列表获取概念列表Map
+     *
+     * @param conceptFindVO 搜索参数
+     * @return 术语id和术语 Map
+     */
+    @PostMapping("/concept/getConceptCondMap")
+    RespDTO<Map<String, Long>> getConceptCondMap(@RequestBody ConceptFindVO conceptFindVO);
+
     /**
      * 获取治疗方案
      *

+ 14 - 0
icss-service/src/main/java/com/diagbot/client/hystrix/AiptServiceHystrix.java

@@ -24,6 +24,7 @@ import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.RetrievalDTO;
 import com.diagbot.entity.ScaleContent;
+import com.diagbot.vo.ConceptFindVO;
 import com.diagbot.vo.ConceptIntroduceVO;
 import com.diagbot.vo.ConceptSearchVO;
 import com.diagbot.vo.ConceptUsualVO;
@@ -40,6 +41,7 @@ import com.diagbot.vo.RetrievalVO;
 import com.diagbot.vo.ScaleIndexVO;
 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;
 
@@ -164,6 +166,18 @@ public class AiptServiceHystrix implements AiptServiceClient {
         return null;
     }
 
+    /**
+     * 根据概念Id,年龄,性别列表获取概念列表Map
+     *
+     * @param conceptFindVO 搜索参数
+     * @return 术语id和术语 Map
+     */
+    @Override
+    public RespDTO<Map<String, Long>> getConceptCondMap(@RequestBody ConceptFindVO conceptFindVO){
+        log.error("【hystrix】调用{}异常", "getConceptMap");
+        return null;
+    }
+
     /**
      * 获取治疗方案
      *

+ 22 - 0
icss-service/src/main/java/com/diagbot/vo/ConceptFindVO.java

@@ -0,0 +1,22 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2019/5/6 18:50
+ */
+@Getter
+@Setter
+public class ConceptFindVO {
+    //术语Id列表
+    private List<Long> conceptIds;
+    //年龄
+    private Integer age;
+    //性别
+    private Integer sexType;
+}