From c2e9f82dfe87e9bd967d8445bd4b5b632f3f0d1a Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期五, 24 十一月 2023 11:19:43 +0800
Subject: [PATCH] 清淤锁重新封装

---
 ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/PushCallback.java          |    2 
 ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/MessageCallback.java       |  104 ++++++++++++++
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java |   87 ++---------
 ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java                   |   14 +
 ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/QosEnum.java               |   15 ++
 ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/EmqClient.java             |  115 ++++++++++++++++
 ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/MqttCustomerClient.java    |    3 
 ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java         |   22 +-
 8 files changed, 278 insertions(+), 84 deletions(-)

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 8517bb0..e34debc 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
@@ -17,7 +17,9 @@
 import com.ruoyi.sy.service.*;
 import com.ruoyi.sy.service.impl.*;
 import com.ruoyi.utils.gps.GeoTools;
-import com.ruoyi.utils.qymqtt.MqttCustomerClient;
+import com.ruoyi.utils.qymqtt.newM.EmqClient;
+import com.ruoyi.utils.qymqtt.newM.QosEnum;
+import com.ruoyi.utils.qymqtt.oldM.MqttCustomerClient;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.eclipse.paho.client.mqttv3.MqttException;
@@ -453,9 +455,9 @@
                     map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣�
                     map.put("res", String.valueOf(System.currentTimeMillis()));
                     String mapString = com.alibaba.fastjson.JSON.toJSONString(map);
-                    MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                    mqttCustomerClient.connect(carId+"change");
-                    mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
+                    EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
+                    emqClient.connect();
+                    emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
                     log.info("杞﹁締"+carId+"瑙e皝鍛戒护鍙戦�佹垚鍔燂紒");
 //                mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"瑙e皝");
                 }
@@ -484,9 +486,9 @@
                             map.put(key, 0.01);
                             map.put("res", String.valueOf(System.currentTimeMillis()));
                             String mapString = com.alibaba.fastjson.JSON.toJSONString(map);
-                            MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                            mqttCustomerClient.connect(carId+"change");
-                            mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
+                            EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
+                            emqClient.connect();
+                            emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
 //                        mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"寮�閿侊細"+currents);
                             while(true){
                                 ArdSyCarLock ardSyCarLock1 = lockService.getCurrentInfo(ardSyCarRtu.getId(),currents);
@@ -504,9 +506,9 @@
                         map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
                         map.put("res", String.valueOf(System.currentTimeMillis()));
                         String mapString = com.alibaba.fastjson.JSON.toJSONString(map);
-                        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                        mqttCustomerClient.connect(carId+"change");
-                        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
+                        EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
+                        emqClient.connect();
+                        emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
                         log.info("杞﹁締"+carId+"鏂藉皝鍛戒护鍙戦�佹垚鍔燂紒");
 //                    mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"鏂藉皝");
                     }
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 26b9f4d..e9dab35 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
@@ -19,7 +19,9 @@
 import com.ruoyi.sy.vo.RtuVo;
 import com.ruoyi.system.mapper.SysConfigMapper;
 import com.ruoyi.system.mapper.SysDeptMapper;
-import com.ruoyi.utils.qymqtt.MqttCustomerClient;
+import com.ruoyi.utils.qymqtt.newM.EmqClient;
+import com.ruoyi.utils.qymqtt.newM.QosEnum;
+import com.ruoyi.utils.qymqtt.oldM.MqttCustomerClient;
 import lombok.extern.slf4j.Slf4j;
 import org.eclipse.paho.client.mqttv3.MqttException;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -251,15 +253,11 @@
             map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣�
             map.put("res", String.valueOf(System.currentTimeMillis()));
             String mapString = JSON.toJSONString(map);
