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