From f22a5485cbe6563447ace9cf7939405f7e06c6a6 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: Mon, 13 Nov 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("查询一条rtu及锁")
-    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解封
+    private Integer unloadType; //卸油点 0施封 1解封
 }
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,carId,车辆位置
 
+    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);
+                            //查询装油点既定Rtu状态
+                            ArdSyCarRtu ardSyCarRtu = carRtuService.one(carId);
+                            Integer installType = ardSyCarRtu.getInstallType();
+                            //1解封
+                            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);
+                                    //查询装油点既定Rtu状态
+                                    ArdSyCarRtu ardSyCarRtu = carRtuService.one(carId);
+                                    Integer installType = ardSyCarRtu.getInstallType();
+                                    //1解封
+                                    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;
+                                            //查询装油点既定Rtu状态
+                                            ArdSyCarRtu ardSyCarRtu = carRtuService.one(carId);
+                                            Integer unloadType = ardSyCarRtu.getUnloadType();
+                                            //1解封
+                                            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解封
+    private Integer unloadType; //卸油点 0施封 1解封
+}
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;
+    //注入电子锁Bean
+    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("车辆电磁锁处理mqtt消息异常:" + e);
         }

--
Gitblit v1.9.3