Ver código fonte

Merge remote-tracking branch 'origin/develop' into develop

zhoutg 3 anos atrás
pai
commit
5f8f7b18c1

+ 3 - 0
cdssman-service/src/main/java/com/diagbot/client/CdssCoreClient.java

@@ -221,4 +221,7 @@ public interface CdssCoreClient {
     @PostMapping("/klDisease/searchConceptRuleClass")
     RespDTO<List<GetAllForRelationDTO>> searchConceptRuleClass(@Valid @RequestBody SearchConceptVO searchConceptVO);
 
+    //在集合业务中,搜索术语
+    @PostMapping("/klDisease/searchCollectionConceptVO")
+    RespDTO<List<GetAllForRelationDTO>> searchCollectionConcept(SearchCollectionConceptVO searchCollectionConceptVO);
 }

+ 6 - 0
cdssman-service/src/main/java/com/diagbot/client/hystrix/CdssCoreHystrix.java

@@ -302,4 +302,10 @@ public class CdssCoreHystrix implements CdssCoreClient {
         log.error("【hystrix】调用{}异常", "searchConceptRuleClass");
         return null;
     }
+
+    @Override
+    public RespDTO<List<GetAllForRelationDTO>> searchCollectionConcept(SearchCollectionConceptVO searchCollectionConceptVO) {
+        log.error("【hystrix】调用{}异常", "searchConceptRuleClass");
+        return null;
+    }
 }

+ 18 - 0
cdssman-service/src/main/java/com/diagbot/dto/ConceptCollectionMatchDTO.java

@@ -0,0 +1,18 @@
+package com.diagbot.dto;
+
+import com.diagbot.vo.ConceptCollectionBaseVO;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/8/18 13:50
+ */
+@Data
+public class ConceptCollectionMatchDTO {
+    List<ConceptCollectionBaseVO> matchList;
+    List<ConceptCollectionBaseVO> unMatchList;
+    List<ConceptCollectionBaseVO> disableList;
+}

+ 67 - 3
cdssman-service/src/main/java/com/diagbot/facade/KlConceptCollectionFacade.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.ConceptCollectionDTO;
+import com.diagbot.dto.ConceptCollectionMatchDTO;
 import com.diagbot.dto.DictionaryInfoDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.KlConcept;
@@ -27,6 +28,7 @@ import com.diagbot.util.UserUtils;
 import com.diagbot.vo.ConceptCollectionBaseVO;
 import com.diagbot.vo.ConceptCollectionPageVO;
 import com.diagbot.vo.ConceptCollectionSaveVO;
+import com.diagbot.vo.ConceptCollectionVO;
 import com.diagbot.vo.IdVO;
 import com.google.common.collect.Lists;
 import org.apache.commons.lang3.StringUtils;
@@ -34,7 +36,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
+import java.util.Arrays;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -51,7 +55,7 @@ public class KlConceptCollectionFacade {
     @Autowired
     KlLibraryInfoFacade klLibraryInfoFacade;
     @Autowired
-            @Qualifier("klRelationServiceImpl")
+    @Qualifier("klRelationServiceImpl")
     KlRelationService klRelationService;
     @Autowired
     KlRelationFacade klRelationFacade;
@@ -111,6 +115,7 @@ public class KlConceptCollectionFacade {
 
     /**
      * 保存(新增和修改)
+     *
      * @param conceptCollectionSaveVO
      * @return
      */
@@ -157,12 +162,19 @@ public class KlConceptCollectionFacade {
                 .collect(Collectors.toList());
         List<KlConcept> concepts = klConceptFacade.list(new QueryWrapper<KlConcept>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("status", StatusEnum.Enable.getKey())
+                //.eq("status", StatusEnum.Enable.getKey())
                 .in("id", conceptIds));
 
         if (ListUtil.isEmpty(concepts)) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "基础术语不存在或已禁用");
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "保存失败,基础术语不存在");
+        }
+
+        for (KlConcept concept : concepts) {
+            if (concept.getStatus().equals(StatusEnum.Disable.getKey())) {
+                throw new CommonException(CommonErrorCode.NOT_EXISTS, "保存失败,存在已禁用基础术语");
+            }
         }
+
         List<Long> saveConceptIds = concepts.stream().map(KlConcept::getId).collect(Collectors.toList());
 
         //删除已有记录
@@ -337,4 +349,56 @@ public class KlConceptCollectionFacade {
         klRelationOrderFacade.remove(new QueryWrapper<KlRelationOrder>().in("t_relation_id", relationIds));
         return true;
     }
