| 
					
				 | 
			
			
				@@ -44,6 +44,8 @@ public class GbChannelServiceImpl implements IGbChannelService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 log.warn("[通道移除通知] 发送失败,{}", channel.getGbDeviceId(), e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 结束发送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            closeSend(channel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -91,10 +93,34 @@ public class GbChannelServiceImpl implements IGbChannelService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             log.warn("[多个通道离线] 通道数量为0,更新失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CommonGBChannel> onlineChannelList = commonGBChannelMapper.queryInListByStatus(commonGBChannelList, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (onlineChannelList.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            log.warn("[多个通道离线] 更新失败, 参数内通道已经离线"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int limitCount = 1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int result = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (CommonGBChannel channel : commonGBChannelList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result += offline(channel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (onlineChannelList.size() > limitCount) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int i = 0; i < onlineChannelList.size(); i += limitCount) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int toIndex = i + limitCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (i + limitCount > onlineChannelList.size()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    toIndex = onlineChannelList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result += commonGBChannelMapper.updateStatusForList(onlineChannelList.subList(i, toIndex), 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result += commonGBChannelMapper.updateStatusForList(onlineChannelList, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (result > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 发送catalog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                eventPublisher.catalogEventPublish(null, onlineChannelList, CatalogEvent.OFF); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                log.warn("[多个通道离线] 发送失败,数量:{}", onlineChannelList.size(), e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 结束国标级联的发送 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        closeSend(onlineChannelList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -123,10 +149,34 @@ public class GbChannelServiceImpl implements IGbChannelService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             log.warn("[多个通道上线] 通道数量为0,更新失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CommonGBChannel> offlineChannelList = commonGBChannelMapper.queryInListByStatus(commonGBChannelList, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (offlineChannelList.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            log.warn("[多个通道上线] 更新失败, 参数内通道已经上线线"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 批量更新 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        int limitCount = 1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         int result = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (CommonGBChannel channel : commonGBChannelList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            result += online(channel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (offlineChannelList.size() > limitCount) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int i = 0; i < offlineChannelList.size(); i += limitCount) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int toIndex = i + limitCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (i + limitCount > offlineChannelList.size()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    toIndex = offlineChannelList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                result += commonGBChannelMapper.updateStatusForList(offlineChannelList.subList(i, toIndex), 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            result += commonGBChannelMapper.updateStatusForList(offlineChannelList, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (result > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 发送catalog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                eventPublisher.catalogEventPublish(null, offlineChannelList, CatalogEvent.ON); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                log.warn("[多个通道上线] 发送失败,数量:{}", offlineChannelList.size(), e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -135,6 +185,16 @@ public class GbChannelServiceImpl implements IGbChannelService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void closeSend(List<CommonGBChannel> commonGBChannelList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!commonGBChannelList.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (CommonGBChannel commonGBChannel : commonGBChannelList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                closeSend(commonGBChannel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void batchAdd(List<CommonGBChannel> commonGBChannels) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |