| 
					
				 | 
			
			
				@@ -28,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.util.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.concurrent.ConcurrentHashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /**     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 视频设备数据存储-jdbc实现 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -197,17 +198,27 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if (deviceChannelList == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List<DeviceChannel> allChannelInPlay = deviceChannelMapper.getAllChannelInPlay(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Map<String,DeviceChannel> allChannelMapInPlay = new ConcurrentHashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (allChannelInPlay.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			for (DeviceChannel deviceChannel : allChannelInPlay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				allChannelMapInPlay.put(deviceChannel.getChannelId(), deviceChannel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 数据去重 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		List<DeviceChannel> channels = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		StringBuilder stringBuilder = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Map<String, Integer> subContMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if (deviceChannelList != null && deviceChannelList.size() > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if (deviceChannelList.size() > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 数据去重 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			Set<String> gbIdSet = new HashSet<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			for (DeviceChannel deviceChannel : deviceChannelList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (!gbIdSet.contains(deviceChannel.getChannelId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					gbIdSet.add(deviceChannel.getChannelId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (allChannelMapInPlay.containsKey(deviceChannel.getChannelId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						deviceChannel.setStreamId(allChannelMapInPlay.get(deviceChannel.getChannelId()).getStreamId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					channels.add(deviceChannel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					if (!StringUtils.isEmpty(deviceChannel.getParentId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						if (subContMap.get(deviceChannel.getParentId()) == null) { 
			 |