gaodm 4 anni fa
parent
commit
997276cb9f

+ 21 - 0
cdssman-service/src/main/java/com/diagbot/dto/RelationDTO.java

@@ -0,0 +1,21 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/3/10 16:52
+ */
+@Getter
+@Setter
+public class RelationDTO {
+    private Long sId;
+    private String sName;
+    private Long sType;
+    private Long rId;
+    private Long eId;
+    private String eName;
+    private Long eType;
+}

+ 20 - 0
cdssman-service/src/main/java/com/diagbot/dto/TreeDTO.java

@@ -0,0 +1,20 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/3/10 17:02
+ */
+@Getter
+@Setter
+public class TreeDTO {
+    private Long id;
+    private String name;
+    private List<TreeDTO> nextTree = new ArrayList<>();
+}

+ 49 - 0
cdssman-service/src/main/java/com/diagbot/facade/KlRelationFacade.java

@@ -1,8 +1,18 @@
 package com.diagbot.facade;
 
+import com.diagbot.dto.RelationDTO;
+import com.diagbot.dto.TreeDTO;
 import com.diagbot.service.impl.KlRelationServiceImpl;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.RelationVO;
+import com.diagbot.vo.TreeVO;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
 /**
  * @Description:
  * @Author:zhaops
@@ -10,4 +20,43 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class KlRelationFacade extends KlRelationServiceImpl {
+    public TreeDTO getTree(TreeVO treeVO) {
+        TreeDTO treeDTO = new TreeDTO();
+        List<Long[]> pList = new ArrayList<>();
+        pList.add(new Long[] { 402L, 600L, 301L, 600L, 101L });
+
+
+        RelationVO relationVO = new RelationVO();
+        Integer index = treeVO.getType() - 1;
+        relationVO.setSType(pList.get(index)[0]);
+        relationVO.setRId(pList.get(index)[1]);
+        relationVO.setEType(pList.get(index)[2]);
+        List<RelationDTO> root = this.getRelations(relationVO);
+
+        RelationVO relationVO2 = new RelationVO();
+        relationVO2.setSType(pList.get(index)[2]);
+        relationVO2.setRId(pList.get(index)[3]);
+        relationVO2.setEType(pList.get(index)[4]);
+        List<RelationDTO> sub = this.getRelations(relationVO2);
+        Map<Long, List<RelationDTO>> map = EntityUtil.makeEntityListMap(sub, "sId");
+
+        treeDTO.setId(root.get(0).getSId());
+        treeDTO.setName(root.get(0).getSName());
+        for (RelationDTO relationDTO : root) {
+            TreeDTO treeDTO2 = new TreeDTO();
+            treeDTO2.setId(relationDTO.getEId());
+            treeDTO2.setName(relationDTO.getEName());
+            List<RelationDTO> e = map.get(relationDTO.getEId());
+            if (ListUtil.isNotEmpty(e)) {
+                for (RelationDTO relationDTO1 : e) {
+                    TreeDTO treeDTO3 = new TreeDTO();
+                    treeDTO3.setId(relationDTO1.getEId());
+                    treeDTO3.setName(relationDTO1.getEName());
+                    treeDTO2.getNextTree().add(treeDTO3);
+                }
+            }
+            treeDTO.getNextTree().add(treeDTO2);
+        }
+        return treeDTO;
+    }
 }

+ 4 - 0
cdssman-service/src/main/java/com/diagbot/mapper/KlRelationMapper.java

@@ -1,10 +1,12 @@
 package com.diagbot.mapper;
 
+import com.diagbot.dto.RelationDTO;
 import com.diagbot.dto.RelationNameDTO;
 import com.diagbot.dto.RelationNodeDTO;
 import com.diagbot.entity.KlRelation;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.vo.KlRelationVO;
+import com.diagbot.vo.RelationVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -26,5 +28,7 @@ public interface KlRelationMapper extends BaseMapper<KlRelation> {
 
     List<MedClassMedDTO> getMedClassMedList();
 
+    List<RelationDTO> getRelations(RelationVO relationVO);
+
     List<RelationNameDTO> getRelationNameDTOs(@Param(value="conceptIds")List<Long> conceptIds,@Param(value="relationId")Integer relationId);
 }

+ 4 - 0
cdssman-service/src/main/java/com/diagbot/service/KlRelationService.java

@@ -1,10 +1,12 @@
 package com.diagbot.service;
 
 import com.diagbot.dto.MedClassMedDTO;
+import com.diagbot.dto.RelationDTO;
 import com.diagbot.dto.RelationNameDTO;
 import com.diagbot.entity.KlRelation;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.vo.KlRelationVO;
+import com.diagbot.vo.RelationVO;
 import io.swagger.models.auth.In;
 
 import java.util.List;
@@ -20,5 +22,7 @@ import java.util.List;
 public interface KlRelationService extends IService<KlRelation> {
     List<MedClassMedDTO> getMedClassMedList();
 
+    List<RelationDTO> getRelations(RelationVO relationVO);
+
     List<RelationNameDTO> getRelationNameDTOs(List<Long> conceptIds, Integer relationId);
 }

+ 6 - 0
cdssman-service/src/main/java/com/diagbot/service/impl/KlRelationServiceImpl.java

@@ -3,11 +3,13 @@ package com.diagbot.service.impl;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.MedClassMedDTO;
+import com.diagbot.dto.RelationDTO;
 import com.diagbot.dto.RelationNameDTO;
 import com.diagbot.entity.KlRelation;
 import com.diagbot.mapper.KlRelationMapper;
 import com.diagbot.service.KlRelationService;
 import com.diagbot.vo.KlRelationVO;
+import com.diagbot.vo.RelationVO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 
@@ -28,6 +30,10 @@ public class KlRelationServiceImpl extends ServiceImpl<KlRelationMapper, KlRelat
         return baseMapper.getMedClassMedList();
     }
 
+    public List<RelationDTO> getRelations(RelationVO relationVO){
+        return baseMapper.getRelations(relationVO);
+    }
+
     @Override
     public List<RelationNameDTO> getRelationNameDTOs(List<Long> conceptIds,Integer relationId) {
         return baseMapper.getRelationNameDTOs(conceptIds,relationId);

+ 17 - 0
cdssman-service/src/main/java/com/diagbot/vo/RelationVO.java

@@ -0,0 +1,17 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/3/10 16:52
+ */
+@Getter
+@Setter
+public class RelationVO {
+    private Long sType;
+    private Long rId;
+    private Long eType;
+}

