Browse Source

术语关系维护修改

rgb 6 years ago
parent
commit
930b7bebcb

+ 82 - 0
knowledgeman-service/src/main/java/com/diagbot/dto/GetRelationInfoDetailDTO.java

@@ -0,0 +1,82 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午5:00:34
+ */
+@Getter
+@Setter
+public class GetRelationInfoDetailDTO {
+	
+    /**
+     * id
+     */
+	@ApiModelProperty(value="id")
+    private Long id;
+    
+    /**
+     * 关系起点术语id
+     */
+	@ApiModelProperty(value="关系起点术语id")
+    private Long startId;
+    
+    /**
+     * 关系起点术语名称
+     */
+	@ApiModelProperty(value="关系起点术语名称")
+    private String startName;
+    
+    /**
+     * 关系终点术语id
+     */
+	@ApiModelProperty(value="关系终点术语id")
+    private Long endId;
+	
+    /**
+     * 关系终点术语名称
+     */
+	@ApiModelProperty(value="关系终点术语名称")
+    private String endName;
+	
+    /**
+     * 关系id
+     */
+	@ApiModelProperty(value="关系id")
+    private Long relationId;
+    
+    /**
+     * 关系名称
+     */
+	@ApiModelProperty(value="关系名称")
+    private String relationName;
+    
+    /**
+     * 操作人
+     */
+	@ApiModelProperty(value="操作人")
+    private String operName;
+    
+    /**
+     * 操作时间
+     */
+	@JsonFormat(timezone="GMT+8",pattern ="yyyy-MM-dd HH:mm")
+	@ApiModelProperty(value="操作时间")
+    private Date operTime;
+    
+    
+    
+    
+    
+    
+    
+
+}

+ 82 - 0
knowledgeman-service/src/main/java/com/diagbot/dto/GetRelationInfoListDTO.java

@@ -0,0 +1,82 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description
+ * @author rgb
+ * @time 2018年12月5日下午5:00:34
+ */
+@Getter
+@Setter
+public class GetRelationInfoListDTO {
+	
+    /**
+     * id
+     */
+	@ApiModelProperty(value="id")
+    private Long id;
+    
+    /**
+     * 关系起点术语id
+     */
+	@ApiModelProperty(value="关系起点术语id")
+    private Long startId;
+    
+    /**
+     * 关系起点术语名称
+     */
+	@ApiModelProperty(value="关系起点术语名称")
+    private String startName;
+    
+    /**
+     * 关系终点术语id
+     */
+	@ApiModelProperty(value="关系终点术语id")
+    private Long endId;
+	
+    /**
+     * 关系终点术语名称
+     */
+	@ApiModelProperty(value="关系终点术语名称")
+    private String endName;
+	
+    /**
+     * 关系id
+     */
+	@ApiModelProperty(value="关系id")
+    private Long relationId;
+    
+    /**
+     * 关系名称
+     */
+	@ApiModelProperty(value="关系名称")
+    private String relationName;
+    
+    /**
+     * 操作人
+     */
+	@ApiModelProperty(value="操作人")
+    private String operName;
+    
+    /**
+     * 操作时间
+     */
+	@JsonFormat(timezone="GMT+8",pattern ="yyyy-MM-dd HH:mm")
+	@ApiModelProperty(value="操作时间")
+    private Date operTime;
+    
+    
+    
+    
+    
+    
+    
+
+}

+ 16 - 0
knowledgeman-service/src/main/java/com/diagbot/facade/LexiconRelationshipFacade.java

@@ -0,0 +1,16 @@
+package com.diagbot.facade;
+
+import org.springframework.stereotype.Component;
+
+import com.diagbot.service.impl.LexiconRelationshipServiceImpl;
+
+/**
+ * @Description: 术语关系信息业务层
+ * @author: Weixuan Huang
+ * @time: 2019/1/16 14:17
+ */
+@Component
+public class LexiconRelationshipFacade extends LexiconRelationshipServiceImpl {
+
+
+}

+ 127 - 14
knowledgeman-service/src/main/java/com/diagbot/facade/RelationFacade.java