+
+    /**
+     * 批量校验标准术语是否存在
+     *
+     * @param conceptCollectionVO
+     * @return
+     */
+    public ConceptCollectionMatchDTO collectionMatch(ConceptCollectionVO conceptCollectionVO) {
+        ConceptCollectionMatchDTO retDTO = new ConceptCollectionMatchDTO();
+        List<String> conceptNames = Arrays.stream(conceptCollectionVO.getConceptLibNames().trim().split("\\\n"))
+                .filter(i -> StringUtils.isNotBlank(i))
+                .map(i -> i.trim())
+                .distinct()
+                .collect(Collectors.toList());
+        if (ListUtil.isEmpty(conceptNames)) {
+            return retDTO;
+        }
+        List<KlConcept> klConceptList = klConceptFacade.list(new QueryWrapper<KlConcept>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("lib_type", conceptCollectionVO.getConceptLibType())
+                .in("lib_name", conceptNames));
+        Map<String, KlConcept> klConceptMap = new HashMap<>();
+
+        if (ListUtil.isNotEmpty(klConceptList)) {
+            klConceptMap = klConceptList.stream().collect(Collectors.toMap(KlConcept::getLibName, v -> v));
+        }
+
+        List<ConceptCollectionBaseVO> matchList = Lists.newLinkedList();
+        List<ConceptCollectionBaseVO> unMatchList = Lists.newLinkedList();
+        List<ConceptCollectionBaseVO> disableList = Lists.newLinkedList();
+        for (String name : conceptNames) {
+            ConceptCollectionBaseVO baseVO = new ConceptCollectionBaseVO();
+            baseVO.setConceptLibName(name);
+            baseVO.setConceptLibType(conceptCollectionVO.getConceptLibType());
+            if (klConceptMap.containsKey(name)) {
+                KlConcept baseConcept = klConceptMap.get(name);
+                baseVO.setConceptId(baseConcept.getId());
+                if (baseConcept.getStatus().equals(StatusEnum.Enable.getKey())) {
+                    matchList.add(baseVO);
+                } else {
+                    disableList.add(baseVO);
+                }
+            } else {
+                unMatchList.add(baseVO);
+            }
+        }
+        retDTO.setMatchList(matchList);
+        retDTO.setUnMatchList(unMatchList);
+        retDTO.setDisableList(disableList);
+
+        return retDTO;
+    }
 }

+ 7 - 11
cdssman-service/src/main/java/com/diagbot/facade/KlConceptFacade.java

@@ -38,17 +38,7 @@ import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
-import com.diagbot.vo.ConceptRelationVO;
-import com.diagbot.vo.GetAllForRelationVO;
-import com.diagbot.vo.KlConceptAllVO;
-import com.diagbot.vo.KlConceptClearVO;
-import com.diagbot.vo.KlConceptInfoVO;
-import com.diagbot.vo.KlConceptSatarOrdisaVO;
-import com.diagbot.vo.KlConceptSaveSubVO;
-import com.diagbot.vo.KlConceptSaveVO;
-import com.diagbot.vo.KlLibraryInfoVO;
-import com.diagbot.vo.SearchConceptVO;
-import com.diagbot.vo.SearchVO;
+import com.diagbot.vo.*;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.lang3.StringUtils;
@@ -693,4 +683,10 @@ public class KlConceptFacade extends KlConceptServiceImpl {
         param.setPerson(person);
         return param;
     }
+
+    public List<GetAllForRelationDTO> searchCollectionConceptFac(SearchCollectionConceptVO searchCollectionConceptVO) {
+        RespDTO<List<GetAllForRelationDTO>> relationDTORespDTO = cdssCoreClient.searchCollectionConcept(searchCollectionConceptVO);
+        RespDTOUtil.respNGDeal(relationDTORespDTO, "在集合业务中,搜索术语失败");
+        return relationDTORespDTO.data;
+    }
 }

+ 19 - 0
cdssman-service/src/main/java/com/diagbot/vo/ConceptCollectionVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/8/18 13:28
+ */
+@Data
+public class ConceptCollectionVO {
+    @NotNull(message = "术语类型不允许为空")
+    private Integer conceptLibType;
+    @NotBlank(message = "术语名称不允许为空")
+    private String conceptLibNames;
+}

+ 49 - 0
cdssman-service/src/main/java/com/diagbot/vo/SearchCollectionConceptVO.java

@@ -0,0 +1,49 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @className: com.diagbot.vo-> SearchCollectionConceptVO
+ * @description: 在集合业务中,搜索术语
+ * @author: kongwz
+ * @createDate: 2021-08-18 16:07
+ * @version: 1.0
+ * @todo:
+ */
+@Setter
+@Getter
+public class SearchCollectionConceptVO {
+    /**
+     * 词性id
+     */
+    @ApiModelProperty(value="词性id")
+    @NotNull(message ="请输入搜索词的词性" )
+    private Integer libType;
+    /**
+     * 需要排除的概念id集合
+     */
+    @ApiModelProperty(value="需要排除的概念id集合")
+    private List<Long> excludedConceptIds;
+
+    @ApiModelProperty(value="搜索关键词")
+    private List<String> names;
+
+    @ApiModelProperty(value="逻辑运算符")
+    @NotNull(message ="请输入逻辑运算符" )
+    private Integer logicalOperator;
+
+    @Override
+    public String toString() {
+        return "SearchCollectionConceptVO{" +
+                "libType=" + libType +
+                ", excludedConceptIds=" + excludedConceptIds +
+                ", names=" + names +
+                ", logicalOperator=" + logicalOperator +
+                '}';
+    }
+}

