From f22a5485cbe6563447ace9cf7939405f7e06c6a6 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期一, 13 十一月 2023 10:25:27 +0800
Subject: [PATCH] 车辆RTU

---
 ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarRtuService.java           |    2 
 ard-work/src/main/java/com/ruoyi/sy/domain/ArdSyCarRtu.java                   |    2 
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java |   51 ++++++++++--
 ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java              |   14 +++
 ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java                     |    2 
 ard-work/src/main/java/com/ruoyi/sy/param/AddRtuParam.java                    |   10 ++
 ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java    |   21 ++--
 ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java         |   85 +++++++++++++++++++-
 ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarLockService.java          |    8 +-
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarRtuServiceImpl.java  |    7 +
 ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java             |   37 ++++++++-
 11 files changed, 202 insertions(+), 37 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java
index 86c0509..ec3e0b4 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java
@@ -10,6 +10,7 @@
 import com.ruoyi.sy.domain.ArdSyUser;
 import com.ruoyi.sy.mapper.ArdAccessFenceMapper;
 import com.ruoyi.sy.param.AddCarParam;
+import com.ruoyi.sy.param.AddRtuParam;
 import com.ruoyi.sy.service.*;
 import com.ruoyi.sy.service.impl.ArdSyCarRtuServiceImpl;
 import com.ruoyi.sy.vo.CarLockVo;
@@ -48,35 +49,35 @@
 
     @GetMapping("/car")
     @ApiOperation("鏌ヨ鎵�鏈夋湭鎸傞攣鐨勮溅杈�")
