From c21d973977a9f1d00d26179de764687ddd0ec56c Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 24 四月 2024 14:59:41 +0800
Subject: [PATCH] 修复收到catalog消息是更新导致是否有音频的设置失效的BUG

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java |   30 ++++++++++++------------------
 1 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java
old mode 100644
new mode 100755
index 1f0bdf1..bc588c9
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MobilePositionNotifyMessageHandler.java
@@ -1,12 +1,13 @@
 package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.cmd;
 
-import com.alibaba.fastjson2.JSONObject;
 import com.genersoft.iot.vmp.conf.UserSetting;
 import com.genersoft.iot.vmp.gb28181.bean.*;
+import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.NotifyMessageHandler;
 import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
+import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
 import com.genersoft.iot.vmp.service.IDeviceChannelService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
@@ -56,6 +57,9 @@
     @Autowired
     private IDeviceChannelService deviceChannelService;
 
+    @Autowired
+    private EventPublisher eventPublisher;
+
     private ConcurrentLinkedQueue<SipMsgInfo> taskQueue = new ConcurrentLinkedQueue<>();
 
     @Qualifier("taskExecutor")
@@ -95,7 +99,12 @@
                         }
                         mobilePosition.setDeviceId(sipMsgInfo.getDevice().getDeviceId());
                         mobilePosition.setChannelId(getText(rootElementAfterCharset, "DeviceID"));
-                        mobilePosition.setTime(getText(rootElementAfterCharset, "Time"));
+                        String time = getText(rootElementAfterCharset, "Time");
+                        if (ObjectUtils.isEmpty(time)){
+                            mobilePosition.setTime(DateUtil.getNow());
+                        }else {
+                            mobilePosition.setTime(SipUtils.parseTime(time));
+                        }
                         mobilePosition.setLongitude(Double.parseDouble(getText(rootElementAfterCharset, "Longitude")));
                         mobilePosition.setLatitude(Double.parseDouble(getText(rootElementAfterCharset, "Latitude")));
                         if (NumericUtil.isDouble(getText(rootElementAfterCharset, "Speed"))) {
@@ -131,22 +140,7 @@
                         mobilePosition.setLongitudeGcj02(deviceChannel.getLongitudeGcj02());
                         mobilePosition.setLatitudeGcj02(deviceChannel.getLatitudeGcj02());
 
-                        if (userSetting.getSavePositionHistory()) {
-                            storager.insertMobilePosition(mobilePosition);
-                        }
-                        storager.updateChannelPosition(deviceChannel);
-
-                        // 鍙戦�乺edis娑堟伅銆� 閫氱煡浣嶇疆淇℃伅鐨勫彉鍖�
-                        JSONObject jsonObject = new JSONObject();
-                        jsonObject.put("time", mobilePosition.getTime());
-                        jsonObject.put("serial", deviceChannel.getDeviceId());
-                        jsonObject.put("code", deviceChannel.getChannelId());
-                        jsonObject.put("longitude", mobilePosition.getLongitude());
-                        jsonObject.put("latitude", mobilePosition.getLatitude());
-                        jsonObject.put("altitude", mobilePosition.getAltitude());
-                        jsonObject.put("direction", mobilePosition.getDirection());
-                        jsonObject.put("speed", mobilePosition.getSpeed());
-                        redisCatchStorage.sendMobilePositionMsg(jsonObject);
+                        deviceChannelService.updateChannelGPS(device, deviceChannel, mobilePosition);
 
                     } catch (DocumentException e) {
                         logger.error("鏈鐞嗙殑寮傚父 ", e);

--
Gitblit v1.8.0