+ 15 - 3
cdssman-service/src/main/java/com/diagbot/web/KlConceptCollectionController.java

@@ -3,10 +3,12 @@ package com.diagbot.web;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.ConceptCollectionDTO;
+import com.diagbot.dto.ConceptCollectionMatchDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.KlConceptCollectionFacade;
 import com.diagbot.vo.ConceptCollectionPageVO;
 import com.diagbot.vo.ConceptCollectionSaveVO;
+import com.diagbot.vo.ConceptCollectionVO;
 import com.diagbot.vo.IdVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -35,8 +37,8 @@ public class KlConceptCollectionController {
     @ApiOperation(value = "获取术语集合列表[zhaops]",
             notes = "collectionLibName:术语集合名称 <br>" +
                     "collectionLibType: 术语集合类型 <br>" +
-                    "conceptLibName: 术语集合类型 <br>" +
-                    "collectionRemark: 基础术语名称 <br>")
+                    "conceptLibName: 基础术语名称 <br>" +
+                    "collectionRemark: 术语集合说明 <br>")
     @PostMapping("/getPage")
     @SysLogger("getPage")
     public RespDTO<IPage<ConceptCollectionDTO>> getPage(@Valid @RequestBody ConceptCollectionPageVO conceptCollectionPageVO) {
@@ -50,7 +52,7 @@ public class KlConceptCollectionController {
                     "collectionLibName:术语集合名称 <br>" +
                     "relationId: 关系类型 <br>" +
                     "conceptLibType: 术语集合类型 <br>" +
-                    "collectionRemark: 基础术语名称 <br>" +
+                    "collectionRemark: 术语集合说明 <br>" +
                     "conceptId: 基础术语id,必填 <br>" +
                     "conceptLibType: 基础术语类型,必填 <br>" +
                     "conceptLibName: 基础术语名称 <br>")
@@ -78,4 +80,14 @@ public class KlConceptCollectionController {
         Boolean data = klConceptCollectionFacade.deleteById(idVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "批量校验标准术语是否存在[zhaops]",
+            notes = "conceptLibNames: 基础术语名称 <br>" +
+                    "conceptLibType: 基础术语类型 <br>")
+    @PostMapping("/collectionMatch")
+    @SysLogger("collectionMatch")
+    public RespDTO<ConceptCollectionDTO> collectionMatch(@Valid @RequestBody ConceptCollectionVO conceptCollectionVO) {
+        ConceptCollectionMatchDTO data = klConceptCollectionFacade.collectionMatch(conceptCollectionVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 12 - 0
cdssman-service/src/main/java/com/diagbot/web/KlDiseaseController.java

@@ -132,4 +132,16 @@ public class KlDiseaseController {
         return RespDTO.onSuc(getAllForRelationDTOS);
     }
 
+    @ApiOperation(value = "在集合业务中,搜索术语[by:kongwz]",
+            notes = "names: 搜索关键词集合<br>" +
+                    "libType: 查询术语的词性<br>" +
+                    "excludedConceptIds: 需要排除的概念id集合<br>" +
+                    "logicalOperator: 逻辑运算符 0:and 1:or")
+    @PostMapping("/searchCollectionConceptVO")
+    @SysLogger("searchCollectionConceptVO")
+    public RespDTO<List<GetAllForRelationDTO>> searchCollectionConcept(@Valid @RequestBody SearchCollectionConceptVO searchCollectionConceptVO) {
+        List<GetAllForRelationDTO> getAllForRelationDTOS = klConceptFacade.searchCollectionConceptFac(searchCollectionConceptVO);
+        return RespDTO.onSuc(getAllForRelationDTOS);
+    }
+
 }

+ 2 - 2
cdssman-service/src/main/resources/mapper/KlDrugRegisterMapper.xml

@@ -104,8 +104,8 @@
             a.is_deleted = 'N'
         AND a.lib_type = 101
         AND a.lib_name LIKE concat('%',#{name}, '%')
-        and a.id not in (
+        <!--and a.id not in (
             SELECT b.drug_concept FROM `kl_drug_mapping` b where a.is_deleted = 'N'
-        )
+        )-->
     </select>
 </mapper>

+ 18 - 0
common/src/main/java/com/diagbot/biz/push/entity/Scale.java

@@ -0,0 +1,18 @@
+package com.diagbot.biz.push.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/8/19 10:59
+ */
+@Getter
+@Setter
+public class Scale extends Item {
+    /**
+     * 量表结果
+     */
+    private String result;
+}