支持无论位置信息是否变化都按照固定频率发送位置信息
parent
b98050e346
commit
5d10e5f3d6
|
@ -74,6 +74,8 @@ public class UserSetting {
|
|||
|
||||
private boolean registerKeepIntDialog = false;
|
||||
|
||||
private boolean sendPositionOnDemand = true;
|
||||
|
||||
public Boolean getSavePositionHistory() {
|
||||
return savePositionHistory;
|
||||
}
|
||||
|
@ -325,4 +327,13 @@ public class UserSetting {
|
|||
public void setDocEnable(Boolean docEnable) {
|
||||
this.docEnable = docEnable;
|
||||
}
|
||||
|
||||
|
||||
public boolean isSendPositionOnDemand() {
|
||||
return sendPositionOnDemand;
|
||||
}
|
||||
|
||||
public void setSendPositionOnDemand(boolean sendPositionOnDemand) {
|
||||
this.sendPositionOnDemand = sendPositionOnDemand;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -258,6 +258,24 @@ public class DeviceChannel {
|
|||
@Schema(description = "GPS的更新时间")
|
||||
private String gpsTime;
|
||||
|
||||
/**
|
||||
* 速度,单位:km/h (可选)
|
||||
*/
|
||||
@Schema(description = "GPS的速度")
|
||||
private Double gpsSpeed;
|
||||
|
||||
/**
|
||||
* 方向,取值为当前摄像头方向与正北方的顺时针夹角,取值范围0°~360°,单位:(°)(可选)
|
||||
*/
|
||||
@Schema(description = "GPS的方向")
|
||||
private String gpsDirection;
|
||||
|
||||
/**
|
||||
* 海拔高度,单位:m(可选)
|
||||
*/
|
||||
@Schema(description = "GPS的海拔高度")
|
||||
private String gpsAltitude;
|
||||
|
||||
@Schema(description = "码流标识,优先级高于设备中码流标识," +
|
||||
"用于选择码流时组成码流标识。默认为null,不设置。可选值: stream/streamnumber/streamprofile/streamMode")
|
||||
private String streamIdentification;
|
||||
|
@ -614,4 +632,29 @@ public class DeviceChannel {
|
|||
public void setCustomLatitude(double customLatitude) {
|
||||
this.customLatitude = customLatitude;
|
||||
}
|
||||
|
||||
|
||||
public Double getGpsSpeed() {
|
||||
return gpsSpeed;
|
||||
}
|
||||
|
||||
public void setGpsSpeed(Double gpsSpeed) {
|
||||
this.gpsSpeed = gpsSpeed;
|
||||
}
|
||||
|
||||
public String getGpsDirection() {
|
||||
return gpsDirection;
|
||||
}
|
||||
|
||||
public void setGpsDirection(String gpsDirection) {
|
||||
this.gpsDirection = gpsDirection;
|
||||
}
|
||||
|
||||
public String getGpsAltitude() {
|
||||
return gpsAltitude;
|
||||
}
|
||||
|
||||
public void setGpsAltitude(String gpsAltitude) {
|
||||
this.gpsAltitude = gpsAltitude;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -528,9 +528,9 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
|
|||
.append("<Time>" + gpsMsgInfo.getTime() + "</Time>\r\n")
|
||||
.append("<Longitude>" + gpsMsgInfo.getLng() + "</Longitude>\r\n")
|
||||
.append("<Latitude>" + gpsMsgInfo.getLat() + "</Latitude>\r\n")
|
||||
.append("<Speed>" + gpsMsgInfo.getSpeed() + "</Speed>\r\n")
|
||||
.append("<Direction>" + gpsMsgInfo.getDirection() + "</Direction>\r\n")
|
||||
.append("<Altitude>" + gpsMsgInfo.getAltitude() + "</Altitude>\r\n")
|
||||
.append("<Speed>" + (gpsMsgInfo.getSpeed() == null?"":gpsMsgInfo.getSpeed()) + "</Speed>\r\n")
|
||||
.append("<Direction>" + (gpsMsgInfo.getDirection() == null ? "" : gpsMsgInfo.getDirection()) + "</Direction>\r\n")
|
||||
.append("<Altitude>" + (gpsMsgInfo.getAltitude() == null ? "" : gpsMsgInfo.getAltitude()) + "</Altitude>\r\n")
|
||||
.append("</Notify>\r\n");
|
||||
|
||||
sendNotify(parentPlatform, deviceStatusXml.toString(), subscribeInfo, eventResult -> {
|
||||
|
|
|
@ -166,6 +166,10 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements
|
|||
deviceChannel.setLongitude(mobilePosition.getLongitude());
|
||||
deviceChannel.setLatitude(mobilePosition.getLatitude());
|
||||
deviceChannel.setGpsTime(mobilePosition.getTime());
|
||||
deviceChannel.setGpsSpeed(mobilePosition.getSpeed());
|
||||
deviceChannel.setGpsAltitude(mobilePosition.getAltitude() + "");
|
||||
deviceChannel.setGpsDirection(mobilePosition.getDirection() + "");
|
||||
|
||||
|
||||
deviceChannel = deviceChannelService.updateGps(deviceChannel, device);
|
||||
|
||||
|
|
|
@ -13,17 +13,17 @@ public class GPSMsgInfo {
|
|||
/**
|
||||
* 经度 (必选)
|
||||
*/
|
||||
private double lng;
|
||||
private Double lng;
|
||||
|
||||
/**
|
||||
* 纬度 (必选)
|
||||
*/
|
||||
private double lat;
|
||||
private Double lat;
|
||||
|
||||
/**
|
||||
* 速度,单位:km/h (可选)
|
||||
*/
|
||||
private double speed;
|
||||
private Double speed;
|
||||
|
||||
/**
|
||||
* 产生通知时间, 时间格式: 2020-01-14T14:32:12
|
||||
|
@ -63,27 +63,27 @@ public class GPSMsgInfo {
|
|||
this.id = id;
|
||||
}
|
||||
|
||||
public double getLng() {
|
||||
public Double getLng() {
|
||||
return lng;
|
||||
}
|
||||
|
||||
public void setLng(double lng) {
|
||||
public void setLng(Double lng) {
|
||||
this.lng = lng;
|
||||
}
|
||||
|
||||
public double getLat() {
|
||||
public Double getLat() {
|
||||
return lat;
|
||||
}
|
||||
|
||||
public void setLat(double lat) {
|
||||
public void setLat(Double lat) {
|
||||
this.lat = lat;
|
||||
}
|
||||
|
||||
public double getSpeed() {
|
||||
public Double getSpeed() {
|
||||
return speed;
|
||||
}
|
||||
|
||||
public void setSpeed(double speed) {
|
||||
public void setSpeed(Double speed) {
|
||||
this.speed = speed;
|
||||
}
|
||||
|
||||
|
|
|
@ -109,7 +109,7 @@ public class DeviceChannelServiceImpl implements IDeviceChannelService {
|
|||
channel = updateGps(channel, null);
|
||||
if (deviceChannel == null) {
|
||||
channel.setCreateTime(now);
|
||||
channelMapper.add(channel);
|
||||
addChannel(channel);
|
||||
}else {
|
||||
channelMapper.update(channel);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package com.genersoft.iot.vmp.service.impl;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.genersoft.iot.vmp.common.InviteInfo;
|
||||
import com.genersoft.iot.vmp.common.InviteSessionStatus;
|
||||
import com.genersoft.iot.vmp.common.InviteSessionType;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.genersoft.iot.vmp.conf.DynamicTask;
|
||||
import com.genersoft.iot.vmp.conf.UserSetting;
|
||||
import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException;
|
||||
|
@ -13,12 +13,10 @@ import com.genersoft.iot.vmp.gb28181.event.SipSubscribe;
|
|||
import com.genersoft.iot.vmp.gb28181.session.SSRCFactory;
|
||||
import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
|
||||
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform;
|
||||
import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
|
||||
import com.genersoft.iot.vmp.media.zlm.ZlmHttpHookSubscribe;
|
||||
import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeFactory;
|
||||
import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForStreamChange;
|
||||
import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
|
||||
import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
|
||||
import com.genersoft.iot.vmp.media.zlm.ZLMServerFactory;
|
||||
import com.genersoft.iot.vmp.media.zlm.ZlmHttpHookSubscribe;
|
||||
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
|
||||
import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
|
||||
import com.genersoft.iot.vmp.service.IInviteStreamService;
|
||||
|
@ -27,11 +25,11 @@ import com.genersoft.iot.vmp.service.IPlatformService;
|
|||
import com.genersoft.iot.vmp.service.IPlayService;
|
||||
import com.genersoft.iot.vmp.service.bean.*;
|
||||
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
||||
import com.genersoft.iot.vmp.storager.dao.*;
|
||||
import com.genersoft.iot.vmp.storager.dao.GbStreamMapper;
|
||||
import com.genersoft.iot.vmp.storager.dao.ParentPlatformMapper;
|
||||
import com.genersoft.iot.vmp.utils.DateUtil;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import gov.nist.javax.sip.message.SIPRequest;
|
||||
import gov.nist.javax.sip.message.SIPResponse;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -41,17 +39,8 @@ import org.springframework.stereotype.Service;
|
|||
import javax.sdp.*;
|
||||
import javax.sip.InvalidArgumentException;
|
||||
import javax.sip.ResponseEvent;
|
||||
import javax.sip.PeerUnavailableException;
|
||||
import javax.sip.SipException;
|
||||
import java.text.ParseException;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
|
@ -437,19 +426,33 @@ public class PlatformServiceImpl implements IPlatformService {
|
|||
if (subscribe != null) {
|
||||
|
||||
// TODO 暂时只处理视频流的回复,后续增加对国标设备的支持
|
||||
List<DeviceChannel> gbStreams = gbStreamMapper.queryGbStreamListInPlatform(platform.getServerGBId(), userSetting.isUsePushingAsStatus());
|
||||
if (gbStreams.size() == 0) {
|
||||
List<DeviceChannel> deviceChannelList = gbStreamMapper.queryGbStreamListInPlatform(platform.getServerGBId(), userSetting.isUsePushingAsStatus());
|
||||
if (deviceChannelList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
for (DeviceChannel deviceChannel : gbStreams) {
|
||||
for (DeviceChannel deviceChannel : deviceChannelList) {
|
||||
String gbId = deviceChannel.getChannelId();
|
||||
GPSMsgInfo gpsMsgInfo = redisCatchStorage.getGpsMsgInfo(gbId);
|
||||
// 无最新位置不发送
|
||||
// 无最新位置则发送当前位置
|
||||
if (gpsMsgInfo != null) {
|
||||
// 经纬度都为0不发送
|
||||
if (gpsMsgInfo.getLng() == 0 && gpsMsgInfo.getLat() == 0) {
|
||||
continue;
|
||||
if (gpsMsgInfo.getLng() == 0 || gpsMsgInfo.getLat() == 0) {
|
||||
gpsMsgInfo.setLng(deviceChannel.getLongitude());
|
||||
gpsMsgInfo.setLat(deviceChannel.getLatitude());
|
||||
}
|
||||
}else {
|
||||
if (!userSetting.isSendPositionOnDemand()) {
|
||||
gpsMsgInfo = new GPSMsgInfo();
|
||||
gpsMsgInfo.setId(deviceChannel.getChannelId());
|
||||
gpsMsgInfo.setLng(deviceChannel.getLongitude());
|
||||
gpsMsgInfo.setLat(deviceChannel.getLatitude());
|
||||
gpsMsgInfo.setAltitude(deviceChannel.getGpsAltitude());
|
||||
gpsMsgInfo.setSpeed(deviceChannel.getGpsSpeed());
|
||||
gpsMsgInfo.setDirection(deviceChannel.getGpsDirection());
|
||||
gpsMsgInfo.setTime(deviceChannel.getGpsTime());
|
||||
}
|
||||
}
|
||||
if (gpsMsgInfo != null) {
|
||||
// 发送GPS消息
|
||||
try {
|
||||
commanderForPlatform.sendNotifyMobilePosition(platform, gpsMsgInfo, subscribe);
|
||||
|
|
|
@ -68,7 +68,7 @@ public class RedisGpsMsgListener implements MessageListener {
|
|||
@Scheduled(fixedRate = 2 * 1000) //每2秒执行一次
|
||||
public void execute(){
|
||||
List<GPSMsgInfo> gpsMsgInfo = redisCatchStorage.getAllGpsMsgInfo();
|
||||
if (gpsMsgInfo.size() > 0) {
|
||||
if (!gpsMsgInfo.isEmpty()) {
|
||||
storager.updateStreamGPS(gpsMsgInfo);
|
||||
for (GPSMsgInfo msgInfo : gpsMsgInfo) {
|
||||
msgInfo.setStored(true);
|
||||
|
|
|
@ -22,7 +22,8 @@ public interface DeviceChannelMapper {
|
|||
"(channel_id, device_id, name, manufacture, model, owner, civil_code, block, sub_count, " +
|
||||
" address, parental, parent_id, safety_way, register_way, cert_num, certifiable, err_code, secrecy, " +
|
||||
" ip_address,port,password,ptz_type,status,stream_id,longitude,latitude,longitude_gcj02,latitude_gcj02,"+
|
||||
" longitude_wgs84,latitude_wgs84,has_audio,create_time,update_time,business_group_id,gps_time,stream_identification)"+
|
||||
" longitude_wgs84,latitude_wgs84,has_audio,create_time,update_time,business_group_id," +
|
||||
" gps_time,gps_speed,gps_direction,gps_altitude,stream_identification)"+
|
||||
"values " +
|
||||
"(#{channelId}, #{deviceId}, #{name}, #{manufacture}, #{model}, " +
|
||||
"#{owner}, #{civilCode}, #{block},#{subCount}," +
|
||||
|
@ -31,7 +32,7 @@ public interface DeviceChannelMapper {
|
|||
"#{ipAddress}, #{port}, #{password}, #{ptzType}, #{status}, " +
|
||||
"#{streamId}, #{longitude}, #{latitude},#{longitudeGcj02}, " +
|
||||
"#{latitudeGcj02},#{longitudeWgs84}, #{latitudeWgs84}, #{hasAudio}, now(), now(), " +
|
||||
"#{businessGroupId}, #{gpsTime}, #{streamIdentification}) " +
|
||||
"#{businessGroupId}, #{gpsTime}, #{gpsSpeed}, #{gpsDirection}, #{gpsAltitude}, #{streamIdentification}) " +
|
||||
"</script>")
|
||||
int add(DeviceChannel channel);
|
||||
|
||||
|
@ -68,6 +69,9 @@ public interface DeviceChannelMapper {
|
|||
"<if test='latitudeWgs84 != null'>, latitude_wgs84=#{latitudeWgs84}</if>" +
|
||||
"<if test='businessGroupId != null'>, business_group_id=#{businessGroupId}</if>" +
|
||||
"<if test='gpsTime != null'>, gps_time=#{gpsTime}</if>" +
|
||||
"<if test='gpsSpeed != null'>, gps_speed=#{gpsSpeed}</if>" +
|
||||
"<if test='gpsDirection != null'>, gps_direction=#{gpsDirection}</if>" +
|
||||
"<if test='gpsAltitude != null'>, gps_altitude=#{gpsAltitude}</if>" +
|
||||
"<if test='streamIdentification != null'>, stream_identification=#{streamIdentification}</if>" +
|
||||
"WHERE device_id=#{deviceId} AND channel_id=#{channelId}"+
|
||||
" </script>"})
|
||||
|
@ -107,6 +111,9 @@ public interface DeviceChannelMapper {
|
|||
"<if test='latitudeWgs84 != null'>, latitude_wgs84=#{latitudeWgs84}</if>" +
|
||||
"<if test='businessGroupId != null'>, business_group_id=#{businessGroupId}</if>" +
|
||||
"<if test='gpsTime != null'>, gps_time=#{gpsTime}</if>" +
|
||||
"<if test='gpsSpeed != null'>, gps_speed=#{gpsSpeed}</if>" +
|
||||
"<if test='gpsDirection != null'>, gps_direction=#{gpsDirection}</if>" +
|
||||
"<if test='gpsAltitude != null'>, gps_altitude=#{gpsAltitude}</if>" +
|
||||
"<if test='streamIdentification != null'>, stream_identification=#{streamIdentification}</if>" +
|
||||
"<if test='id > 0'>WHERE id=#{id}</if>" +
|
||||
"<if test='id == 0'>WHERE device_id=#{deviceId} AND channel_id=#{channelId}</if>" +
|
||||
|
@ -154,7 +161,10 @@ public interface DeviceChannelMapper {
|
|||
"dc.latitude_wgs84, " +
|
||||
"dc.business_group_id, " +
|
||||
"dc.stream_identification, " +
|
||||
"dc.gps_time " +
|
||||
"dc.gps_time, " +
|
||||
"dc.gps_speed, " +
|
||||
"dc.gps_direction, " +
|
||||
"dc.gps_altitude " +
|
||||
"from " +
|
||||
"wvp_device_channel dc " +
|
||||
"WHERE " +
|
||||
|
@ -293,7 +303,8 @@ public interface DeviceChannelMapper {
|
|||
"(channel_id, device_id, name, manufacture, model, owner, civil_code, block, sub_count, " +
|
||||
" address, parental, parent_id, safety_way, register_way, cert_num, certifiable, err_code, secrecy, " +
|
||||
" ip_address,port,password,ptz_type,status,stream_id,longitude,latitude,longitude_gcj02,latitude_gcj02,"+
|
||||
" longitude_wgs84,latitude_wgs84,has_audio,create_time,update_time,business_group_id,gps_time,stream_identification)"+
|
||||
" longitude_wgs84,latitude_wgs84,has_audio,create_time,update_time,business_group_id," +
|
||||
" gps_time,gps_speed,gps_direction,gps_altitude,stream_identification)"+
|
||||
"values " +
|
||||
"<foreach collection='addChannels' index='index' item='item' separator=','> " +
|
||||
"(#{item.channelId}, #{item.deviceId}, #{item.name}, #{item.manufacture}, #{item.model}, " +
|
||||
|
@ -303,65 +314,12 @@ public interface DeviceChannelMapper {
|
|||
"#{item.ipAddress}, #{item.port}, #{item.password}, #{item.ptzType}, #{item.status}, " +
|
||||
"#{item.streamId}, #{item.longitude}, #{item.latitude},#{item.longitudeGcj02}, " +
|
||||
"#{item.latitudeGcj02},#{item.longitudeWgs84}, #{item.latitudeWgs84}, #{item.hasAudio}, now(), now(), " +
|
||||
"#{item.businessGroupId}, #{item.gpsTime}, #{item.streamIdentification}) " +
|
||||
"#{item.businessGroupId}, #{item.gpsTime}, #{item.gpsSpeed}, #{item.gpsDirection}, #{item.gpsAltitude}, #{item.streamIdentification}) " +
|
||||
"</foreach> " +
|
||||
"</script>")
|
||||
int batchAdd(@Param("addChannels") List<DeviceChannel> addChannels);
|
||||
|
||||
|
||||
@Insert("<script> " +
|
||||
"insert into wvp_device_channel " +
|
||||
"(channel_id,device_id,name,manufacture,model,owner,civil_code,block,sub_count,"+
|
||||
" address,parental,parent_id,safety_way,register_way,cert_num,certifiable,err_code,secrecy,"+
|
||||
" ip_address,port,password,ptz_type,status,stream_id,longitude,latitude,longitude_gcj02,latitude_gcj02,"+
|
||||
" longitude_wgs84,latitude_wgs84,has_audio,create_time,update_time,business_group_id,gps_time)"+
|
||||
"values " +
|
||||
"<foreach collection='addChannels' index='index' item='item' separator=','> " +
|
||||
"(#{item.channelId}, #{item.deviceId}, #{item.name}, #{item.manufacture}, #{item.model}, " +
|
||||
"#{item.owner}, #{item.civilCode}, #{item.block},#{item.subCount}," +
|
||||
"#{item.address}, #{item.parental}, #{item.parentId}, #{item.safetyWay}, #{item.registerWay}, " +
|
||||
"#{item.certNum}, #{item.certifiable}, #{item.errCode}, #{item.secrecy}, " +
|
||||
"#{item.ipAddress}, #{item.port}, #{item.password}, #{item.ptzType}, #{item.status}, " +
|
||||
"#{item.streamId}, #{item.longitude}, #{item.latitude},#{item.longitudeGcj02}, " +
|
||||
"#{item.latitudeGcj02},#{item.longitudeWgs84}, #{item.latitudeWgs84}, #{item.hasAudio}, now(), now(), " +
|
||||
"#{item.businessGroupId}, #{item.gpsTime}) " +
|
||||
"</foreach> " +
|
||||
"ON DUPLICATE KEY UPDATE " +
|
||||
"update_time=VALUES(update_time), " +
|
||||
"name=VALUES(name), " +
|
||||
"manufacture=VALUES(manufacture), " +
|
||||
"model=VALUES(model), " +
|
||||
"owner=VALUES(owner), " +
|
||||
"civil_code=VALUES(civil_code), " +
|
||||
"block=VALUES(block), " +
|
||||
"sub_count=VALUES(sub_count), " +
|
||||
"address=VALUES(address), " +
|
||||
"parental=VALUES(parental), " +
|
||||
"parent_id=VALUES(parent_id), " +
|
||||
"safety_way=VALUES(safety_way), " +
|
||||
"register_way=VALUES(register_way), " +
|
||||
"cert_num=VALUES(cert_num), " +
|
||||
"certifiable=VALUES(certifiable), " +
|
||||
"err_code=VALUES(err_code), " +
|
||||
"secrecy=VALUES(secrecy), " +
|
||||
"ip_address=VALUES(ip_address), " +
|
||||
"port=VALUES(port), " +
|
||||
"password=VALUES(password), " +
|
||||
"ptz_type=VALUES(ptz_type), " +
|
||||
"status=VALUES(status), " +
|
||||
"stream_id=VALUES(stream_id), " +
|
||||
"longitude=VALUES(longitude), " +
|
||||
"latitude=VALUES(latitude), " +
|
||||
"longitude_gcj02=VALUES(longitude_gcj02), " +
|
||||
"latitude_gcj02=VALUES(latitude_gcj02), " +
|
||||
"longitude_wgs84=VALUES(longitude_wgs84), " +
|
||||
"latitude_wgs84=VALUES(latitude_wgs84), " +
|
||||
"has_audio=VALUES(has_audio), " +
|
||||
"business_group_id=VALUES(business_group_id), " +
|
||||
"gps_time=VALUES(gps_time)" +
|
||||
"</script>")
|
||||
int batchAddOrUpdate(List<DeviceChannel> addChannels);
|
||||
|
||||
@Update(value = {"UPDATE wvp_device_channel SET status=true WHERE device_id=#{deviceId} AND channel_id=#{channelId}"})
|
||||
void online(@Param("deviceId") String deviceId, @Param("channelId") String channelId);
|
||||
|
||||
|
@ -403,6 +361,9 @@ public interface DeviceChannelMapper {
|
|||
"<if test='item.latitudeWgs84 != null'>, latitude_wgs84=#{item.latitudeWgs84}</if>" +
|
||||
"<if test='item.businessGroupId != null'>, business_group_id=#{item.businessGroupId}</if>" +
|
||||
"<if test='item.gpsTime != null'>, gps_time=#{item.gpsTime}</if>" +
|
||||
"<if test='item.gpsSpeed != null'>, gps_speed=#{item.gpsSpeed}</if>" +
|
||||
"<if test='item.gpsDirection != null'>, gps_direction=#{item.gpsDirection}</if>" +
|
||||
"<if test='item.gpsAltitude != null'>, gps_altitude=#{item.gpsAltitude}</if>" +
|
||||
"<if test='item.streamIdentification != null'>, stream_identification=#{item.streamIdentification}</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>" +
|
||||
|
@ -443,6 +404,9 @@ public interface DeviceChannelMapper {
|
|||
"latitude_gcj02=#{latitudeGcj02}, " +
|
||||
"longitude_wgs84=#{longitudeWgs84}, " +
|
||||
"latitude_wgs84=#{latitudeWgs84}, " +
|
||||
"gps_speed=#{gpsSpeed}," +
|
||||
"gps_direction=#{gpsDirection}," +
|
||||
"gps_altitude=#{gpsAltitude}," +
|
||||
"gps_time=#{gpsTime} " +
|
||||
"WHERE device_id=#{deviceId} " +
|
||||
" <if test='channelId != null' > AND channel_id=#{channelId}</if>" +
|
||||
|
@ -508,6 +472,10 @@ public interface DeviceChannelMapper {
|
|||
",longitude_wgs84"+
|
||||
",latitude_gcj02"+
|
||||
",longitude_gcj02"+
|
||||
",gps_time"+
|
||||
",gps_speed"+
|
||||
",gps_direction"+
|
||||
",gps_altitude"+
|
||||
"from wvp_device_channel where device_id = #{deviceId} " +
|
||||
"and latitude != 0 " +
|
||||
"and longitude != 0 " +
|
||||
|
@ -588,7 +556,10 @@ public interface DeviceChannelMapper {
|
|||
" longitude_wgs84,\n" +
|
||||
" latitude_wgs84,\n" +
|
||||
" business_group_id,\n" +
|
||||
" gps_time\n" +
|
||||
" gps_time," +
|
||||
" gps_speed,"+
|
||||
" gps_direction,"+
|
||||
" gps_altitude"+
|
||||
"from wvp_device_channel " +
|
||||
"where device_id=#{deviceId}" +
|
||||
" <if test='parentId != null and parentId != deviceId'> and parent_id = #{parentId} </if>" +
|
||||
|
@ -616,6 +587,9 @@ public interface DeviceChannelMapper {
|
|||
"<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.gpsSpeed != null'>, gps_speed=#{item.gpsSpeed}</if>" +
|
||||
"<if test='item.gpsDirection != null'>, gps_direction=#{item.gpsDirection}</if>" +
|
||||
"<if test='item.gpsAltitude != null'>, gps_altitude=#{item.gpsAltitude}</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>" +
|
||||
|
|
|
@ -243,6 +243,8 @@ user-settings:
|
|||
register-keep-int-dialog: false
|
||||
# 开启接口文档页面。 默认开启,生产环境建议关闭,遇到swagger相关的漏洞时也可以关闭
|
||||
doc-enable: true
|
||||
# 按需发送位置, 默认发送移动位置订阅时如果位置不变则不发送, 设置为false按照国标间隔持续发送
|
||||
send-position-on-demand: true
|
||||
# 跨域配置,不配置此项则允许所有跨域请求,配置后则只允许配置的页面的地址请求, 可以配置多个
|
||||
allowed-origins:
|
||||
- http://localhost:8008
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
/*建表*/
|
||||
/*建表*/
|
||||
create table wvp_device (
|
||||
id serial primary key ,
|
||||
device_id character varying(50) not null ,
|
||||
|
@ -91,6 +92,9 @@ create table wvp_device_channel (
|
|||
latitude_wgs84 double precision,
|
||||
business_group_id character varying(50),
|
||||
gps_time character varying(50),
|
||||
gps_speed double precision,
|
||||
gps_direction character varying(255),
|
||||
gps_altitude character varying(255),
|
||||
stream_identification character varying(50),
|
||||
constraint uk_wvp_device_channel_unique_device_channel unique (device_id, channel_id)
|
||||
);
|
||||
|
|
|
@ -91,6 +91,9 @@ create table wvp_device_channel (
|
|||
latitude_wgs84 double precision,
|
||||
business_group_id character varying(50),
|
||||
gps_time character varying(50),
|
||||
gps_speed double precision,
|
||||
gps_direction character varying(255),
|
||||
gps_altitude character varying(255),
|
||||
stream_identification character varying(50),
|
||||
constraint uk_wvp_device_channel_unique_device_channel unique (device_id, channel_id)
|
||||
);
|
||||
|
|
|
@ -3,3 +3,11 @@ alter table wvp_media_server
|
|||
|
||||
alter table wvp_platform_catalog
|
||||
add civil_code_for_channel character varying(50);
|
||||
|
||||
|
||||
/* 20250207 */
|
||||
alter table wvp_device_channel add gps_speed double precision;
|
||||
|
||||
alter table wvp_device_channel add gps_direction character varying(255);
|
||||
|
||||
alter table wvp_device_channel add gps_altitude character varying(255);
|
||||
|
|
|
@ -3,3 +3,11 @@ alter table wvp_media_server
|
|||
|
||||
alter table wvp_platform_catalog
|
||||
add civil_code_for_channel character varying(50);
|
||||
|
||||
|
||||
/* 20250207 */
|
||||
alter table wvp_device_channel add gps_speed double precision;
|
||||
|
||||
alter table wvp_device_channel add gps_direction character varying(255);
|
||||
|
||||
alter table wvp_device_channel add gps_altitude character varying(255);
|
Loading…
Reference in New Issue