|  | @@ -161,31 +161,30 @@ public class CatalogResponseMessageHandler extends SIPRequestProcessorParent imp
 | 
	
		
			
				|  |  |                          int sn = Integer.parseInt(snElement.getText());
 | 
	
		
			
				|  |  |                          catalogDataCatch.put(take.getDevice().getDeviceId(), sn, sumNum, take.getDevice(),
 | 
	
		
			
				|  |  |                                  channelList, regionList, groupList);
 | 
	
		
			
				|  |  | -                        List<DeviceChannel> deviceChannelList = catalogDataCatch.getDeviceChannelList(take.getDevice().getDeviceId());
 | 
	
		
			
				|  |  | -                        log.info("[收到通道]设备: {} -> {}个,{}/{}", take.getDevice().getDeviceId(), channelList.size(), deviceChannelList.size(), sumNum);
 | 
	
		
			
				|  |  | -                        if (deviceChannelList.size() == sumNum) {
 | 
	
		
			
				|  |  | -                            // 数据已经完整接收, 此时可能存在某个设备离线变上线的情况,但是考虑到性能,此处不做处理,
 | 
	
		
			
				|  |  | -                            // 目前支持设备通道上线通知时和设备上线时向上级通知
 | 
	
		
			
				|  |  | -                            boolean resetChannelsResult = saveData(take.getDevice(), sn);
 | 
	
		
			
				|  |  | -                            if (!resetChannelsResult) {
 | 
	
		
			
				|  |  | -                                String errorMsg = "接收成功,写入失败,共" + sumNum + "条,已接收" + catalogDataCatch.getDeviceChannelList(take.getDevice().getDeviceId()).size() + "条";
 | 
	
		
			
				|  |  | -                                catalogDataCatch.setChannelSyncEnd(take.getDevice().getDeviceId(), errorMsg);
 | 
	
		
			
				|  |  | -                            } else {
 | 
	
		
			
				|  |  | -                                catalogDataCatch.setChannelSyncEnd(take.getDevice().getDeviceId(), null);
 | 
	
		
			
				|  |  | -                            }
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | +                        log.info("[收到通道]设备: {} -> {}个,{}/{}", take.getDevice().getDeviceId(), channelList.size(), catalogDataCatch.size(take.getDevice().getDeviceId()), sumNum);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              } catch (Exception e) {
 | 
	
		
			
				|  |  |                  log.warn("[收到通道] 发现未处理的异常, \r\n{}", evt.getRequest());
 | 
	
		
			
				|  |  |                  log.error("[收到通道] 异常内容: ", e);
 | 
	
		
			
				|  |  | +            } finally {
 | 
	
		
			
				|  |  | +                if (catalogDataCatch.size(take.getDevice().getDeviceId()) == catalogDataCatch.sumNum(take.getDevice().getDeviceId())) {
 | 
	
		
			
				|  |  | +                    // 数据已经完整接收, 此时可能存在某个设备离线变上线的情况,但是考虑到性能,此处不做处理,
 | 
	
		
			
				|  |  | +                    // 目前支持设备通道上线通知时和设备上线时向上级通知
 | 
	
		
			
				|  |  | +                    boolean resetChannelsResult = saveData(take.getDevice());
 | 
	
		
			
				|  |  | +                    if (!resetChannelsResult) {
 | 
	
		
			
				|  |  | +                        String errorMsg = "接收成功,写入失败,共" + catalogDataCatch.sumNum(take.getDevice().getDeviceId()) + "条,已接收" + catalogDataCatch.getDeviceChannelList(take.getDevice().getDeviceId()).size() + "条";
 | 
	
		
			
				|  |  | +                        catalogDataCatch.setChannelSyncEnd(take.getDevice().getDeviceId(), errorMsg);
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        catalogDataCatch.setChannelSyncEnd(take.getDevice().getDeviceId(), null);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Transactional
 | 
	
		
			
				|  |  | -    public boolean saveData(Device device, int sn) {
 | 
	
		
			
				|  |  | +    public boolean saveData(Device device) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          boolean result = true;
 | 
	
		
			
				|  |  |          List<DeviceChannel> deviceChannelList = catalogDataCatch.getDeviceChannelList(device.getDeviceId());
 |