-            try {
-                MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change");
-                mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
-                return AjaxResult.success("瑙e皝鍛戒护鍙戦�佹垚鍔燂紒");
+            EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+            emqClient.connect();
+            emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+            return AjaxResult.success("瑙e皝鍛戒护鍙戦�佹垚鍔燂紒");
 //                return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"瑙e皝"));
-            } catch (MqttException e) {
-                log.debug("瑙e皝鎸囦护鍙戠敓澶辫触"+e);
-            }
         }
         //0鏂藉皝
         if(rtuTypeParam.getType()==0){
@@ -285,14 +283,10 @@
                     map.put(key, 0.01);
                     map.put("res", String.valueOf(System.currentTimeMillis()));
                     String mapString = JSON.toJSONString(map);
-                    try {
-                        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                        mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change");
-                        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
+                    EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+                    emqClient.connect();
+                    emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
 //                        mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"寮�閿侊細"+currents);
-                    } catch (MqttException e) {
-                        log.debug("寮�閿佹寚浠ゅ彂鐢熷け璐�"+e);
-                    }
                     while(true){
                         ArdSyCarLock ardSyCarLock1 = getCurrentInfo(ardSyCarRtu.getId(),currents);
                         Double currentInfo1 = ardSyCarLock1.getCurrentInfo();
@@ -309,15 +303,11 @@
                 map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
                 map.put("res", String.valueOf(System.currentTimeMillis()));
                 String mapString = JSON.toJSONString(map);
-                try {
-                    MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                    mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change");
-                    mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
-                    return AjaxResult.success("鏂藉皝鍛戒护鍙戠敓鎴愬姛锛�");
+                EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+                emqClient.connect();
+                emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+                return AjaxResult.success("鏂藉皝鍛戒护鍙戠敓鎴愬姛锛�");
 //                    return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"鏂藉皝"));
-                } catch (MqttException e) {
-                    log.debug("鏂藉皝鎸囦护鍙戠敓澶辫触"+e);
-                }
             }
         }
         return AjaxResult.success();
@@ -353,50 +343,13 @@
         map.put("res", String.valueOf(System.currentTimeMillis()));
         String mapString = JSON.toJSONString(map);
         System.out.println(mapString);
-        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-        mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"+UUID.randomUUID());
-        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
+        EmqClient emqClient = new EmqClient(lockTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+        emqClient.connect();
+        emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+//        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
+//        mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"+UUID.randomUUID());
+//        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
         return AjaxResult.success("寮�鍏抽攣鍛戒护鍙戦�佹垚鍔�,鍙戦�佽繘搴︿负"+lockTypeParam.getNum());
-//        QueryWrapper<SysConfig> queryWrapper1 = new QueryWrapper<>();
-//        queryWrapper1.eq("config_key","ElectromagneticLockUrl");
-//        SysConfig sysConfig = configMapper.selectOne(queryWrapper1);
-//        String url = "";
-//        if(sysConfig!=null){
-//            url = sysConfig.getConfigValue();
-//        }else {
-//            return AjaxResult.error("閰嶇疆琛ㄦ棤鍦板潃鏁版嵁");
-//        }
-//        MqttConsumer mqttConsumer = new MqttConsumer();
-//        mqttConsumer.getClientCar(url,lockTypeParam.getCarId());
-//        mqttConsumer.publishCar(1,false,ardSyCarRtu.getTopicPublish(),mapString);
-//        mqttConsumer.disConnect();
-//        return AjaxResult.success();
-        //MqttOnce瀹㈡埛绔�-----寮�濮�
-//        MqttOnce mqttOnce = new MqttOnce();
-//        return AjaxResult.success(mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(), mapString,"寮�鍏抽攣鎸囦护"+lockTypeParam.getNum()));
-        //MqttOnce瀹㈡埛绔�-----缁撴潫
-        //EmqClient瀹㈡埛绔�-----寮�濮�
-//        EmqClient emqClient = new EmqClient("tcp://112.98.126.2:1883",String.valueOf(UUID.randomUUID()));
-//        emqClient.connect("admin","xzx12345");
-//        log.info("涓婚锛�"+ardSyCarRtu.getTopicPublish());
-//        emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
-//        System.out.println("////////////////////");
-//        System.out.println(mapString);
-//        emqClient.disConnect();
-//        return AjaxResult.success(ardSyCarRtu.getTopicPublish()+"寮�鍏抽攣鎸囦护"+lockTypeParam.getNum()+"鍙戝竷鎴愬姛锛�");
-        //EmqClient瀹㈡埛绔�-----缁撴潫
-        //demo------寮�濮�
-//        EmqClient emqClient = new EmqClient("tcp://112.98.126.2:1883","mqttTestp");
-//        emqClient.connect("admin","xzx12345");
-//        Map<String,Object> map = new HashMap();
-//        map.put("D03", 99.99);//鑼冨洿鏄�0.01鍒�99.99
-//        map.put("res", String.valueOf(new Date().getTime()));
-//        System.out.println(map);
-//        String msg = JSON.toJSONString(map);
-//        emqClient.publish("/p14/set/",msg,QosEnum.QoS2,false);
-//        emqClient.disConnect();
-//        return AjaxResult.success();
-        //demo----缁撴潫
     }
 
     @Override
