From b08492fcb6706124bef6e86cd6914c8eba54599a Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期五, 02 二月 2024 16:14:18 +0800
Subject: [PATCH] 三一车辆追踪加入启动即推送提交

---
 ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java          |   10 ++++++++++
 ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java     |    6 ++++--
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java |   18 ++++++++++++++++++
 3 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java b/ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java
index 5075feb..6a58728 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java
@@ -12,6 +12,8 @@
 
     private static Map<String, Map<String,Map<String,Object>>> userPositionMap = new HashMap();//渚濈敤鎴峰瓨鏀惧疄鏂借溅杈嗕綅缃�:userId锛宑arId锛岃溅杈嗕綅缃�
 
+    private static Map<String,Map<String,Object>> carPositionMap = new HashMap();//渚濊溅杈嗗瓨鏀惧疄鏂借溅杈嗕綅缃�:carId锛岃溅杈嗕綅缃�
+
     public static Map<String, List<ArdSyCarLock>> getTopicSubscribe() {
         return topicSubscribe;
     }
@@ -38,4 +40,12 @@
     public static synchronized void setUserPositionMap(Map<String, Map<String, Map<String, Object>>> userPositionMap) {
         PositionContainer.userPositionMap = userPositionMap;
     }
+
+    public static Map<String, Map<String, Object>> getCarPositionMap() {
+        return carPositionMap;
+    }
+
+    public static void setCarPositionMap(Map<String, Map<String, Object>> carPositionMap) {
+        PositionContainer.carPositionMap = carPositionMap;
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
index da4c163..c8d2867 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
@@ -372,7 +372,7 @@
                 }
                 //娓呮筏缁撴潫------------
 
-                /*gpsMap.putAll(result);
+                gpsMap.putAll(result);
                 String ancestors = (String) gpsMap.get("ancestors");//鑾峰彇鐖剁骇閮ㄩ棬
                 String[] ancestorsArray = ancestors.split(",");
                 if(ancestorsArray.length == 1){//鏈�楂樼骇閮ㄩ棬
@@ -408,7 +408,9 @@
                             deptMapp.put((String)gpsMap.get("carId"),gpsMap);
                         }
                     }
-                }*/
+                }
+                //瀛樺叆瀹炴椂浣嶇疆瀹瑰櫒
+                PositionContainer.getCarPositionMap().put(carId,gpsMap);
                 //瀛樺叆鐢ㄦ埛瀹瑰櫒
                 if(PositionContainer.getUserPositionMap().size() != 0){
                     for(String userId : PositionContainer.getUserPositionMap().keySet()){
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
index fced250..b2642f3 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
@@ -960,6 +960,15 @@
                     Map<String, Map<String, Object>> map = new HashMap();
                     map.put(carId, new HashMap());
                     PositionContainer.getUserPositionMap().put(usersId, map);
+                    Map<String, Object> position = PositionContainer.getCarPositionMap().get(carId);//鏌ヨ褰撳墠杞﹁締浣嶇疆
+                    if (position != null) {
+                        if (position.size() != 0) {
+                            Map<String, Map<String, Object>> data = new HashMap();
+                            data.put("31000", position);
+                            WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(sessionId), JSON.toJSONString(data));
+                        }
+                    }
+
                     Date date = new Date();
                     Timer carPositionTimer = new Timer(sessionId);//瀹氭椂鎺ㄩ�佸疄鏃朵綅缃�
                     TimerTask carPositionTask = new TimerTask() {
@@ -991,6 +1000,15 @@
                     Map<String, Map<String, Object>> map = new HashMap();
                     map.put(carId, new HashMap());
                     PositionContainer.getUserPositionMap().put(usersId, map);
+                    Map<String, Object> position = PositionContainer.getCarPositionMap().get(carId);//鏌ヨ褰撳墠杞﹁締浣嶇疆
+                    if (position != null) {
+                        if (position.size() != 0) {
+                            Map<String, Map<String, Object>> data = new HashMap();
+                            data.put("31000", position);
+                            WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(sessionId), JSON.toJSONString(data));
+                        }
+                    }
+
                     Date date = new Date();
                     Timer carPositionTimer = new Timer(sessionId);//瀹氭椂鎺ㄩ�佸疄鏃朵綅缃�
                     TimerTask carPositionTask = new TimerTask() {

--
Gitblit v1.9.3