-    public Results car(){
+    public AjaxResult car(){
         List<CarVo> list = ardSyCarLockService.car();
         analysis(list);
-        return Results.succeed(list);
+        return AjaxResult.success(list);
     }
 
     @GetMapping("/carAddOne")
     @ApiOperation("鏌ヨ鎵�鏈夋湭鎸傞攣鐨勮溅杈嗗姞鏈溅杈嗕俊鎭�")
-    public Results carAddOne(String carId){
+    public AjaxResult carAddOne(String carId){
         List<CarVo> list = ardSyCarLockService.carAddOne(carId);
         analysis(list);
-        return Results.succeed(list);
+        return AjaxResult.success(list);
     }
 
     @PostMapping("/add")
     @ApiOperation("娣诲姞rtu")
-    public Results add(String carId){
-        return Results.succeed("鎴愬姛娣诲姞"+ardSyCarLockService.addRtu(carId)+"鏉℃暟鎹�");
+    public AjaxResult add(@RequestBody AddRtuParam addRtuParam){
+        return AjaxResult.success("鎴愬姛娣诲姞"+ardSyCarLockService.addRtu(addRtuParam)+"鏉℃暟鎹�");
     }
 
     @DeleteMapping("/del")
     @ApiOperation("鍒犻櫎rtu")
-    public Results del(String id){
-        return Results.succeed("鎴愬姛鍒犻櫎"+ardSyCarLockService.delCar(id)+"鏉℃暟鎹�");
+    public AjaxResult del(String id){
+        return AjaxResult.success("鎴愬姛鍒犻櫎"+ardSyCarLockService.delCar(id)+"鏉℃暟鎹�");
     }
 
     @GetMapping("/one")
     @ApiOperation("鏌ヨ涓�鏉tu鍙婇攣")
-    public Results one(String carId){
+    public AjaxResult one(String carId){
         CarLockVo carLockVo = new CarLockVo();
         CarVo carVo = ardSyCarLockService.carOne(carId);
         String usersId = SecurityUtils.getUserId();
@@ -94,7 +95,7 @@
         carLockVo.setCar(carVo);
         String rtu = carVo.getRtu();
         carLockVo.setCarLockList(ardSyCarLockService.carLock(rtu));
-        return Results.succeed(carLockVo);
+        return AjaxResult.success(carLockVo);
     }
 
     @GetMapping("/query")
diff --git a/ard-work/src/main/java/com/ruoyi/sy/domain/ArdSyCarRtu.java b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdSyCarRtu.java
index 7487879..79ade27 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/domain/ArdSyCarRtu.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdSyCarRtu.java
@@ -12,4 +12,6 @@
     private String carId;
     private String topicSubscribe; //璁㈤槄
     private String topicPublish; //鍙戝竷
+    private Integer installType; //瑁呮补鐐� 0鏂藉皝 1瑙e皝
+    private Integer unloadType; //鍗告补鐐� 0鏂藉皝 1瑙e皝
 }
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 e9f34fc..5075feb 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
@@ -1,6 +1,9 @@
 package com.ruoyi.sy.gps31;
 
+import com.ruoyi.sy.domain.ArdSyCarLock;
+
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 public class PositionContainer {
@@ -9,6 +12,17 @@
 
     private static Map<String, Map<String,Map<String,Object>>> userPositionMap = new HashMap();//渚濈敤鎴峰瓨鏀惧疄鏂借溅杈嗕綅缃�:userId锛宑arId锛岃溅杈嗕綅缃�
 
+    public static Map<String, List<ArdSyCarLock>> getTopicSubscribe() {
+        return topicSubscribe;
+    }
+
+    public static void setTopicSubscribe(Map<String, List<ArdSyCarLock>> topicSubscribe) {
+        PositionContainer.topicSubscribe = topicSubscribe;
+    }
+
+    public static Map<String, List<ArdSyCarLock>> topicSubscribe;
+
+
     public static synchronized Map<String, Map<String, Map<String,Object>>> getDeptPositionMap() {
         return deptPositionMap;
     }
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 e726cf5..15f192c 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
@@ -137,6 +137,27 @@
                             ardAccessFence1.setDrct(drct);
                             ardAccessFence1.setIsAlarm(0);
                             ardAccessFenceService.access(ardAccessFence1);
+                            //鏌ヨ瑁呮补鐐规棦瀹歊tu鐘舵��
+                            ArdSyCarRtu ardSyCarRtu = carRtuService.one(carId);
+                            Integer installType = ardSyCarRtu.getInstallType();
+                            //1瑙e皝
+                            if(installType==1){
+                                Map<String,Object> map = new HashMap<>();
+                                map.put("A01", 110000);//瀵奸�氱涓�璺户鐢靛櫒
+                                map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣�
+                                map.put("res", String.valueOf(System.currentTimeMillis()));
+                                MqttConsumer.publish(ardSyCarRtu.getTopicPublish(), String.valueOf(new JSONObject(map)));
+                            }
+                            //0鏂藉皝
+                            if(installType==0){
+//鍏抽攣
+
+                                Map<String,Object> map = new HashMap<>();
+                                map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒
+                                map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
+                                map.put("res", String.valueOf(System.currentTimeMillis()));
+                                MqttConsumer.publish(ardSyCarRtu.getTopicPublish(), String.valueOf(new JSONObject(map)));
+                            }
                             break;
                         }
                     }
@@ -195,6 +216,27 @@
                                     ardAccessFence.setIntoShipmentTime(time);
                                     ardAccessFence.setNowWallName(ardOilWall.getName());
                                     ardAccessFence.setLastTime(time);
+                                    //鏌ヨ瑁呮补鐐规棦瀹歊tu鐘舵��
+                                    ArdSyCarRtu ardSyCarRtu = carRtuService.one(carId);
+                                    Integer installType = ardSyCarRtu.getInstallType();
+                                    //1瑙e皝
+                                    if(installType==1){
+                                        Map<String,Object> map = new HashMap<>();
+                                        map.put("A01", 110000);//瀵奸�氱涓�璺户鐢靛櫒
+                                        map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣�
+                                        map.put("res", String.valueOf(System.currentTimeMillis()));
+                                        MqttConsumer.publish(ardSyCarRtu.getTopicPublish(), String.valueOf(new JSONObject(map)));
+                                    }
+                                    //0鏂藉皝
+                                    if(installType==0){
+//鍏抽攣
+
+                                        Map<String,Object> map = new HashMap<>();
+                                        map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒
+                                        map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
+                                        map.put("res", String.valueOf(System.currentTimeMillis()));
+                                        MqttConsumer.publish(ardSyCarRtu.getTopicPublish(), String.valueOf(new JSONObject(map)));
+                                    }
                                     break;
                                 }
                             }
@@ -221,10 +263,15 @@
                                     ardAccessFence.setLng(lng);
                                     ardAccessFence.setLat(lat);
                                     ardAccessFenceService.updAccess(ardAccessFence);
-//寮�鍑鸿娌圭偣鍥存爮锛屽彂閫佷笂閿佸強鏂藉皝鍛戒护
+                                    //寮�鍑鸿娌圭偣鍥存爮锛屽彂閫佷笂閿佸強鏂藉皝鍛戒护
+                                    ArdSyCarRtu ardSyCarRtu = carRtuService.one(carId);
+//鍏抽攣
 
-
-
+                                    Map<String,Object> map = new HashMap<>();
+                                    map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒
+                                    map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
+                                    map.put("res", String.valueOf(System.currentTimeMillis()));
+                                    MqttConsumer.publish(ardSyCarRtu.getTopicPublish(), String.valueOf(new JSONObject(map)));
 
                                 }
                             }else {
@@ -255,6 +302,27 @@
                                             ardAccessFenceService.updAccess(ardAccessFence);
                                             //宸茬粡杩涘叆鍗告补鐐癸紝涓嶅湪璺笂涓嶉渶瑕佸仠杞︽姤璀�
                                             isRoad = false;
+                                            //鏌ヨ瑁呮补鐐规棦瀹歊tu鐘舵��
+                                            ArdSyCarRtu ardSyCarRtu = carRtuService.one(carId);
+                                            Integer unloadType = ardSyCarRtu.getUnloadType();
+                                            //1瑙e皝
+                                            if(unloadType==1){
+                                                Map<String,Object> map = new HashMap<>();
+                                                map.put("A01", 110000);//瀵奸�氱涓�璺户鐢靛櫒
+                                                map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣�
+                                                map.put("res", String.valueOf(System.currentTimeMillis()));
+                                                MqttConsumer.publish(ardSyCarRtu.getTopicPublish(), String.valueOf(new JSONObject(map)));
+                                            }
+                                            //0鏂藉皝
+                                            if(unloadType==0){
+//鍏抽攣
+
+                                                Map<String,Object> map = new HashMap<>();
+                                                map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒
+                                                map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
+                                                map.put("res", String.valueOf(System.currentTimeMillis()));
+                                                MqttConsumer.publish(ardSyCarRtu.getTopicPublish(), String.valueOf(new JSONObject(map)));
+                                            }
                                             break;
                                         }
                                     }
