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); } 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); try{ client.publish(topic,msg); }catch (Exception e){ log.debug("发布消息失败"+topic+"消息:"+msg); e.getMessage(); } client.disconnect(); return "发布"+type+"指令成功!"; return topic+"发布"+type+"指令成功!消息:"+msg; } } 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