diff --git a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java
index 72cde30..d6bff1d 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java
@@ -2,6 +2,8 @@
 
 import com.ruoyi.sy.domain.ArdSyCarRtu;
 import com.ruoyi.sy.service.ArdSyCarRtuService;
+import com.ruoyi.utils.qymqtt.newM.EmqClient;
+import com.ruoyi.utils.qymqtt.newM.QosEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -17,7 +19,7 @@
     @Autowired
     private ArdSyCarRtuService ardSyCarRtuService;
 
-//    @PostConstruct
+    @PostConstruct
     public void init() {
 //        ArdSyCarRtuService carRtuService = SpringUtils.getBean(ArdSyCarRtuService.class);
 //        //鑾峰彇鐢电閿佸湴鍧�
@@ -28,9 +30,13 @@
             String carId = rtu.getCarId();
             String subscribe = rtu.getTopicSubscribe();
             try {
-                MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                mqttCustomerClient.connect(carId+"mqtt"+ UUID.randomUUID());
-                mqttCustomerClient.subscribe(subscribe);
+//                MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
+//                mqttCustomerClient.connect(carId+"mqtt"+ UUID.randomUUID());
+//                mqttCustomerClient.subscribe(subscribe);
+                EmqClient emqClient = new EmqClient(carId+"mqttSubscribe");
+                emqClient.connect();
+                emqClient.subscribe(subscribe, QosEnum.QoS2);
+                log.info("璁㈤槄涓婚锛�"+subscribe);
             }catch (Exception e) {
                 e.printStackTrace();
             }
diff --git a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/EmqClient.java b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/EmqClient.java
new file mode 100644
index 0000000..16452c5
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/EmqClient.java
@@ -0,0 +1,115 @@
+package com.ruoyi.utils.qymqtt.newM;
+
+import javax.annotation.PreDestroy;
+
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.sy.service.ArdSyCarRtuService;
+import org.eclipse.paho.client.mqttv3.IMqttClient;
+import org.eclipse.paho.client.mqttv3.MqttClient;
+import org.eclipse.paho.client.mqttv3.MqttClientPersistence;
+import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.eclipse.paho.client.mqttv3.MqttException;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+
+public class EmqClient {
+
+    private IMqttClient mqttClient;
+
+    private MessageCallback messageCallback;
+
+    public EmqClient(String clientId){
+        ArdSyCarRtuService carRtuService = SpringUtils.getBean(ArdSyCarRtuService.class);
+        //鑾峰彇鐢电閿佸湴鍧�
+        String mqttUrl = carRtuService.url("ElectromagneticLockUrl");
+        MqttClientPersistence mempersitence = new MemoryPersistence();//鎸佷箙鍖栨柟寮�
+        try {
+            this.mqttClient = new MqttClient(mqttUrl,clientId,mempersitence);//璁剧疆杩炴帴broker鐨刪ost鍙奵lientId
+            this.messageCallback = new MessageCallback();
+        } catch (MqttException e) {
+            System.out.println("鍒濆鍖栧鎴风mqttClient瀵硅薄澶辫触");
+            System.out.println("brokerUrl:"+mqttUrl);
+            System.out.println("clientId:"+clientId);
+            e.getMessage();
+        }
+    }
+
+
+    //杩炴帴broker
+    public void connect(){
+        MqttConnectOptions options = new MqttConnectOptions();
+        options.setAutomaticReconnect(true);
+        options.setUserName("admin");
+        options.setPassword("xzx12345".toCharArray());
+        options.setCleanSession(true);//璁剧疆涓轰复鏃朵細璇�
+
+        mqttClient.setCallback(messageCallback);//璁剧疆鍥炶皟
+
+        try {
+            mqttClient.connect(options);
+        } catch (MqttException e) {
+            System.out.println("mqtt瀹㈡埛绔繛鎺ユ湇鍔$澶辫触");
+            e.getMessage();
+        }
+    }
+
+    //鏂紑杩炴帴
+    @PreDestroy//璇ユ敞瑙e璞¢攢姣佸悗瑙﹀彂
+    public void disConnect(){
+        try {
+            mqttClient.disconnect();
+        } catch (MqttException e) {
+            System.out.println("鏂紑杩炴帴浜х敓寮傚父");
+            e.getMessage();
+        }
+    }
+
+    //閲嶈繛
+    public void reConnect(){
+        try {
+            mqttClient.reconnect();
+        } catch (MqttException e) {
+            System.out.println("閲嶈繛澶辫触,澶辫触鍘熷洜");
+            e.getMessage();
+        }
+    }
+
+    //鍙戝竷娑堟伅  浼犲弬涓轰富棰橈紝娑堟伅锛岀瓑绾э紝鏄惁淇濈暀娑堟伅
+    public void publish(String topic, String msg, QosEnum qos, boolean retain){
+        MqttMessage mqttMessage = new MqttMessage();
+        mqttMessage.setPayload(msg.getBytes());
+        mqttMessage.setQos(qos.value());
+        mqttMessage.setRetained(retain);
+        try {
+            mqttClient.publish(topic,mqttMessage);
+            mqttClient.disconnect();
+        } catch (MqttException e) {
+            System.out.println("鍙戝竷娑堟伅澶辫触");
+            System.out.println("涓婚:"+topic);
+            System.out.println("娑堟伅:"+msg);
+            System.out.println("qos绛夌骇:"+qos.value());
+            e.getMessage();
+        }
+    }
+
+    //璁㈤槄
+    public void subscribe(String topicFilter,QosEnum qos){
+        try {
+            mqttClient.subscribe(topicFilter,qos.value());
+        } catch (MqttException e) {
+            System.out.println("璁㈤槄涓婚"+topicFilter+"澶辫触");
+            System.out.println("qos绛夌骇:"+qos.value());
+            e.getMessage();
+        }
+    }
+
+    //鍙栨秷璁㈤槄
+    public void unSubscribe(String topicFilter){
+        try {
+            mqttClient.unsubscribe(topicFilter);
+        } catch (MqttException e) {
+            System.out.println("鍙栨秷璁㈤槄涓婚"+topicFilter+"澶辫触");
+            e.getMessage();
+        }
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/MessageCallback.java b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/MessageCallback.java
new file mode 100644
index 0000000..d143d79
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/MessageCallback.java
@@ -0,0 +1,104 @@
+package com.ruoyi.utils.qymqtt.newM;
+
+import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.sy.domain.ArdSyCarLock;
+import com.ruoyi.sy.domain.ArdSyCarRtu;
+import com.ruoyi.sy.service.ArdSyCarLockService;
+import com.ruoyi.sy.service.ArdSyCarRtuService;
+import lombok.extern.slf4j.Slf4j;
+import org.eclipse.paho.client.mqttv3.IMqttClient;
+import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
+import org.eclipse.paho.client.mqttv3.MqttCallback;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+import com.alibaba.fastjson.JSON;
+
+@Slf4j
+public class MessageCallback implements MqttCallback  {
+
+	private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+	//娉ㄥ叆鐢靛瓙閿丅ean
+	ArdSyCarRtuService carRtuService = SpringUtils.getBean(ArdSyCarRtuService.class);
+	ArdSyCarLockService carLockService = SpringUtils.getBean(ArdSyCarLockService.class);
+
+
+	@Override//涓㈠け浜嗗鏈嶅姟绔殑杩炴帴鍚庤Е鍙戠殑鍥炶皟
+	public void connectionLost(Throwable arg0) {
+		// 璧勬簮鐨勬竻鐞�  閲嶈繛
+		System.out.println(arg0.getMessage());
+		arg0.printStackTrace();
+		System.out.println("涓㈠け浜嗗鏈嶅姟绔殑杩炴帴");
+	}
+
+	@Override //娑堟伅鍙戝竷鑰呮秷鎭彂甯冨畬鎴愪骇鐢熺殑鍥炶皟
+	public void deliveryComplete(IMqttDeliveryToken token) {
+		System.out.println("deliveryComplete---------" + token.isComplete());
+		int messageId = token.getMessageId();
+		String[] topics = token.getTopics();
+		String clientId = token.getClient().getClientId();
+//        byte[] msg = token.getMessage().getPayload();
+		String topicStr = "";
+		for(String topic : topics){
+			topicStr = topicStr + topic + ",";
+		}
+		topicStr = topicStr.substring(0, topicStr.length() - 1);
+		System.out.println("娑堟伅鍙戝竷瀹屾垚,messageId="+messageId+",topics="+topicStr+",clientId="+clientId);
+	}
+
+	@Override//娑堟伅璁㈤槄鑰呮敹鍒版秷鎭悗瑙﹀彂鐨勫洖璋�
+	public void messageArrived(String topic, MqttMessage message) throws Exception {
+		try {
+            System.out.println("銆愯溅杈嗛攣涓婚銆戯細"+topic+"銆愯溅杈嗛攣淇℃伅銆戯細"+new String(message.getPayload(), StandardCharsets.UTF_8));
+			//鍑烘潵鍥炶皟鏁版嵁
+			List<ArdSyCarLock> ardSyCarLocks = carLockService.data(new String(message.getPayload(), StandardCharsets.UTF_8));
+			//鏍规嵁topic鏌ヨRTUID
+			ArdSyCarRtu ardSyCarRtu = carRtuService.subscribeByCarId(topic);
+			String RTU = ardSyCarRtu.getId();
+			//鏍规嵁RTUID鏌ヨ閿�
+			List<ArdSyCarLock> ardSyCarLockList = carLockService.carLock(RTU);
+			for (int i = 0; i < ardSyCarLocks.size(); i++) {
+				ArdSyCarLock ardSyCarLockData = ardSyCarLocks.get(i);
+				String relay = ardSyCarLockData.getRelay();
+				Integer relayInfo = ardSyCarLockData.getRelayInfo();
+				String current = ardSyCarLockData.getCurrents();
+				Double currentInfo = ardSyCarLockData.getCurrentInfo();
+				for (int j = 0; j < ardSyCarLockList.size(); j++) {
+					ArdSyCarLock lock = ardSyCarLockList.get(j);
+					String relay1 = lock.getRelay();
+					String current1 = lock.getCurrents();
+					Integer relayInfo1 = lock.getRelayInfo();
+					Double currentInfo1 = lock.getCurrentInfo();
+					Boolean upd = false;
+					if(relay.equals(relay1)){
+						if(!relayInfo.equals(relayInfo1)){
+							lock.setRelayInfo(relayInfo);
+							upd = true;
+						}
+					}
+					if(current.equals(current1)){
+						if(!currentInfo.equals(currentInfo1)){
+							lock.setCurrentInfo(currentInfo);
+							upd = true;
+						}
+					}
+					if(upd){
+						int num = carLockService.updLock(lock);
+//                        log.debug("淇敼"+num+"鏁版嵁");
+					}
+				}
+			}
+		} catch (Exception e) {
+			log.debug("杞﹁締鐢电閿佸鐞唌qtt娑堟伅寮傚父:" + e);
+		}
+
+	}
+
+}
diff --git a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/QosEnum.java b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/QosEnum.java
new file mode 100644
index 0000000..920e249
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/QosEnum.java
@@ -0,0 +1,15 @@
+package com.ruoyi.utils.qymqtt.newM;
+
+public enum QosEnum {
+	QoS0(0),QoS1(1),QoS2(2);
+
+    private final int value;
+
+    QosEnum(int value) {
+        this.value = value;
+    }
+
+    public int value(){
+        return this.value;
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/MqttCustomerClient.java b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/MqttCustomerClient.java
similarity index 97%
rename from ard-work/src/main/java/com/ruoyi/utils/qymqtt/MqttCustomerClient.java
rename to ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/MqttCustomerClient.java
index 4028ca6..9c38b19 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/MqttCustomerClient.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/MqttCustomerClient.java
@@ -1,11 +1,10 @@
-package com.ruoyi.utils.qymqtt;
+package com.ruoyi.utils.qymqtt.oldM;
 
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.sy.service.ArdSyCarRtuService;
 import lombok.extern.slf4j.Slf4j;
 import org.eclipse.paho.client.mqttv3.*;
 import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PreDestroy;
diff --git a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/PushCallback.java b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/PushCallback.java
similarity index 98%
rename from ard-work/src/main/java/com/ruoyi/utils/qymqtt/PushCallback.java
rename to ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/PushCallback.java
index 910d32f..a955c6a 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/PushCallback.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/PushCallback.java
@@ -1,4 +1,4 @@
-package com.ruoyi.utils.qymqtt;
+package com.ruoyi.utils.qymqtt.oldM;
 
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.sy.domain.ArdSyCarLock;

--
Gitblit v1.9.3