From fe0b5c33f92e11f51574deb2c589a31b34a6e720 Mon Sep 17 00:00:00 2001 From: chenjialing <595168663@qq.com> Date: 星期三, 02 三月 2022 09:18:17 +0800 Subject: [PATCH] 告警信息上报过程中,AlarmType存储失败的解决 --- src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java | 76 +++++++++++++++++++++++++------------- 1 files changed, 50 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java index 57b30f1..5ab940c 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java @@ -174,7 +174,7 @@ List<DeviceChannel> updateChannels = new ArrayList<>(); HashMap<String, DeviceChannel> channelsInStore = new HashMap<>(); if (channels != null && channels.size() > 0) { - List<DeviceChannel> channelList = deviceChannelMapper.queryChannelsByDeviceId(deviceId); + List<DeviceChannel> channelList = deviceChannelMapper.queryChannels(deviceId, null, null, null, null); if (channelList.size() == 0) { for (DeviceChannel channel : channels) { channel.setDeviceId(deviceId); @@ -239,6 +239,7 @@ // 鏁版嵁鍘婚噸 List<DeviceChannel> channels = new ArrayList<>(); StringBuilder stringBuilder = new StringBuilder(); + Map<String, Integer> subContMap = new HashMap<>(); if (deviceChannelList.size() > 1) { // 鏁版嵁鍘婚噸 Set<String> gbIdSet = new HashSet<>(); @@ -246,10 +247,26 @@ if (!gbIdSet.contains(deviceChannel.getChannelId())) { gbIdSet.add(deviceChannel.getChannelId()); channels.add(deviceChannel); + if (!StringUtils.isEmpty(deviceChannel.getParentId())) { + if (subContMap.get(deviceChannel.getParentId()) == null) { + subContMap.put(deviceChannel.getParentId(), 1); + }else { + Integer count = subContMap.get(deviceChannel.getParentId()); + subContMap.put(deviceChannel.getParentId(), count++); + } + } }else { stringBuilder.append(deviceChannel.getChannelId() + ","); } } + if (channels.size() > 0) { + for (DeviceChannel channel : channels) { + if (subContMap.get(channel.getChannelId()) != null){ + channel.setSubCount(subContMap.get(channel.getChannelId())); + } + } + } + }else { channels = deviceChannelList; } @@ -575,34 +592,34 @@ @Override public PageInfo<ChannelReduce> queryAllChannelList(int page, int count, String query, Boolean online, - Boolean channelType, String platformId, Boolean inPlatform) { + Boolean channelType, String platformId, String catalogId) { PageHelper.startPage(page, count); - List<ChannelReduce> all = deviceChannelMapper.queryChannelListInAll(query, online, channelType, platformId, inPlatform); + List<ChannelReduce> all = deviceChannelMapper.queryChannelListInAll(query, online, channelType, platformId, catalogId); return new PageInfo<>(all); } @Override public List<ChannelReduce> queryChannelListInParentPlatform(String platformId) { - return deviceChannelMapper.queryChannelListInAll(null, null, null, platformId, true); + return deviceChannelMapper.queryChannelListInAll(null, null, null, platformId, platformId); } @Override public int updateChannelForGB(String platformId, List<ChannelReduce> channelReduces, String catalogId) { - Map<String, ChannelReduce> deviceAndChannels = new HashMap<>(); + Map<Integer, ChannelReduce> deviceAndChannels = new HashMap<>(); for (ChannelReduce channelReduce : channelReduces) { channelReduce.setCatalogId(catalogId); - deviceAndChannels.put(channelReduce.getDeviceId() + "_" + channelReduce.getChannelId(), channelReduce); + deviceAndChannels.put(channelReduce.getId(), channelReduce); } - List<String> deviceAndChannelList = new ArrayList<>(deviceAndChannels.keySet()); + List<Integer> deviceAndChannelList = new ArrayList<>(deviceAndChannels.keySet()); // 鏌ヨ褰撳墠宸茬粡瀛樺湪鐨� - List<String> relatedPlatformchannels = platformChannelMapper.findChannelRelatedPlatform(platformId, deviceAndChannelList); - if (relatedPlatformchannels != null) { - deviceAndChannelList.removeAll(relatedPlatformchannels); + List<Integer> channelIds = platformChannelMapper.findChannelRelatedPlatform(platformId, channelReduces); + if (deviceAndChannelList != null) { + deviceAndChannelList.removeAll(channelIds); } - for (String relatedPlatformchannel : relatedPlatformchannels) { - deviceAndChannels.remove(relatedPlatformchannel); + for (Integer channelId : channelIds) { + deviceAndChannels.remove(channelId); } List<ChannelReduce> channelReducesToAdd = new ArrayList<>(deviceAndChannels.values()); // 瀵瑰墿涓嬬殑鏁版嵁杩涜瀛樺偍 @@ -688,9 +705,18 @@ streamProxyItem.setCreateTime(now); streamProxyItem.setCreateStamp(System.currentTimeMillis()); try { - if (gbStreamMapper.add(streamProxyItem)<0 || streamProxyMapper.add(streamProxyItem) < 0) { + if (streamProxyMapper.add(streamProxyItem) > 0) { + if (!StringUtils.isEmpty(streamProxyItem.getGbId())) { + if (gbStreamMapper.add(streamProxyItem) > 0) { + //浜嬪姟鍥炴粴 + dataSourceTransactionManager.rollback(transactionStatus); + return false; + } + } + }else { //浜嬪姟鍥炴粴 dataSourceTransactionManager.rollback(transactionStatus); + return false; } result = true; dataSourceTransactionManager.commit(transactionStatus); //鎵嬪姩鎻愪氦 @@ -714,10 +740,20 @@ boolean result = false; streamProxyItem.setStreamType("proxy"); try { - if (gbStreamMapper.update(streamProxyItem)<0 || streamProxyMapper.update(streamProxyItem) < 0) { + if (streamProxyMapper.update(streamProxyItem) > 0) { + if (!StringUtils.isEmpty(streamProxyItem.getGbId())) { + if (gbStreamMapper.update(streamProxyItem) > 0) { + //浜嬪姟鍥炴粴 + dataSourceTransactionManager.rollback(transactionStatus); + return false; + } + } + } else { //浜嬪姟鍥炴粴 dataSourceTransactionManager.rollback(transactionStatus); + return false; } + dataSourceTransactionManager.commit(transactionStatus); //鎵嬪姩鎻愪氦 result = true; }catch (Exception e) { @@ -852,18 +888,6 @@ @Override public void updateParentPlatformStatus(String platformGbID, boolean online) { platformMapper.updateParentPlatformStatus(platformGbID, online); - } - - @Override - public void updateMediaServer(MediaServerItem mediaServerItem) { - String now = this.format.format(System.currentTimeMillis()); - mediaServerItem.setUpdateTime(now); - if (mediaServerMapper.queryOne(mediaServerItem.getId()) != null) { - mediaServerMapper.update(mediaServerItem); - }else { - mediaServerItem.setCreateTime(now); - mediaServerMapper.add(mediaServerItem); - } } @Override -- Gitblit v1.8.0