From 0eb2053c6fc08dc87d0d7c235ee4fedeed035267 Mon Sep 17 00:00:00 2001 From: 16337 <1633794139@qq.com> Date: Sun, 22 Mar 2026 00:49:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=9A=E6=91=84=E5=83=8F?= =?UTF-8?q?=E5=A4=B4=E7=BB=91=E5=AE=9A=E8=BE=B9=E7=BC=98=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=EF=BC=8C=E6=88=AA=E5=9B=BE=E8=AF=B7=E6=B1=82=E6=8C=89=20device?= =?UTF-8?q?=5Fid=20=E9=9A=94=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - wvp_stream_proxy 新增 edge_device_id 字段 - StreamProxy 实体 + Mapper INSERT/UPDATE 支持 - 截图请求 XADD 时带上 device_id,边缘端按此过滤 - 存量数据默认绑定到 edge --- .../aiot/service/impl/AiScreenshotServiceImpl.java | 5 +++++ .../iot/vmp/streamProxy/bean/StreamProxy.java | 3 +++ .../iot/vmp/streamProxy/dao/StreamProxyMapper.java | 7 ++++--- 数据库/aiot/迁移-添加edge_device_id字段.sql | 11 +++++++++++ 4 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 数据库/aiot/迁移-添加edge_device_id字段.sql diff --git a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java index d34c4c5e0..c7199011d 100644 --- a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java @@ -131,6 +131,11 @@ public class AiScreenshotServiceImpl implements IAiScreenshotService { if (rtspUrl != null && !rtspUrl.isEmpty()) { fields.put("rtsp_url", rtspUrl); } + // 多 Edge 设备隔离:带上绑定的 edge_device_id + String edgeDeviceId = proxy.getEdgeDeviceId(); + if (edgeDeviceId != null && !edgeDeviceId.isEmpty()) { + fields.put("device_id", edgeDeviceId); + } } try { diff --git a/src/main/java/com/genersoft/iot/vmp/streamProxy/bean/StreamProxy.java b/src/main/java/com/genersoft/iot/vmp/streamProxy/bean/StreamProxy.java index fd5277a67..172cef222 100755 --- a/src/main/java/com/genersoft/iot/vmp/streamProxy/bean/StreamProxy.java +++ b/src/main/java/com/genersoft/iot/vmp/streamProxy/bean/StreamProxy.java @@ -78,6 +78,9 @@ public class StreamProxy extends CommonGBChannel { @Schema(description = "所属区域ID") private Long areaId; + @Schema(description = "绑定的边缘设备ID(如 edge、edge_002)") + private String edgeDeviceId; + public CommonGBChannel buildCommonGBChannel() { if (ObjectUtils.isEmpty(this.getGbDeviceId())) { return null; 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 da7787cbd..9b315931b 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 @@ -13,10 +13,10 @@ public interface StreamProxyMapper { @Insert("INSERT INTO wvp_stream_proxy (type, app, stream,relates_media_server_id, src_url, " + "timeout, ffmpeg_cmd_key, rtsp_type, enable_audio, enable_mp4, enable, pulling, " + - "enable_disable_none_reader, server_id, create_time, camera_code, camera_name, area_id) VALUES" + + "enable_disable_none_reader, server_id, create_time, camera_code, camera_name, area_id, edge_device_id) VALUES" + "(#{type}, #{app}, #{stream}, #{relatesMediaServerId}, #{srcUrl}, " + "#{timeout}, #{ffmpegCmdKey}, #{rtspType}, #{enableAudio}, #{enableMp4}, #{enable}, #{pulling}, " + - "#{enableDisableNoneReader}, #{serverId}, #{createTime}, #{cameraCode}, #{cameraName}, #{areaId} )") + "#{enableDisableNoneReader}, #{serverId}, #{createTime}, #{cameraCode}, #{cameraName}, #{areaId}, #{edgeDeviceId} )") @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id") int add(StreamProxy streamProxyDto); @@ -35,7 +35,8 @@ public interface StreamProxyMapper { "enable_disable_none_reader=#{enableDisableNoneReader}, " + "enable_mp4=#{enableMp4}, " + "camera_name=#{cameraName}, " + - "area_id=#{areaId} " + + "area_id=#{areaId}, " + + "edge_device_id=#{edgeDeviceId} " + "WHERE id=#{id}") int update(StreamProxy streamProxyDto); diff --git a/数据库/aiot/迁移-添加edge_device_id字段.sql b/数据库/aiot/迁移-添加edge_device_id字段.sql new file mode 100644 index 000000000..113d77cfd --- /dev/null +++ b/数据库/aiot/迁移-添加edge_device_id字段.sql @@ -0,0 +1,11 @@ +-- 摄像头绑定边缘设备迁移脚本 +-- 新增 edge_device_id 字段,标识摄像头属于哪个边缘端 + +-- Step 1: 添加 edge_device_id 列 +ALTER TABLE wvp_stream_proxy ADD COLUMN edge_device_id VARCHAR(64) NULL AFTER area_id; + +-- Step 2: 存量数据默认绑定到 edge(第一台边缘设备) +UPDATE wvp_stream_proxy SET edge_device_id = 'edge' WHERE edge_device_id IS NULL; + +-- 验证 +SELECT camera_code, camera_name, edge_device_id FROM wvp_stream_proxy;