From 19c431878bc5d3b06fbda3f3fa8ae5023790c837 Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期三, 15 十一月 2023 11:18:27 +0800 Subject: [PATCH] mqtt --- ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java | 68 ++++++++++++++++++++++++++-------- 1 files changed, 52 insertions(+), 16 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 d89ef67..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,27 +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)); - //瀛樺叆闆嗗悎 - 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()); + //鏍规嵁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; + } } - Map<String,List<ArdSyCarLock>> newMap = new HashMap<>(); - newMap.put("topic",ardSyCarLocks); - PositionContainer.setTopicSubscribe(newMap); + if(current.equals(current1)){ + if(!currentInfo.equals(currentInfo1)){ + lock.setCurrentInfo(currentInfo); + upd = true; + } + } + if(upd){ + int num = carLockService.updLock(lock); +// log.debug("淇敼"+num+"鏁版嵁"); + } } } - log.debug(String.valueOf(map)); +// //瀛樺叆闆嗗悎 +// 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