From f4e20b2dc544a188d0591c901022383e84fa8e9e Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期一, 13 十一月 2023 17:31:03 +0800 Subject: [PATCH] 清淤电磁锁 --- ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java | 75 ++++++++++++++++++++++++++++++++++--- 1 files changed, 69 insertions(+), 6 deletions(-) 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 32dc146..e469e7f 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; @@ -69,7 +76,63 @@ @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 + 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(); + String relayInfo = ardSyCarLockData.getRelayInfo(); + String current = ardSyCarLockData.getCurrents(); + String currentInfo = ardSyCarLockData.getCurrentInfo(); + for (int j = 0; j < ardSyCarLockList.size(); j++) { + ArdSyCarLock lock = ardSyCarLockList.get(j); + String relay1 = lock.getRelay(); + String current1 = lock.getCurrents(); + String relayInfo1 = lock.getRelayInfo(); + String 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+"鏁版嵁"); + } + } + } +// //瀛樺叆闆嗗悎 +// 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