diff --git a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRedisConfigServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRedisConfigServiceImpl.java index 60c99b2be..3ee5d3e8a 100644 --- a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRedisConfigServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiRedisConfigServiceImpl.java @@ -438,29 +438,11 @@ public class AiRedisConfigServiceImpl implements IAiRedisConfigService { } try { - // 1. 查询该设备下所有摄像头(优先从 stream_proxy 表查询,确保包含无 ROI 的摄像头) - // 合并两个来源:stream_proxy 表的 edge_device_id 关联 + ROI 表的 device_id 关联 - Set cameraIdSet = new LinkedHashSet<>(); - - // 来源1:stream_proxy 表中 edge_device_id 匹配的摄像头 - List proxyCameraIds = streamProxyMapper.selectCameraCodesByEdgeDeviceId(deviceId); - if (proxyCameraIds != null && !proxyCameraIds.isEmpty()) { - cameraIdSet.addAll(proxyCameraIds); - log.debug("[AiRedis] 从 stream_proxy 表查询到 {} 个摄像头: deviceId={}", proxyCameraIds.size(), deviceId); - } - - // 来源2:ROI 表中 device_id 关联的摄像头(兼容旧数据或边缘情况) - List roiCameraIds = roiMapper.queryDistinctCameraIdsByDeviceId(deviceId); - if (roiCameraIds != null && !roiCameraIds.isEmpty()) { - cameraIdSet.addAll(roiCameraIds); - log.debug("[AiRedis] 从 ROI 表查询到 {} 个摄像头: deviceId={}", roiCameraIds.size(), deviceId); - } - - List cameraIds = new ArrayList<>(cameraIdSet); - if (cameraIds.isEmpty()) { + // 1. 查询该设备下所有摄像头 + List cameraIds = roiMapper.queryDistinctCameraIdsByDeviceId(deviceId); + if (cameraIds == null || cameraIds.isEmpty()) { log.info("[AiRedis] 设备 {} 下无关联摄像头,写入空配置", deviceId); - } else { - log.info("[AiRedis] 设备 {} 下共 {} 个摄像头(去重后)", deviceId, cameraIds.size()); + cameraIds = Collections.emptyList(); } // 2. 构建扁平格式 JSON diff --git a/src/main/java/com/genersoft/iot/vmp/streamProxy/dao/StreamProxyMapper.java b/src/main/java/com/genersoft/iot/vmp/streamProxy/dao/StreamProxyMapper.java index 22cf8bc04..6bc8ee6d6 100755 --- a/src/main/java/com/genersoft/iot/vmp/streamProxy/dao/StreamProxyMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/streamProxy/dao/StreamProxyMapper.java @@ -133,10 +133,4 @@ public interface StreamProxyMapper { */ @Select("SELECT edge_device_id FROM wvp_stream_proxy WHERE camera_code = #{cameraCode}") String selectEdgeDeviceIdByCameraCode(@Param("cameraCode") String cameraCode); - - /** - * 根据 edge_device_id 查询关联的所有摄像头编码 - */ - @Select("SELECT camera_code FROM wvp_stream_proxy WHERE edge_device_id = #{edgeDeviceId} AND camera_code IS NOT NULL AND camera_code != '' ORDER BY camera_name") - List selectCameraCodesByEdgeDeviceId(@Param("edgeDeviceId") String edgeDeviceId); } diff --git a/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java index 6accf8acd..1761c63fa 100755 --- a/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/streamProxy/service/impl/StreamProxyServiceImpl.java @@ -169,21 +169,6 @@ public class StreamProxyServiceImpl implements IStreamProxyService { streamProxyMapper.add(streamProxy); streamProxy.setDataType(ChannelDataType.STREAM_PROXY); streamProxy.setDataDeviceId(streamProxy.getId()); - - // 推送配置到 Edge(新增摄像头) - String edgeDeviceId = streamProxy.getEdgeDeviceId(); - if (edgeDeviceId != null && !edgeDeviceId.isEmpty()) { - try { - redisConfigService.writeDeviceAggregatedConfig(edgeDeviceId, "UPDATE"); - log.info("[StreamProxy] 新增摄像头后推送配置到 Edge,edgeDeviceId={}, cameraCode={}", - edgeDeviceId, cameraCode); - } catch (Exception e) { - log.error("[StreamProxy] 新增摄像头后推送配置失败,edgeDeviceId={}, cameraCode={}", - edgeDeviceId, cameraCode, e); - } - } else { - log.warn("[StreamProxy] 新增摄像头但 edgeDeviceId 为空,跳过推送配置,cameraCode={}", cameraCode); - } } catch (DuplicateKeyException e) { throw new RuntimeException("生成 camera_code 失败,请重试"); } @@ -200,7 +185,7 @@ public class StreamProxyServiceImpl implements IStreamProxyService { private void delete(StreamProxy streamProxy) { Assert.notNull(streamProxy, "代理不可为NULL"); - String edgeDeviceId = streamProxy.getEdgeDeviceId(); + String cameraCode = streamProxy.getCameraCode(); if (streamProxy.getPulling() != null && streamProxy.getPulling()) { playService.stopProxy(streamProxy); } @@ -209,15 +194,13 @@ public class StreamProxyServiceImpl implements IStreamProxyService { } streamProxyMapper.delete(streamProxy.getId()); // 推送配置到 Edge(删除摄像头) - if (edgeDeviceId != null && !edgeDeviceId.isEmpty()) { + if (cameraCode != null) { try { - redisConfigService.writeDeviceAggregatedConfig(edgeDeviceId, "UPDATE"); - log.info("[StreamProxy] 删除摄像头后推送配置到 Edge,edgeDeviceId={}", edgeDeviceId); + redisConfigService.writeDeviceAggregatedConfig(cameraCode, "UPDATE"); + log.info("[StreamProxy] 删除摄像头后推送配置到 Edge,camera_code={}", cameraCode); } catch (Exception e) { - log.error("[StreamProxy] 删除摄像头后推送配置失败,edgeDeviceId={}", edgeDeviceId, e); + log.error("[StreamProxy] 删除摄像头后推送配置失败,camera_code={}", cameraCode, e); } - } else { - log.warn("[StreamProxy] 删除摄像头但 edgeDeviceId 为空,跳过推送配置"); } } @@ -261,38 +244,6 @@ public class StreamProxyServiceImpl implements IStreamProxyService { gbChannelService.add(streamProxy.buildCommonGBChannel()); } } - - // 推送配置到 Edge(更新摄像头) - String oldEdgeDeviceId = streamProxyInDb.getEdgeDeviceId(); - String newEdgeDeviceId = streamProxy.getEdgeDeviceId(); - - if (oldEdgeDeviceId != null && !oldEdgeDeviceId.isEmpty() && - newEdgeDeviceId != null && !newEdgeDeviceId.isEmpty() && - !oldEdgeDeviceId.equals(newEdgeDeviceId)) { - // edgeDeviceId 变更:先推送给老设备(移除),再推送给新设备(添加) - try { - redisConfigService.writeDeviceAggregatedConfig(oldEdgeDeviceId, "UPDATE"); - log.info("[StreamProxy] 更新摄像头后推送配置到旧 Edge,oldEdgeDeviceId={}", oldEdgeDeviceId); - } catch (Exception e) { - log.error("[StreamProxy] 更新摄像头后推送配置到旧 Edge 失败,oldEdgeDeviceId={}", oldEdgeDeviceId, e); - } - try { - redisConfigService.writeDeviceAggregatedConfig(newEdgeDeviceId, "UPDATE"); - log.info("[StreamProxy] 更新摄像头后推送配置到新 Edge,newEdgeDeviceId={}", newEdgeDeviceId); - } catch (Exception e) { - log.error("[StreamProxy] 更新摄像头后推送配置到新 Edge 失败,newEdgeDeviceId={}", newEdgeDeviceId, e); - } - } else if (newEdgeDeviceId != null && !newEdgeDeviceId.isEmpty()) { - // edgeDeviceId 未变更或原为空:推送给当前设备 - try { - redisConfigService.writeDeviceAggregatedConfig(newEdgeDeviceId, "UPDATE"); - log.info("[StreamProxy] 更新摄像头后推送配置到 Edge,edgeDeviceId={}", newEdgeDeviceId); - } catch (Exception e) { - log.error("[StreamProxy] 更新摄像头后推送配置失败,edgeDeviceId={}", newEdgeDeviceId, e); - } - } else { - log.warn("[StreamProxy] 更新摄像头但 edgeDeviceId 为空,跳过推送配置"); - } return true; }