From e6a850891e450ae759218fb33f6971e40be5d08a Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期六, 11 五月 2024 17:48:47 +0800 Subject: [PATCH] 支持移动位置订阅通知的数据存储 --- src/main/java/com/genersoft/iot/vmp/media/zlm/SendRtpPortManager.java | 1 - src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java | 7 +++++-- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java | 2 +- src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMobilePositionMapper.java | 18 +++++++++++++++++- src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java | 20 ++++++++++++++++++++ 5 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java index 89f57c2..5157506 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java @@ -111,7 +111,7 @@ if (!ObjectUtils.isEmpty(device.getName())) { mobilePosition.setDeviceName(device.getName()); } - + mobilePosition.setDeviceName(device.getName()); mobilePosition.setDeviceId(device.getDeviceId()); mobilePosition.setChannelId(channelId); String time = XmlUtil.getText(rootElement, "Time"); diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/SendRtpPortManager.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/SendRtpPortManager.java index 3f28d02..fec6638 100755 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/SendRtpPortManager.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/SendRtpPortManager.java @@ -103,7 +103,6 @@ return port; } } - } interface CheckPortCallback{ diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java index 3760381..1836636 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java @@ -356,11 +356,14 @@ @Override public void batchUpdateChannelGPS(List<DeviceChannel> channelList) { - + channelMapper.batchUpdatePosition(channelList); } @Override public void batchAddMobilePosition(List<MobilePosition> mobilePositions) { - + deviceMobilePositionMapper.batchInsert(mobilePositions); } + + + } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java index ae22336..1555221 100755 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java @@ -554,4 +554,24 @@ " <if test='channelId != null'> and channel_id = #{channelId} </if>" + "</script>") void updateChannelStreamIdentification(DeviceChannel channel); + + + @Update({"<script>" + + "<foreach collection='channelList' item='item' separator=';'>" + + " UPDATE" + + " wvp_device_channel" + + " SET update_time=#{item.updateTime}" + + "<if test='item.longitude != null'>, longitude=#{item.longitude}</if>" + + "<if test='item.latitude != null'>, latitude=#{item.latitude}</if>" + + "<if test='item.longitudeGcj02 != null'>, longitude_gcj02=#{item.longitudeGcj02}</if>" + + "<if test='item.latitudeGcj02 != null'>, latitude_gcj02=#{item.latitudeGcj02}</if>" + + "<if test='item.longitudeWgs84 != null'>, longitude_wgs84=#{item.longitudeWgs84}</if>" + + "<if test='item.latitudeWgs84 != null'>, latitude_wgs84=#{item.latitudeWgs84}</if>" + + "<if test='item.gpsTime != null'>, gps_time=#{item.gpsTime}</if>" + + "<if test='item.id > 0'>WHERE id=#{item.id}</if>" + + "<if test='item.id == 0'>WHERE device_id=#{item.deviceId} AND channel_id=#{item.channelId}</if>" + + "</foreach>" + + "</script>"}) + void batchUpdatePosition(List<DeviceChannel> channelList); + } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMobilePositionMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMobilePositionMapper.java index 7bf243c..19494f0 100755 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMobilePositionMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMobilePositionMapper.java @@ -13,7 +13,8 @@ public interface DeviceMobilePositionMapper { @Insert("INSERT INTO wvp_device_mobile_position (device_id,channel_id, device_name,time,longitude,latitude,altitude,speed,direction,report_source,longitude_gcj02,latitude_gcj02,longitude_wgs84,latitude_wgs84,create_time)"+ - "VALUES (#{deviceId}, #{channelId}, #{deviceName}, #{time}, #{longitude}, #{latitude}, #{altitude}, #{speed}, #{direction}, #{reportSource}, #{longitudeGcj02}, #{latitudeGcj02}, #{longitudeWgs84}, #{latitudeWgs84}, #{createTime})") + "VALUES (#{deviceId}, #{channelId}, #{deviceName}, #{time}, #{longitude}, #{latitude}, #{altitude}, " + + "#{speed}, #{direction}, #{reportSource}, #{longitudeGcj02}, #{latitudeGcj02}, #{longitudeWgs84}, #{latitudeWgs84}, #{createTime})") int insertNewPosition(MobilePosition mobilePosition); @Select(value = {" <script>" + @@ -33,4 +34,19 @@ @Delete("DELETE FROM wvp_device_mobile_position WHERE device_id = #{deviceId}") int clearMobilePositionsByDeviceId(String deviceId); + @Insert("<script> " + + "insert into wvp_device_mobile_position " + + "(device_id,channel_id, device_name,time,longitude," + + "latitude,altitude,speed,direction," + + "report_source,longitude_gcj02,latitude_gcj02," + + "longitude_wgs84,latitude_wgs84,create_time)"+ + "values " + + "<foreach collection='mobilePositions' index='index' item='item' separator=','> " + + "(#{item.deviceId}, #{item.channelId}, #{item.deviceName}, #{item.time}, #{item.longitude}, " + + "#{item.latitude}, #{item.altitude}, #{item.speed},#{item.direction}," + + "#{item.reportSource}, #{item.longitudeGcj02}, #{item.latitudeGcj02}, " + + "#{item.longitudeWgs84}, #{item.latitudeWgs84}, #{item.createTime}) " + + "</foreach> " + + "</script>") + void batchInsert(List<MobilePosition> mobilePositions); } -- Gitblit v1.8.0