@@ -296,10 +364,15 @@
                                         pts.add(new Point2D.Double(Double.parseDouble(coord[j]), Double.parseDouble(coord[j + 1])));
                                     }
                                     if (!GeoTools.IsPtInPoly(point, pts)) {
-//寮�鍑轰簡鍗告补鐐瑰洿鏍忥紝鍙戦�佷笂閿佸強鏂借В灏佹寚浠�
+                                        //寮�鍑轰簡鍗告补鐐瑰洿鏍忥紝鍙戦�佷笂閿佸強鏂借В灏佹寚浠�
+                                        ArdSyCarRtu ardSyCarRtu = carRtuService.one(carId);
+//鍏抽攣
 
-
-
+                                        Map<String,Object> map = new HashMap<>();
+                                        map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒
+                                        map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
+                                        map.put("res", String.valueOf(System.currentTimeMillis()));
+                                        MqttConsumer.publish(ardSyCarRtu.getTopicPublish(), String.valueOf(new JSONObject(map)));
                                         //鍒犻櫎璇ユ潯杞﹁締鏁版嵁
                                         ardAccessFenceService.delAccess(carId);
                                     }else {
diff --git a/ard-work/src/main/java/com/ruoyi/sy/param/AddRtuParam.java b/ard-work/src/main/java/com/ruoyi/sy/param/AddRtuParam.java
new file mode 100644
index 0000000..fc54249
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/sy/param/AddRtuParam.java
@@ -0,0 +1,10 @@
+package com.ruoyi.sy.param;
+
+import lombok.Data;
+
+@Data
+public class AddRtuParam {
+    private String carId;
+    private Integer installType; //瑁呮补鐐� 0鏂藉皝 1瑙e皝
+    private Integer unloadType; //鍗告补鐐� 0鏂藉皝 1瑙e皝
+}
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarLockService.java b/ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarLockService.java
index df4d06e..f953c42 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarLockService.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarLockService.java
@@ -1,10 +1,8 @@
 package com.ruoyi.sy.service;
 
-import com.ruoyi.sy.domain.ArdAccessFence;
-import com.ruoyi.sy.domain.ArdSyCar;
 import com.ruoyi.sy.domain.ArdSyCarLock;
 import com.ruoyi.sy.domain.ArdSyCarRtu;
-import com.ruoyi.sy.vo.CarLockVo;
+import com.ruoyi.sy.param.AddRtuParam;
 import com.ruoyi.sy.vo.CarVo;
 import com.ruoyi.sy.vo.RtuVo;
 
@@ -18,7 +16,7 @@
     List<CarVo> car();
     List<CarVo> carAddOne(String carId);
 
-    int addRtu(String carId);
+    int addRtu(AddRtuParam addRtuParam);
 
     /**
      * 鎵�鏈夋寕閿佺殑杞﹁締
@@ -39,6 +37,8 @@
 
     List<CarVo> addCarBefore(String id);
 
+    List<ArdSyCarLock> data(String msg);
 
+    int updLock(ArdSyCarLock ardSyCarLock);
 
 }
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarRtuService.java b/ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarRtuService.java
index 6b7f196..15783b1 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarRtuService.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarRtuService.java
@@ -15,4 +15,6 @@
     ArdSyCarRtu one(String carId);
 
     String openLock(ArdSyCarRtu ardSyCarRtu);
+
+    ArdSyCarRtu subscribeByCarId(String subscribe);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
index f16e24a..d2ee258 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
@@ -1,17 +1,16 @@
 package com.ruoyi.sy.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.domain.entity.SysDept;
-import com.ruoyi.sy.domain.ArdAccessFence;
 import com.ruoyi.sy.domain.ArdSyCar;
 import com.ruoyi.sy.domain.ArdSyCarLock;
 import com.ruoyi.sy.domain.ArdSyCarRtu;
-import com.ruoyi.sy.mapper.ArdAccessFenceMapper;
 import com.ruoyi.sy.mapper.ArdSyCarLockMapper;
 import com.ruoyi.sy.mapper.ArdSyCarMapper;
 import com.ruoyi.sy.mapper.ArdSyCarRtuMapper;
+import com.ruoyi.sy.param.AddRtuParam;
 import com.ruoyi.sy.service.ArdSyCarLockService;
-import com.ruoyi.sy.vo.CarLockVo;
 import com.ruoyi.sy.vo.CarVo;
 import com.ruoyi.sy.vo.RtuVo;
 import com.ruoyi.system.mapper.SysDeptMapper;
@@ -55,15 +54,17 @@
     }
 
     @Override
-    public int addRtu(String carId) {
+    public int addRtu(AddRtuParam addRtuParam) {
         ArdSyCarRtu ardSyCarRtu = new ArdSyCarRtu();
         ardSyCarRtu.setId(String.valueOf(UUID.randomUUID()));
-        ardSyCarRtu.setCarId(carId);
-        ardSyCarRtu.setTopicPublish("/p"+carId+"/");
-        ardSyCarRtu.setTopicSubscribe("/p"+carId+"/set/");
+        ardSyCarRtu.setCarId(addRtuParam.getCarId());
+        ardSyCarRtu.setTopicPublish("/p"+addRtuParam.getCarId()+"/");
+        ardSyCarRtu.setTopicSubscribe("/p"+addRtuParam.getCarId()+"/set/");
+        ardSyCarRtu.setInstallType(addRtuParam.getInstallType());
+        ardSyCarRtu.setUnloadType(addRtuParam.getUnloadType());
         rtuMapper.insert(ardSyCarRtu);
         QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("car_id",carId);
+        queryWrapper.eq("car_id",addRtuParam.getCarId());
         ArdSyCar ardSyCar = ardSyCarMapper.selectOne(queryWrapper);
         ardSyCar.setReserved1(ardSyCarRtu.getId());
         return ardSyCarMapper.updateById(ardSyCar);
@@ -108,9 +109,15 @@
 
     @Override
     public List<ArdSyCarLock> carLock(String rtu) {
-        QueryWrapper<ArdSyCarLock> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("rtu_id",rtu);
-        return lockMapper.selectList(queryWrapper);
+        List<ArdSyCarLock> locks = new ArrayList<>();
+        try {
+            QueryWrapper<ArdSyCarLock> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("rtu_id",rtu);
+            locks = lockMapper.selectList(queryWrapper);
+        }catch (Exception e){
+
+        }
+        return locks;
     }
 
     @Override
@@ -179,7 +186,29 @@
         return carAnalysis(carList);
     }
 
+    @Override
+    public List<ArdSyCarLock> data(String msg) {
+        JSONObject jsonObject = JSONObject.parseObject(msg);
+        List<ArdSyCarLock> lockList = new ArrayList<>();
+        ArdSyCarLock ardSyCarLock1 = new ArdSyCarLock();
+        ardSyCarLock1.setRelay("A01");
+        ardSyCarLock1.setRelayInfo(String.valueOf(jsonObject.getInteger("A01")));
+        ardSyCarLock1.setCurrent("C01");
+        ardSyCarLock1.setCurrentInfo(String.valueOf(jsonObject.getFloat("C01")));
+        lockList.add(ardSyCarLock1);
+        ArdSyCarLock ardSyCarLock2 = new ArdSyCarLock();
+        ardSyCarLock2.setRelay("A02");
+        ardSyCarLock2.setRelayInfo(String.valueOf(jsonObject.getInteger("A02")));
+        ardSyCarLock2.setCurrent("C02");
+        ardSyCarLock2.setCurrentInfo(String.valueOf(jsonObject.getFloat("C02")));
+        lockList.add(ardSyCarLock2);
+        return lockList;
+    }
 
+    @Override
+    public int updLock(ArdSyCarLock ardSyCarLock) {
+        return lockMapper.updateById(ardSyCarLock);
+    }
 
 
     //杞﹁締鍒楄〃灏佽
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarRtuServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarRtuServiceImpl.java
index 025ca99..fce9045 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarRtuServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarRtuServiceImpl.java
@@ -53,4 +53,11 @@
         return "宸插彂閫佸紑閿佹寚浠�";
     }
 
+    @Override
+    public ArdSyCarRtu subscribeByCarId(String subscribe) {
+        QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("topic_subscribe",subscribe);
+        return ardSyCarRtuMapper.selectOne(queryWrapper);
+    }
+
 }
diff --git a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java
index 3c25919..3b88ad2 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java
@@ -29,7 +29,7 @@
     @Autowired
     private ISysConfigService sysConfigService;
 
-//    @PostConstruct
+    @PostConstruct
     public void init() {
         //鑾峰彇鐢电閿佸湴鍧�
         String mqttUrl = sysConfigService.selectConfigByKey("ElectromagneticLockUrl");
diff --git a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java
index 5010300..d89ef67 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java
@@ -1,15 +1,19 @@
 package com.ruoyi.utils.mqtt;
 
-import com.ruoyi.alarm.global.service.impl.GlobalAlarmServiceImpl;
-import com.ruoyi.alarm.radar.service.ArdRadarService;
+import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.utils.spring.SpringUtils;
-import com.ruoyi.statistical.service.StatisticalService;
-import com.ruoyi.storage.minio.service.IStorageMinioEventService;
+import com.ruoyi.sy.domain.ArdSyCarLock;
+import com.ruoyi.sy.domain.ArdSyCarRtu;
+import com.ruoyi.sy.gps31.PositionContainer;
+import com.ruoyi.sy.service.ArdSyCarLockService;
+import com.ruoyi.sy.service.ArdSyCarRtuService;
 import lombok.extern.slf4j.Slf4j;
 import org.eclipse.paho.client.mqttv3.*;
 
 import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: mqtt鍥炶皟澶勭悊绫�
@@ -25,6 +29,9 @@
     private MqttConnectOptions options;
     private String topic;
     private int qos;
+    //娉ㄥ叆鐢靛瓙閿丅ean
+    ArdSyCarRtuService carRtuService = SpringUtils.getBean(ArdSyCarRtuService.class);
+    ArdSyCarLockService carLockService = SpringUtils.getBean(ArdSyCarLockService.class);
 
     public MqttOnceCallback(MqttClient client, MqttConnectOptions options, String topic, int qos) {
         this.client = client;
@@ -70,6 +77,26 @@
     public void messageArrived(String topic, MqttMessage message) {
         try {
 //            System.out.println("銆愯溅杈嗛攣涓婚銆戯細"+topic+"銆愯溅杈嗛攣淇℃伅銆戯細"+new String(message.getPayload(), StandardCharsets.UTF_8));
+            //鍑烘潵鍥炶皟鏁版嵁
+            List<ArdSyCarLock> ardSyCarLocks = carLockService.data(new String(message.getPayload(), StandardCharsets.UTF_8));
+            //瀛樺叆闆嗗悎
+            Map<String,List<ArdSyCarLock>> map = PositionContainer.getTopicSubscribe();
+            if(map==null){
+                Map<String,List<ArdSyCarLock>> newMap = new HashMap<>();
+                newMap.put("topic",ardSyCarLocks);
+                PositionContainer.setTopicSubscribe(newMap);
+            }else {
+                for(Map.Entry entry : map.entrySet()){
+                    String mapTopic = (String) entry.getKey();
+                    if(topic.equals(mapTopic)){
+                        map.remove(entry.getKey());
+                    }
+                    Map<String,List<ArdSyCarLock>> newMap = new HashMap<>();
+                    newMap.put("topic",ardSyCarLocks);
+                    PositionContainer.setTopicSubscribe(newMap);
+                }
+            }
+            log.debug(String.valueOf(map));
         } catch (Exception e) {
             log.debug("杞﹁締鐢电閿佸鐞唌qtt娑堟伅寮傚父:" + e);
         }

--
Gitblit v1.9.3