Browse Source

标准词检索接口

wangfeng 4 years ago
parent
commit
9fe57e1c40

+ 42 - 0
src/main/java/com/diagbot/dto/GetAllForRelationDTO.java

@@ -0,0 +1,42 @@
+package com.diagbot.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2021-03-17 15:23
+ */
+@Setter
+@Getter
+public class GetAllForRelationDTO {
+    /**
+     * 概念id
+     */
+    @ApiModelProperty(value="概念id")
+    private Long conceptId;
+
+    /**
+     * 概念名称
+     */
+    @ApiModelProperty(value="概念名称")
+    private String conceptName;
+
+    /**
+     * 概念id
+     */
+    @ApiModelProperty(value="概念id")
+    private Integer libType;
+
+    /**
+     * 概念名称(类型)
+     */
+    @ApiModelProperty(value="概念名称(类型)")
+    private String conceptNameType;
+
+
+
+}
+

+ 29 - 0
src/main/java/com/diagbot/facade/KlConceptFacade.java

@@ -1,13 +1,17 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.GetAllForRelationDTO;
 import com.diagbot.entity.KlConcept;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconEnum;
 import com.diagbot.service.impl.KlConceptServiceImpl;
 import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptVO;
+import com.diagbot.vo.SearchConceptVO;
 import com.google.common.collect.Lists;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
@@ -82,4 +86,29 @@ public class KlConceptFacade extends KlConceptServiceImpl {
 
         return retType;
     }
+
+    public List<GetAllForRelationDTO> searchConceptByNameAndLibType(SearchConceptVO searchConceptVO) {
+        List<GetAllForRelationDTO> getAllForRelationDTOS = Lists.newArrayList();
+        String name = searchConceptVO.getName();
+        Integer libType = searchConceptVO.getLibType();
+        List<Long> excludedConceptIds = searchConceptVO.getExcludedConceptIds();
+        if (StringUtils.isNotBlank(name) && libType != null) {
+            List<KlConcept> conceptList = this.list(new QueryWrapper<KlConcept>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .like(StringUtil.isNotBlank(name), "lib_name", name.trim())
+                    .eq("lib_type", libType)
+                    .notIn(ListUtil.isNotEmpty(excludedConceptIds), "id", excludedConceptIds));
+            if (ListUtil.isNotEmpty(conceptList)) {
+                getAllForRelationDTOS = conceptList.stream().map(x -> {
+                    GetAllForRelationDTO getAllForRelationDTO = new GetAllForRelationDTO();
+                    getAllForRelationDTO.setConceptNameType(x.getLibName());
+                    getAllForRelationDTO.setConceptName(x.getLibName());
+                    getAllForRelationDTO.setConceptId(x.getId());
+                    getAllForRelationDTO.setLibType(x.getLibType());
+                    return getAllForRelationDTO;
+                }).collect(Collectors.toList());
+            }
+        }
+        return getAllForRelationDTOS;
+    }
 }

+ 33 - 0
src/main/java/com/diagbot/vo/SearchConceptVO.java

@@ -0,0 +1,33 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author kwz
+ * @date 2021/3/10
+ * @time 12:57
+ */
+@Setter
+@Getter
+public class SearchConceptVO {
+    @ApiModelProperty(value="名称")
+    @NotBlank(message = "请输入搜索名称")
+    private String name;
+    /**
+     * 词性id
+     */
+    @ApiModelProperty(value="词性id")
+    @NotNull(message ="请输入搜索词的词性" )
+    private Integer libType;
+    /**
+     * 需要排除的概念id集合
+     */
+    @ApiModelProperty(value="需要排除的概念id集合")
+    private List<Long> excludedConceptIds;
+}

+ 48 - 0
src/main/java/com/diagbot/web/KlDiseaseController.java

@@ -0,0 +1,48 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.GetAllForRelationDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.KlConceptFacade;
+import com.diagbot.vo.SearchConceptVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * <p>
+ * 疾病表 前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2021-03-01
+ */
+@RestController
+@RequestMapping("/klDisease")
+@SuppressWarnings("unchecked")
+@Api(value = "诊断依据相关的类型术语相关API", tags = { "诊断依据相关的类型术语相关API" })
+public class KlDiseaseController {
+
+    @Autowired
+    KlConceptFacade klConceptFacade;
+
+    @ApiOperation(value = "查询诊断依据相关的类型术语[by:kongwz]",
+            notes = "name: 查询术语的名称<br>" +
+                    "libType: 查询术语的词性<br>" +
+                    "excludedConceptIds: 需要排除的概念id集合")
+    @PostMapping("/searchConcept")
+    @SysLogger("searchConcept")
+    public RespDTO<List<GetAllForRelationDTO>> searchConcept(@Valid @RequestBody SearchConceptVO searchConceptVO) {
+        List<GetAllForRelationDTO> getAllForRelationDTOS = klConceptFacade.searchConceptByNameAndLibType(searchConceptVO);
+        return RespDTO.onSuc(getAllForRelationDTOS);
+    }
+
+}