+ 15 - 0
cdssman-service/src/main/java/com/diagbot/vo/TreeVO.java

@@ -0,0 +1,15 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2021/3/10 17:01
+ */
+@Getter
+@Setter
+public class TreeVO {
+    private Integer type;
+}

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

@@ -4,13 +4,17 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.GetAllForRelationDTO;
 import com.diagbot.dto.RelationNodeDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.TreeDTO;
 import com.diagbot.facade.KlConceptFacade;
+import com.diagbot.facade.KlRelationFacade;
 import com.diagbot.facade.RelationContactFacade;
-import com.diagbot.vo.*;
+import com.diagbot.vo.GetAllForRelationVO;
+import com.diagbot.vo.KlRelationSaveVO;
+import com.diagbot.vo.RelationContactDetailVO;
+import com.diagbot.vo.TreeVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -33,6 +37,8 @@ public class TreeContactController {
     private RelationContactFacade relationContactFacade;
     @Autowired
     private KlConceptFacade klConceptFacade;
+    @Autowired
+    private KlRelationFacade klRelationFacade;
 
 
     @ApiOperation(value = "知识库标准化-树形结构维护相关API-详情(根据类别查询)[by:kongwz]")
@@ -46,6 +52,13 @@ public class TreeContactController {
         return RespDTO.onSuc(relationContactFacade.relationContactDetail(klRelationVO));
     }*/
 
+    @ApiOperation(value = "知识库标准化-树形结构维护相关API-详情(根据类别查询)[by:kongwz]")
+    @PostMapping("/getTree")
+    @SysLogger("getTree")
+    public RespDTO<TreeDTO> getTree(@RequestBody TreeVO treeVO) {
+        return RespDTO.onSuc(klRelationFacade.getTree(treeVO));
+    }
+
     @ApiOperation(value = "知识库标准化-获取所有概念(术语关系维护时筛选使用)[by:kongwz]")
     @PostMapping("/getAllForRelation")
     @SysLogger("getAllForRelation")
@@ -65,5 +78,4 @@ public class TreeContactController {
     }
 
 
-
 }

+ 39 - 0
cdssman-service/src/main/resources/mapper/KlRelationMapper.xml

@@ -41,6 +41,45 @@
         AND c.`status` = 1
     </select>
 
+    <select id="getRelations" parameterType="com.diagbot.vo.RelationVO" resultType="com.diagbot.dto.RelationDTO">
+        SELECT
+            a.id AS sId,
+            a.lib_name AS sName,
+            a.lib_type AS sType,
+            b.relation_id AS rId,
+            c.id AS eId,
+            c.lib_name AS eName,
+            c.lib_type AS eType
+        FROM
+            kl_concept a,
+            kl_relation b,
+            kl_concept c,
+            kl_relation_order d
+        WHERE
+            a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND a.id = b.start_id
+        AND c.id = b.end_id
+        <if test="sType!=null">
+            AND a.lib_type = #{sType}
+        </if>
+        <if test="rId!=null">
+            AND b.relation_id = #{rId}
+        </if>
+        <if test="eType!=null">
+            AND c.lib_type = #{eType}
+        </if>
+        AND a.`status` = 1
+        AND b.`status` = 1
+        AND c.`status` = 1
+        AND b.id = d.t_relation_id
+        AND d.is_deleted = 'N'
+        ORDER BY
+            a.id,
+            d.order_no
+    </select>
+
     <select id="getRelationNodeDTOs" resultType="com.diagbot.dto.RelationNodeDTO">
         SELECT
         d.id AS conceptId,