浏览代码

术语集合维护-批量基础术语校验

zhaops 3 年之前
父节点
当前提交
2192d20679

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

@@ -0,0 +1,17 @@
+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;
+}

+ 51 - 1
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
      */
@@ -337,4 +342,49 @@ 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, Long> klConceptMap = new HashMap<>();
+
+        if (ListUtil.isNotEmpty(klConceptList)) {
+            klConceptMap = klConceptList.stream().collect(Collectors.toMap(KlConcept::getLibName, KlConcept::getId));
+        }
+
+        List<ConceptCollectionBaseVO> matchList = Lists.newLinkedList();
+        List<ConceptCollectionBaseVO> unMatchList = Lists.newLinkedList();
+        for (String name : conceptNames) {
+            ConceptCollectionBaseVO baseVO = new ConceptCollectionBaseVO();
+            baseVO.setConceptLibName(name);
+            baseVO.setConceptLibType(conceptCollectionVO.getConceptLibType());
+            if (klConceptMap.containsKey(name)) {
+                baseVO.setConceptId(klConceptMap.get(name));
+                matchList.add(baseVO);
+            } else {
+                unMatchList.add(baseVO);
+            }
+        }
+        retDTO.setMatchList(matchList);
+        retDTO.setUnMatchList(unMatchList);
+
+        return retDTO;
+    }
 }

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

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