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 | 66 +++++++++++++++++++++++++------- 1 files changed, 51 insertions(+), 15 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..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 @@ -79,24 +79,60 @@ // 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(); + 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; + } } - 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