From b08492fcb6706124bef6e86cd6914c8eba54599a Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: Fri, 02 Feb 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,carId,车辆位置
 
+    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