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