From e59b300c2eb378b1151652c7ede1d37754064629 Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Sat, 8 Feb 2025 16:29:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=A7=BB=E5=8A=A8=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E8=AE=A2=E9=98=85=E5=8F=91=E9=80=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MobilePositionServiceImpl.java | 6 ++++ .../vmp/service/impl/PlatformServiceImpl.java | 31 +++++++++---------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MobilePositionServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MobilePositionServiceImpl.java index 277493ad..2f13eb17 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/MobilePositionServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MobilePositionServiceImpl.java @@ -6,6 +6,7 @@ import com.genersoft.iot.vmp.gb28181.bean.MobilePosition; import com.genersoft.iot.vmp.service.IMobilePositionService; import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; import com.genersoft.iot.vmp.storager.dao.DeviceMobilePositionMapper; +import com.genersoft.iot.vmp.utils.DateUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -83,9 +84,14 @@ public class MobilePositionServiceImpl implements IMobilePositionService { for (MobilePosition mobilePosition : mobilePositions) { DeviceChannel deviceChannel = new DeviceChannel(); deviceChannel.setDeviceId(mobilePosition.getDeviceId()); + deviceChannel.setChannelId(mobilePosition.getChannelId()); deviceChannel.setLongitude(mobilePosition.getLongitude()); deviceChannel.setLatitude(mobilePosition.getLatitude()); + deviceChannel.setUpdateTime(DateUtil.getNow()); deviceChannel.setGpsTime(mobilePosition.getTime()); + deviceChannel.setGpsSpeed(mobilePosition.getSpeed()); + deviceChannel.setGpsDirection(mobilePosition.getDirection() + ""); + deviceChannel.setGpsAltitude(mobilePosition.getAltitude() + ""); updateChannelMap.put(mobilePosition.getDeviceId() + mobilePosition.getChannelId(), deviceChannel); } List channels = new ArrayList<>(updateChannelMap.values()); diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java index 7413a0c0..d1b68d43 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java @@ -433,24 +433,21 @@ public class PlatformServiceImpl implements IPlatformService { for (DeviceChannel deviceChannel : deviceChannelList) { String gbId = deviceChannel.getChannelId(); GPSMsgInfo gpsMsgInfo = redisCatchStorage.getGpsMsgInfo(gbId); + // 无最新位置则发送当前位置 - if (gpsMsgInfo != null) { - // 经纬度都为0不发送 - 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 && (gpsMsgInfo.getLng() == 0 && gpsMsgInfo.getLat() == 0)) { + gpsMsgInfo = null; + } + + if (gpsMsgInfo == null && !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消息