@@ -1,28 +1,37 @@
 package com.diagbot.facade;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.diagbot.dto.ConceptDTO;
+import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.GetRelationInfoDetailDTO;
+import com.diagbot.dto.GetRelationInfoListDTO;
 import com.diagbot.dto.RelationDTO;
-import com.diagbot.entity.Concept;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.LexiconRelationship;
 import com.diagbot.entity.LibraryInfo;
 import com.diagbot.entity.Relation;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.RelationServiceImpl;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.UserUtils;
 import com.diagbot.vo.AllRelationVo;
 import com.diagbot.vo.AmendTermVo;
+import com.diagbot.vo.GetRelationInfoDetailVO;
+import com.diagbot.vo.GetRelationInfoListVO;
 import com.diagbot.vo.RelationVo;
-import com.diagbot.vo.TermVo;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import com.diagbot.vo.RemoveRelationInfoVO;
 
 /**
  * @Description: 术语知识查询业务层
@@ -32,12 +41,116 @@ import java.util.Map;
 @Component
 public class RelationFacade extends RelationServiceImpl {
 
-    @Autowired
-    private ConceptFacade conceptFacade;
+//    @Autowired
+//    private ConceptFacade conceptFacade;
     @Autowired
     private LibraryInfoFacade libraryInfoFacade;
     @Autowired
     private RelationshipFacade relationshipFacade;
+    @Autowired
+    private UserServiceClient userServiceClient;
+    @Autowired
+    private LexiconRelationshipFacade lexiconRelationshipFacade;
+    
+    /**
+     * 获取医学术语关系列表
+     * @param getRelationInfoListVO
+     * @return
+     */
+    public IPage<GetRelationInfoListDTO> getRelationInfoList(GetRelationInfoListVO getRelationInfoListVO) {
+    	IPage<GetRelationInfoListDTO> ipage = this.baseMapper.getRelationInfoList(getRelationInfoListVO);
+    	List<String> ids = ipage.getRecords().stream().map(i->i.getOperName()).distinct().collect(Collectors.toList());
+    	RespDTO<Map<String, String>> respDTO = userServiceClient.getUserInfoByIds(ids);
+    	if (respDTO == null || !CommonErrorCode.OK.getCode().equals(respDTO.code)) {
+            throw new CommonException(CommonErrorCode.RPC_ERROR,
+                    "获取用户信息失败");
+        }
+    	ipage.getRecords().forEach(i->{
+    		i.setOperName(respDTO.data.get(i.getOperName()));
+    	});
+    	return ipage;
+    }
+    
+    /**
+     * 医学术语关系删除
+     * @param removeRelationInfoVO
+     * @return
+     */
+    public Boolean removeRelationInfo(RemoveRelationInfoVO removeRelationInfoVO) {
+    	Relation relation = this.getById(removeRelationInfoVO.getId());
+    	if(relation==null||relation.getIsDeleted().equals("Y")){
+    		throw new CommonException(CommonErrorCode.NOT_EXISTS);
+    	}
+    	
+    	relation.setIsDeleted("Y");
+    	relation.setModifier(UserUtils.getCurrentPrincipleID());
+    	relation.setGmtModified(DateUtil.now());
+        return updateById(relation);
+    }
+    
+    /**
+     * 获取医学术语关系详情
+     * @param getRelationInfoDetailVO
+     * @return
+     */
+    public GetRelationInfoDetailDTO getRelationInfoDetail(GetRelationInfoDetailVO getRelationInfoDetailVO){
+    	Relation relation = this.getById(getRelationInfoDetailVO.getId());
+    	if(relation==null||relation.getIsDeleted().equals("Y")){
+    		throw new CommonException(CommonErrorCode.NOT_EXISTS);
+    	}
+    	
+    	GetRelationInfoDetailDTO getRelationInfoDetailDTO = new GetRelationInfoDetailDTO();
+    	
+    	LibraryInfo startLibraryInfo = libraryInfoFacade.getById(relation.getStartId());
+    	if(startLibraryInfo!=null&&startLibraryInfo.getIsDeleted().equals("N")){
+    		getRelationInfoDetailDTO.setStartId(startLibraryInfo.getId());
+    		getRelationInfoDetailDTO.setStartName(startLibraryInfo.getName());
+    	}
+    	
+    	LibraryInfo endLibraryInfo = libraryInfoFacade.getById(relation.getEndId());
+    	if(endLibraryInfo!=null&&endLibraryInfo.getIsDeleted().equals("N")){
+    		getRelationInfoDetailDTO.setEndId(endLibraryInfo.getId());
+    		getRelationInfoDetailDTO.setEndName(endLibraryInfo.getName());
+    	}
+    	
+    	LexiconRelationship lexiconRelationship = lexiconRelationshipFacade.getById(relation.getRelationId());
+    	if(lexiconRelationship!=null&&lexiconRelationship.getIsDeleted().equals("N")){
+    		getRelationInfoDetailDTO.setRelationId(lexiconRelationship.getId());
+    		getRelationInfoDetailDTO.setRelationName(lexiconRelationship.getName());
+    	}
+    	
+    	return getRelationInfoDetailDTO;
+    }
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
 
 
     /**

+ 8 - 3
knowledgeman-service/src/main/java/com/diagbot/mapper/RelationMapper.java

@@ -1,15 +1,16 @@
 package com.diagbot.mapper;
 
+import java.util.List;
+
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.diagbot.dto.GetRelationInfoListDTO;
 import com.diagbot.dto.RelationDTO;
 import com.diagbot.entity.Relation;
 import com.diagbot.vo.AllRelationVo;
+import com.diagbot.vo.GetRelationInfoListVO;
 import com.diagbot.vo.RelationVo;
 
-import java.util.List;
-
 /**
  * <p>
  *  Mapper 接口
@@ -19,6 +20,10 @@ import java.util.List;
  * @since 2019-01-31
  */
 public interface RelationMapper extends BaseMapper<Relation> {
+	
+	
+	IPage<GetRelationInfoListDTO> getRelationInfoList(GetRelationInfoListVO getRelationInfoListVO);
+	
     /**
      * 获取所有术语关系
      *

+ 25 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/GetRelationInfoDetailVO.java

@@ -0,0 +1,25 @@
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: Weixuan Huang
+ * @time: 2019/3/14 16:03
+ */
+@Getter
+@Setter
+public class GetRelationInfoDetailVO {
+    
+    /**
+     * 医学术语关系id
+     */
+	@ApiModelProperty(value="医学术语关系id",required=true)
+	@NotNull(message="医学术语关系id必传")
+    private Long id;
+    
+}

+ 37 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/GetRelationInfoListVO.java

@@ -0,0 +1,37 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: Weixuan Huang
+ * @time: 2019/3/14 16:03
+ */
+@SuppressWarnings({ "serial", "rawtypes" })
+@Getter
+@Setter
+public class GetRelationInfoListVO extends Page {
+    
+    /**
+     * 关系id
+     */
+	@ApiModelProperty(value="关系id")
+    private Long relationId;
+    
+    /**
+     * 关系起点术语名称
+     */
+	@ApiModelProperty(value="关系起点术语名称")
+    private String startName;
+    
+    /**
+     * 关系终点术语名称
+     */
+	@ApiModelProperty(value="关系终点术语名称")
+    private String endName;
+    
+}

+ 25 - 0
knowledgeman-service/src/main/java/com/diagbot/vo/RemoveRelationInfoVO.java

@@ -0,0 +1,25 @@
+package com.diagbot.vo;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: Weixuan Huang
+ * @time: 2019/3/14 16:03
+ */
+@Getter
+@Setter
+public class RemoveRelationInfoVO {
+    
+    /**
+     * 医学术语关系id
+     */
+	@ApiModelProperty(value="医学术语关系id",required=true)
+	@NotNull(message="医学术语关系id必传")
+    private Long id;
+    
+}

+ 79 - 55
knowledgeman-service/src/main/java/com/diagbot/web/RelationController.java

@@ -1,25 +1,26 @@
 package com.diagbot.web;
 
+import javax.validation.Valid;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.RelationDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.LexiconRelationship;
-import com.diagbot.facade.RelationFacade;
-import com.diagbot.facade.RelationshipFacade;
-import com.diagbot.vo.AllRelationVo;
-import com.diagbot.vo.RelationVo;
-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;
 import org.springframework.web.bind.annotation.RestController;
 
-import javax.validation.Valid;
-import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.GetRelationInfoDetailDTO;
+import com.diagbot.dto.GetRelationInfoListDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.RelationFacade;
+import com.diagbot.vo.GetRelationInfoDetailVO;
+import com.diagbot.vo.GetRelationInfoListVO;
+import com.diagbot.vo.RemoveRelationInfoVO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 
 /**
  * <p>
@@ -27,56 +28,79 @@ import java.util.List;
  * </p>
  *
  * @author Weixuan Huang
- * @since 2019-01-16
+ * @since 2019-01-30
  */
 @RestController
 @RequestMapping("/relation")
-@Api(value = "标准术语关系API", tags = { "标准术语关系API" })
-
+@SuppressWarnings("unchecked")
+@Api(value = "医学术语关系维护相关API", tags = { "医学术语关系维护相关API" })
 public class RelationController {
+	
     @Autowired
-    RelationFacade relationFacade;
-
-    @Autowired
-    RelationshipFacade relationshipFacade;
-
-    @ApiOperation(value = "按标准术语查询关系",
-            notes = "Term:术语名称, 必填<br>Type:术语类型, 必填<br>")
-    @PostMapping("/getConceptRelation")
-    @SysLogger("getConceptRelation")
-    public RespDTO<List<RelationDTO>> getConceptRelation(@Valid @RequestBody RelationVo relationVo) {
-        List<RelationDTO> data = relationFacade.getRelations(relationVo);
-
-        return RespDTO.onSuc(data);
+    private RelationFacade relationFacade;
+    
+    @ApiOperation(value = "获取医学术语关系列表[by:rengb]")
+    @PostMapping("/getRelationInfoList")
+    @SysLogger("getRelationInfoList")
+    public RespDTO<IPage<GetRelationInfoListDTO>> getRelationInfoList(@RequestBody GetRelationInfoListVO getRelationInfoListVO) {
+        return RespDTO.onSuc(relationFacade.getRelationInfoList(getRelationInfoListVO));
     }
-
-    @ApiOperation(value = "所有术语关系查询")
-    @PostMapping("/getAllRelation")
-    @SysLogger("getAllRelation")
-    public RespDTO<IPage<RelationDTO>> getAllRelation(@RequestBody AllRelationVo allrelationVo) {
-        IPage<RelationDTO> data = relationFacade.getAllRelations(allrelationVo);
-
-        return RespDTO.onSuc(data);
+    
+    @ApiOperation(value = "医学术语关系删除[by:rengb]")
+    @PostMapping("/removeRelationInfo")
+    @SysLogger("removeRelationInfo")
+    @Transactional
+    public RespDTO<Boolean> removeRelationInfo(@Valid @RequestBody RemoveRelationInfoVO removeRelationInfoVO) {
+        return RespDTO.onSuc(relationFacade.removeRelationInfo(removeRelationInfoVO));
     }
-
-    @ApiOperation(value = "标准术语关系删除",
-            notes = "StartTerm:起始术语名称, 必填<br>StartType:起始术语类型, 必填<br>Relation:关系名称, 必填<br>" +
-                    "EndTerm:终点术语名称, 必填<br>EndType:终点术语类型, 必填<br>")
-    @PostMapping("/removeRelation")
-    @SysLogger("removeRelation")
-    public RespDTO<RelationDTO> removeRelation(@Valid @RequestBody RelationVo relationVo) {
-        RelationDTO data = relationFacade.removeRelations(relationVo);
-
-        return RespDTO.onSuc(data);
+    
+    @ApiOperation(value = "获取医学术语关系详情[by:rengb]")
+    @PostMapping("/getRelationInfoDetail")
+    @SysLogger("getRelationInfoDetail")
+    public RespDTO<GetRelationInfoDetailDTO> getRelationInfoDetail(@Valid @RequestBody GetRelationInfoDetailVO getRelationInfoDetailVO) {
+        return RespDTO.onSuc(relationFacade.getRelationInfoDetail(getRelationInfoDetailVO));
     }
+    
+    
+    
 
-    @ApiOperation(value = "所有关系名称查询")
-    @PostMapping("/getRelationName")
-    @SysLogger("getRelationName")
-    public RespDTO<IPage<LexiconRelationship>> getAllRelationName(@RequestBody AllRelationVo allrelationVo) {
-        IPage<LexiconRelationship> data = relationshipFacade.getRelationName(allrelationVo);
-
-        return RespDTO.onSuc(data);
-    }
+//    @ApiOperation(value = "按标准术语查询关系",
+//            notes = "Term:术语名称, 必填<br>Type:术语类型, 必填<br>")
+//    @PostMapping("/getConceptRelation")
+//    @SysLogger("getConceptRelation")
+//    public RespDTO<List<RelationDTO>> getConceptRelation(@Valid @RequestBody RelationVo relationVo) {
+//        List<RelationDTO> data = relationFacade.getRelations(relationVo);
+//
+//        return RespDTO.onSuc(data);
+//    }
+//
+//    @ApiOperation(value = "所有术语关系查询")
+//    @PostMapping("/getAllRelation")
+//    @SysLogger("getAllRelation")
+//    public RespDTO<IPage<RelationDTO>> getAllRelation(@RequestBody AllRelationVo allrelationVo) {
+//        IPage<RelationDTO> data = relationFacade.getAllRelations(allrelationVo);
+//
+//        return RespDTO.onSuc(data);
+//    }
+//
+//    @ApiOperation(value = "标准术语关系删除",
+//            notes = "StartTerm:起始术语名称, 必填<br>StartType:起始术语类型, 必填<br>Relation:关系名称, 必填<br>" +
+//                    "EndTerm:终点术语名称, 必填<br>EndType:终点术语类型, 必填<br>")
+//    @PostMapping("/removeRelation")
+//    @SysLogger("removeRelation")
+//    public RespDTO<RelationDTO> removeRelation(@Valid @RequestBody RelationVo relationVo) {
+//        RelationDTO data = relationFacade.removeRelations(relationVo);
+//
+//        return RespDTO.onSuc(data);
+//    }
+//
+//    @ApiOperation(value = "所有关系名称查询")
+//    @PostMapping("/getRelationName")
+//    @SysLogger("getRelationName")
+//    public RespDTO<IPage<LexiconRelationship>> getAllRelationName(@RequestBody AllRelationVo allrelationVo) {
+//        IPage<LexiconRelationship> data = relationshipFacade.getRelationName(allrelationVo);
+//
+//        return RespDTO.onSuc(data);
+//    }
 
 }

+ 26 - 0
knowledgeman-service/src/main/resources/mapper/RelationMapper.xml

@@ -14,6 +14,32 @@
         <result column="relation_id" property="relationId" />
         <result column="end_id" property="endId" />
     </resultMap>
+    
+    <select id="getRelationInfoList" resultType="com.diagbot.dto.GetRelationInfoListDTO">
+    	SELECT * FROM 
+		(SELECT
+		a.id,
+		a.start_id as startId,
+		(SELECT name FROM library_info where id=a.start_id and is_deleted='N') as startName,
+		a.end_id as endId,
+		(SELECT name FROM library_info where id=a.end_id and is_deleted='N') as endName,
+		a.relation_id as relationId,
+		(SELECT name FROM lexicon_relationship where id=a.relation_id and is_deleted='N') as relationName,
+		a.gmt_modified as operTime,
+		a.modifier as operName
+		from relation a) t
+		where 1=1 and is_deleted='N'
+		<if test="relationId!=null">
+			and relation_id=#{relationId}
+		</if>
+		<if test="startName!=null and startName!=''">
+			and startName like concat('%',#{startName},'%')
+		</if>
+		<if test="endName!=null and endName!=''">
+			and endName like concat('%',#{endName},'%')
+		</if>
+		ORDER BY operTime desc
+    </select>
 
     <select id="getAllRelation" resultType="com.diagbot.dto.RelationDTO">
         SELECT c.id, c.start_id, c.name as startName, c.type as startType, c.relation_id, d.name as relationName,