From 19c431878bc5d3b06fbda3f3fa8ae5023790c837 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: Wed, 15 Nov 2023 11:18:27 +0800
Subject: [PATCH] mqtt

---
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java |   11 +++++++----
 ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java                     |   11 ++++++++---
 ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java             |    2 +-
 3 files changed, 16 insertions(+), 8 deletions(-)

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 7f25a5c..7390c64 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,5 +1,6 @@
 package com.ruoyi.sy.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -312,10 +313,10 @@
             AjaxResult.error(0,"该锁处于解封状态,远程无法操控,请先执行施封操作!");
         }
         String key = "";
-        Double currentInfo = ardSyCarLock.getCurrentInfo();
-        if(currentInfo.equals("C01")){
+        String currents = ardSyCarLock.getCurrents();
+        if(currents.equals("C01")){
             key = "D03";
-        }else if(currentInfo.equals("C02")){
+        }else if(currents.equals("C02")){
             key = "D04";
         }
         Number lockState = (Number) lockTypeParam.getNum();
@@ -329,9 +330,11 @@
         Map<String,Object> map = new HashMap();
         map.put(key, lockState);//范围是0.01到99.99
         map.put("res", String.valueOf(System.currentTimeMillis()));
+        String mapString = JSON.toJSONString(map);
+        System.out.println(mapString);
         MqttOnce mqttOnce = new MqttOnce();
         try {
-            return AjaxResult.success(mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"开关锁指令"+lockState));
+            return AjaxResult.success(mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(), mapString,"开关锁指令"+lockTypeParam.getNum()));
         } catch (MqttException e) {
             log.debug("开关锁指令发送失败"+e);
         }
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 db5af35..9f1f0fd 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
@@ -64,7 +64,7 @@
         ArdSyCarRtuService carRtuService = SpringUtils.getBean(ArdSyCarRtuService.class);
         //获取电磁锁地址
         String mqttUrl = carRtuService.url("ElectromagneticLockUrl");
-        MqttClient client = new MqttClient(mqttUrl,carId);
+        MqttClient client = new MqttClient(mqttUrl,carId+"mqTest");
         //log.debug("--创建"+carId+"号车辆电子锁mqtt客户端");
         return client;
     }
@@ -90,9 +90,14 @@
         client.connect(options);
         MqttMessage msg = new MqttMessage(message.getBytes());
         msg.setQos(2);
-        client.publish(topic,msg);
+        try{
+            client.publish(topic,msg);
+        }catch (Exception e){
+            log.debug("发布消息失败"+topic+"消息:"+msg);
+            e.getMessage();
+        }
         client.disconnect();
-        return "发布"+type+"指令成功!";
+        return topic+"发布"+type+"指令成功!消息:"+msg;
     }
 
 }
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 98675bc..6465d86 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
@@ -76,7 +76,7 @@
     @Override
     public void messageArrived(String topic, MqttMessage message) {
         try {
-//            System.out.println("【车辆锁主题】:"+topic+"【车辆锁信息】:"+new String(message.getPayload(), StandardCharsets.UTF_8));
+            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

--
Gitblit v1.9.3