浏览代码

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

wangyu 6 年之前
父节点
当前提交
a5c5abba66

+ 18 - 16
icss-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -122,7 +122,6 @@ public class RetrievalFacade {
         GetStaticKnowledgeVO getStaticKnowledgeVO = new GetStaticKnowledgeVO();
         BeanUtil.copyProperties(getStaticVO,getStaticKnowledgeVO);
         //标签类型
-        List<String> questionNames = new ArrayList<>();
         List<Integer> typeList = new ArrayList<>();//规定标签类型,只取诊断,化验,辅检,药品类型
         typeList.add(QuestionTypeEnum.Disease.getKey());
         typeList.add(QuestionTypeEnum.Drug.getKey());
@@ -132,7 +131,9 @@ public class RetrievalFacade {
         //调用aipt-service获取有静态知识的标签
         RespDTO<List<RetrievalDTO>> retrievalDTOList = aiptServiceClient.getStaticKnowledge(getStaticKnowledgeVO);
         RespDTOUtil.respNGDeal(retrievalDTOList,"获取静态知识失败");
+        List<OrderRetrivevalDTO> orderRetrivevalDTOS  = new ArrayList<>();
         if(ListUtil.isNotEmpty(retrievalDTOList.data)){
+            List<String> questionNames = new ArrayList<>();
             for (RetrievalDTO retrievalDTOInfo : retrievalDTOList.data) {
                 if(typeList.contains(retrievalDTOInfo.getType())){
                     questionNames.add(retrievalDTOInfo.getName());
@@ -151,23 +152,24 @@ public class RetrievalFacade {
                 if(null != questionInfoMap.get(retrievalDTOInfo.getName())){//设置questionId
                     retrievalDTOInfo.setQuestionId(questionInfoMap.get(retrievalDTOInfo.getName()).getId());
                 }
+                OrderRetrivevalDTO orderRetrivevalDTO = new OrderRetrivevalDTO();
+                BeanUtil.copyProperties(retrievalDTOInfo, orderRetrivevalDTO);
+                //排序号设定
+                if(orderRetrivevalDTO.getType().intValue() == QuestionTypeEnum.Disease.getKey()){//诊断
+                    orderRetrivevalDTO.setOrderNo(1);
+                }else if(orderRetrivevalDTO.getType().intValue() == QuestionTypeEnum.Drug.getKey()){//药品
+                    orderRetrivevalDTO.setOrderNo(2);
+                }else if(orderRetrivevalDTO.getType().intValue() == QuestionTypeEnum.Lis.getKey()){//化验
+                    orderRetrivevalDTO.setOrderNo(3);
+                }else {//辅检
+                    orderRetrivevalDTO.setOrderNo(4);
+                }
+                orderRetrivevalDTOS.add(orderRetrivevalDTO);
             }
+
+            //给结果排序:诊断 > 药品 > 化验 > 辅检
+            orderRetrivevalDTOS.sort((OrderRetrivevalDTO o1, OrderRetrivevalDTO o2) -> o1.getOrderNo().compareTo(o2.getOrderNo()));
         }
-        List<OrderRetrivevalDTO> orderRetrivevalDTOS = BeanUtil.listCopyTo(retrievalDTOList.data,OrderRetrivevalDTO.class);
-        //设置排序编号
-        for (OrderRetrivevalDTO orderRetrivevalDTO : orderRetrivevalDTOS) {
-            if(orderRetrivevalDTO.getType().intValue() == QuestionTypeEnum.Disease.getKey()){//诊断
-                orderRetrivevalDTO.setOrderNo(1);
-            }else if(orderRetrivevalDTO.getType().intValue() == QuestionTypeEnum.Drug.getKey()){//药品
-                orderRetrivevalDTO.setOrderNo(2);
-            }else if(orderRetrivevalDTO.getType().intValue() == QuestionTypeEnum.Lis.getKey()){//化验
-                orderRetrivevalDTO.setOrderNo(3);
-            }else {//辅检
-                orderRetrivevalDTO.setOrderNo(4);
-            }
-        }
-        //给结果排序:诊断 > 药品 > 化验 > 辅检
-        orderRetrivevalDTOS.sort((OrderRetrivevalDTO o1, OrderRetrivevalDTO o2) -> o1.getOrderNo().compareTo(o2.getOrderNo()));
         retrievalDTOList.data = BeanUtil.listCopyTo(orderRetrivevalDTOS,RetrievalDTO.class);
         return retrievalDTOList.data;
     }

+ 1 - 0
icssman-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -32,6 +32,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/introduceInfo/saveIntroduce").permitAll()
                 .antMatchers("/dictionaryInfo/getList").permitAll()
                 .antMatchers("/getIcssEnumsData").permitAll()
+                .antMatchers("/questionInfo/indexByLexicon").permitAll()
                 .antMatchers("/**").authenticated();
 //                        .antMatchers("/**").permitAll();
 

+ 1 - 0
icssman-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -93,6 +93,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
 //                || matchers("/icssfile/uploadImage", request)
                 || matchers("/getIcssEnumsData", request)
                 || matchers("/dictionaryInfo/getList", request)
+                || matchers("/questionInfo/indexByLexicon", request)
                 || matchers("/", request)) {
             return true;
         }

+ 27 - 0
icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.KnowledgemanServiceClient;
 import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.GetQuestionInfoDTO;
 import com.diagbot.dto.QuestionDTO;
 import com.diagbot.dto.QuestionPageDTO;
@@ -37,6 +38,7 @@ import com.diagbot.vo.ConceptExistVO;
 import com.diagbot.vo.DeleteQuestionVO;
 import com.diagbot.vo.GetQuestionIdsByTypeVO;
 import com.diagbot.vo.GetQuestionInfoVO;
+import com.diagbot.vo.IndexLexiconVO;
 import com.diagbot.vo.QuestionIdsVO;
 import com.diagbot.vo.QuestionIndexSubVO;
 import com.diagbot.vo.QuestionIndexVO;
@@ -90,6 +92,8 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
     @Autowired
     CacheFacade cacheFacade;
 
+
+
     /**
      * 标签保存
      *
@@ -385,6 +389,7 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
                 .eq("tag_name", questionInfo.getTagName())
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .eq("type", questionInfo.getType())
+                .ne("tag_type", TagTypeEnum.T8.getKey())
                 .ne("id", questionInfo.getId() == null ? -1 : questionInfo.getId()));
         if (ListUtil.isNotEmpty(questionInfoList)) { //标签type、tagName唯一
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "标签系统名称已重复,无法建立");
@@ -724,4 +729,26 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
             }
         }
     }
+
+
+    public List<ConceptBaseDTO> indexByLexiconFac(IndexLexiconVO indexLexiconVO) {
+        RespDTO<List<ConceptBaseDTO>> res = knowledgemanServiceClient.indexByLexiconFac(indexLexiconVO);
+        RespDTOUtil.respNGDeal(res, "【远程调用】搜索概念失败");
+
+        // 过滤已添加的标签
+        List<QuestionInfo> questionInfoList = this.list(new QueryWrapper<QuestionInfo>()
+                .in("tag_name", res.data.stream().map(row -> row.getName()).collect(Collectors.toList()))
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("type", indexLexiconVO.getType())
+                .ne("tag_type", TagTypeEnum.T8.getKey()));
+        List<String> nameExist = questionInfoList.stream().map(row -> row.getTagName()).collect(Collectors.toList());
+        if (ListUtil.isNotEmpty(nameExist)) {
+            for (int i = 0; i < res.data.size(); i++) {
+                if (nameExist.contains(res.data.get(i).getName())) {
+                    res.data.remove(i--);
+                }
+            }
+        }
+        return res.data;
+    }
 }

+ 2 - 0
icssman-service/src/main/java/com/diagbot/vo/IndexLexiconVO.java

@@ -19,4 +19,6 @@ public class IndexLexiconVO {
     private String name;
     @NotNull(message = "词性类型不能为空")
     private List<Integer> libType;
+    @NotNull(message = "标签所属不能为空")
+    private Integer type;
 }

+ 13 - 0
icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java

@@ -3,12 +3,14 @@ package com.diagbot.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.ConceptBaseDTO;
 import com.diagbot.dto.QuestionDTO;
 import com.diagbot.dto.QuestionPageDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.facade.QuestionFacade;
 import com.diagbot.vo.DeleteQuestionVO;
+import com.diagbot.vo.IndexLexiconVO;
 import com.diagbot.vo.QuestionIdsVO;
 import com.diagbot.vo.QuestionIndexSubVO;
 import com.diagbot.vo.QuestionIndexVO;
@@ -141,4 +143,15 @@ public class QuestionInfoController {
         questionFacade.clearAllCacheByIds(id);
         return RespDTO.onSuc(true);
     }
+
+
+    @ApiOperation(value = "根据名称和术语库词性类型搜索,过滤已添加的标签[by:zhoutg]",
+            notes = "name: 搜索内容,必填<br>" +
+                    "libType:术语库词性类型,必填<br>" +
+                    "type: 标签归属,必填<br>")
+    @PostMapping("/indexByLexicon")
+    @SysLogger("indexByLexicon")
+    public RespDTO<List<ConceptBaseDTO>> indexByLexicon(@RequestBody IndexLexiconVO indexLexiconVO){
+        return RespDTO.onSuc(questionFacade.indexByLexiconFac(indexLexiconVO));
+    }
 }

+ 1 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/IndexLexiconVO.java

@@ -19,4 +19,5 @@ public class IndexLexiconVO {
     private String name;
     @NotNull(message = "词性类型不能为空")
     private List<Integer> libType;
+    private Integer type;
 }