Kaynağa Gözat

关联删除修改

rgb 6 yıl önce
ebeveyn
işleme
82305f7b3a

+ 39 - 5
knowledgeman-service/src/main/java/com/diagbot/facade/RelationContactFacade.java

@@ -238,26 +238,26 @@ public class RelationContactFacade extends RelationServiceImpl {
 	}
 	
 	/**
-	 * 医学术语关联维护/医学术语多层关联维护/化验子项维护-删除或者恢复
+	 * 化验子项维护-逻辑删除或者恢复
 	 * @param removeRelationContactVO
 	 * @return
 	 */
 	public Boolean removeRelationContact(RemoveRelationContactVO removeRelationContactVO){
 		String currentUser = UserUtils.getCurrentPrincipleID();
         Date now = DateUtil.now();
-		repairRelationDataForDel(removeRelationContactVO.getConceptId(), removeRelationContactVO.getRelationId(),removeRelationContactVO.getIsDeleted(),currentUser,now);
+        repairRelationDataForRemove(removeRelationContactVO.getConceptId(), removeRelationContactVO.getRelationId(),removeRelationContactVO.getIsDeleted(),currentUser,now);
 		return true;
 	}
 	
 	/**
-	 * 处理关系节点-删除/恢复事件
+	 * 化验子项维护-逻辑删除或者恢复-处理关系节点
 	 * @param conceptId
 	 * @param relationId
 	 * @param isDeleted
 	 * @param currentUser 操作人
 	 * @param now 操作时间
 	 */
-	private void repairRelationDataForDel(Long conceptId,Long relationId,String isDeleted,String currentUser,Date now){
+	private void repairRelationDataForRemove(Long conceptId,Long relationId,String isDeleted,String currentUser,Date now){
 		QueryWrapper<Relation> relationQe = new QueryWrapper<>();
 		relationQe.eq("start_id", conceptId);
 		relationQe.eq(relationId!=null,"relation_id", relationId);
@@ -290,7 +290,41 @@ public class RelationContactFacade extends RelationServiceImpl {
 		}
 		
 		relationList.forEach(i->{
-			repairRelationDataForDel(i.getEndId(), relationId,isDeleted,currentUser,now);
+			repairRelationDataForRemove(i.getEndId(), relationId,isDeleted,currentUser,now);
+		});
+	}
+	
+	/**
+	 * 医学术语关联维护/医学术语多层关联维护-物理删除
+	 * @param removeRelationContactVO
+	 * @return
+	 */
+	public Boolean deleteRelationContact(RemoveRelationContactVO removeRelationContactVO){
+		repairRelationDataForDelete(removeRelationContactVO.getConceptId(), removeRelationContactVO.getRelationId());
+		return true;
+	}
+	
+	/**
+	 * 医学术语关联维护/医学术语多层关联维护-物理删除-处理关系节点
+	 * @param conceptId
+	 * @param relationId
+	 */
+	private void repairRelationDataForDelete(Long conceptId,Long relationId){
+		QueryWrapper<Relation> relationQe = new QueryWrapper<>();
+		relationQe.eq("start_id", conceptId);
+		relationQe.eq(relationId!=null,"relation_id", relationId);
+		List<Relation> relationList = list(relationQe);
+		
+		if(relationList.size()==0){
+			return;
+		}
+		
+		if(!remove(relationQe)){
+			throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
+		}
+		
+		relationList.forEach(i->{
+			repairRelationDataForDelete(i.getEndId(), relationId);
 		});
 	}
 

+ 1 - 1
knowledgeman-service/src/main/java/com/diagbot/web/MultContactController.java

@@ -68,7 +68,7 @@ public class MultContactController {
     @SysLogger("removeRelationContact")
     @Transactional
     public RespDTO<Boolean> removeRelationContact(@Valid @RequestBody RemoveRelationContactVO removeRelationContactVO) {
-        return RespDTO.onSuc(relationContactFacade.removeRelationContact(removeRelationContactVO));
+        return RespDTO.onSuc(relationContactFacade.deleteRelationContact(removeRelationContactVO));
     }
 
 }

+ 1 - 1
knowledgeman-service/src/main/java/com/diagbot/web/RelationContactController.java

@@ -65,7 +65,7 @@ public class RelationContactController {
     @SysLogger("removeRelationContact")
     @Transactional
     public RespDTO<Boolean> removeRelationContact(@Valid @RequestBody RemoveRelationContactVO removeRelationContactVO) {
-        return RespDTO.onSuc(relationContactFacade.removeRelationContact(removeRelationContactVO));
+        return RespDTO.onSuc(relationContactFacade.deleteRelationContact(removeRelationContactVO));
     }
 
 }