From f065e0997f11eb3507ea7f97d8879103c47f6785 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期三, 22 十一月 2023 15:54:41 +0800
Subject: [PATCH] 清淤越界处理

---
 ard-work/src/main/java/com/ruoyi/utils/qymqtt/PushCallback.java               |    2 
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java |   10 +-
 ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java                   |    3 
 ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java         |  119 ++++++++++++++++++++-------------------
 4 files changed, 68 insertions(+), 66 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
index cc3d87e..8517bb0 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
@@ -443,74 +443,75 @@
         }else if("鏂藉皝".equals(type)){
             fengType = 0;
         }
-        //1瑙e皝
-        if(fengType==1){
-            //濡傛灉涓嶆槸瑙e皝灏佺姸鎬侊紝鍒欏彂閫佹柦灏佸懡浠�
-            if(ardSyCarLocks.get(0).getRelayInfo()==0){
-                Map<String,Object> map = new HashMap<>();
-                map.put("A01", 110000);//瀵奸�氱涓�璺户鐢靛櫒
-                map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣�
-                map.put("res", String.valueOf(System.currentTimeMillis()));
-                String mapString = com.alibaba.fastjson.JSON.toJSONString(map);
-                MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                mqttCustomerClient.connect(carId+"change");
-                mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
-                log.info("杞﹁締"+carId+"瑙e皝鍛戒护鍙戦�佹垚鍔燂紒");
-//                mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"瑙e皝");
-            }
-        }
-        //0鏂藉皝
-        if(fengType==0){
-            //閿佸紑鍏崇姸鎬�
-            int lockCloseNum = 0;
-            //濡傛灉涓嶆槸鏂藉皝鐘舵�侊紝鍒欏彂閫佹柦灏佸懡浠�
-            if(ardSyCarLocks.get(0).getRelayInfo()==1){
-                for (int j = 0; j < ardSyCarLocks.size(); j++) {
-                    ArdSyCarLock ardSyCarLock = ardSyCarLocks.get(j);
-                    String currents = ardSyCarLock.getCurrents();
-                    Double currentInfo = ardSyCarLock.getCurrentInfo();
-                    //鐢垫祦鍊间负4.0鏄叧閿佺姸鎬�
-                    if(currentInfo.equals(4.00) || currentInfo.equals(4)){
-                        lockCloseNum += 1;
-                    }else {
-                        String key = "";
-                        if(currents.equals("C01")){
-                            key = "D03";
-                        }else if(currents.equals("C02")){
-                            key = "D04";
-                        }
-                        Map<String,Object> map = new HashMap();
-                        map.put(key, 0.01);
-                        map.put("res", String.valueOf(System.currentTimeMillis()));
-                        String mapString = com.alibaba.fastjson.JSON.toJSONString(map);
-                        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                        mqttCustomerClient.connect(carId+"change");
-                        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
-//                        mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"寮�閿侊細"+currents);
-                        while(true){
-                            ArdSyCarLock ardSyCarLock1 = lockService.getCurrentInfo(ardSyCarRtu.getId(),currents);
-                            Double currentInfo1 = ardSyCarLock1.getCurrentInfo();
-                            if(currentInfo1.equals(4.00) || currentInfo1.equals(4)){
-                                lockCloseNum +=1;
-                                break;
-                            }
-                        }
-                    }
-                }
-                if(lockCloseNum == 2){
+        if(ardSyCarLocks.size()>0){
+            //1瑙e皝
+            if(fengType==1){
+                //濡傛灉涓嶆槸瑙e皝灏佺姸鎬侊紝鍒欏彂閫佹柦灏佸懡浠�
+                if(ardSyCarLocks.get(0).getRelayInfo()==0){
                     Map<String,Object> map = new HashMap<>();
-                    map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒
-                    map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
+                    map.put("A01", 110000);//瀵奸�氱涓�璺户鐢靛櫒
+                    map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣�
                     map.put("res", String.valueOf(System.currentTimeMillis()));
                     String mapString = com.alibaba.fastjson.JSON.toJSONString(map);
                     MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
                     mqttCustomerClient.connect(carId+"change");
                     mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
-                    log.info("杞﹁締"+carId+"鏂藉皝鍛戒护鍙戦�佹垚鍔燂紒");
+                    log.info("杞﹁締"+carId+"瑙e皝鍛戒护鍙戦�佹垚鍔燂紒");
+//                mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"瑙e皝");
+                }
+            }
+            //0鏂藉皝
+            if(fengType==0){
+                //閿佸紑鍏崇姸鎬�
+                int lockCloseNum = 0;
+                //濡傛灉涓嶆槸鏂藉皝鐘舵�侊紝鍒欏彂閫佹柦灏佸懡浠�
+                if(ardSyCarLocks.get(0).getRelayInfo()==1){
+                    for (int j = 0; j < ardSyCarLocks.size(); j++) {
+                        ArdSyCarLock ardSyCarLock = ardSyCarLocks.get(j);
+                        String currents = ardSyCarLock.getCurrents();
+                        Double currentInfo = ardSyCarLock.getCurrentInfo();
+                        //鐢垫祦鍊间负4.0鏄叧閿佺姸鎬�
+                        if(currentInfo.equals(4.00) || currentInfo.equals(4)){
+                            lockCloseNum += 1;
+                        }else {
+                            String key = "";
+                            if(currents.equals("C01")){
+                                key = "D03";
+                            }else if(currents.equals("C02")){
+                                key = "D04";
+                            }
+                            Map<String,Object> map = new HashMap();
+                            map.put(key, 0.01);
+                            map.put("res", String.valueOf(System.currentTimeMillis()));
+                            String mapString = com.alibaba.fastjson.JSON.toJSONString(map);
+                            MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
+                            mqttCustomerClient.connect(carId+"change");
+                            mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
+//                        mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"寮�閿侊細"+currents);
+                            while(true){
+                                ArdSyCarLock ardSyCarLock1 = lockService.getCurrentInfo(ardSyCarRtu.getId(),currents);
+                                Double currentInfo1 = ardSyCarLock1.getCurrentInfo();
+                                if(currentInfo1.equals(4.00) || currentInfo1.equals(4)){
+                                    lockCloseNum +=1;
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                    if(lockCloseNum == 2){
+                        Map<String,Object> map = new HashMap<>();
+                        map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒
+                        map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
+                        map.put("res", String.valueOf(System.currentTimeMillis()));
+                        String mapString = com.alibaba.fastjson.JSON.toJSONString(map);
+                        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
+                        mqttCustomerClient.connect(carId+"change");
+                        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
+                        log.info("杞﹁締"+carId+"鏂藉皝鍛戒护鍙戦�佹垚鍔燂紒");
 //                    mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"鏂藉皝");
+                    }
                 }
             }
         }
     }
-
 }
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
index a761b97..7bfbea3 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
@@ -340,13 +340,13 @@
         }else if(currents.equals("C02")){
             key = "D04";
         }
-        Number lockState = (Number) lockTypeParam.getNum();
-        if(lockState.equals(100)){
+        double lockState = lockTypeParam.getNum();
+        if(lockState==100){
             lockState = 99.99;
-        }else if(lockState.equals(0)){
+        }else if(lockState==0){
             lockState = 0.01;
         }else{
-            lockState = lockState.doubleValue() + 0.01;
+            lockState = lockState + 0.01;
         }
         Map<String,Object> map = new HashMap();
         map.put(key, lockState);//鑼冨洿鏄�0.01鍒�99.99
@@ -354,7 +354,7 @@
         String mapString = JSON.toJSONString(map);
         System.out.println(mapString);
         MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-        mqttCustomerClient.connect(lockTypeParam.getCarId()+"change");
+        mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"+UUID.randomUUID());
         mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
         return AjaxResult.success("寮�鍏抽攣鍛戒护鍙戦�佹垚鍔�,鍙戦�佽繘搴︿负"+lockTypeParam.getNum());
 //        QueryWrapper<SysConfig> queryWrapper1 = new QueryWrapper<>();
diff --git a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java
index 455d8a1..864148a 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java
@@ -8,6 +8,7 @@
 
 import javax.annotation.PostConstruct;
 import java.util.List;
+import java.util.UUID;
 
 @Slf4j
 @Component
@@ -28,7 +29,7 @@
             String subscribe = rtu.getTopicSubscribe();
             try {
                 MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                mqttCustomerClient.connect(carId+"mqtt");
+                mqttCustomerClient.connect(carId+"mqtt"+ UUID.randomUUID());
                 mqttCustomerClient.subscribe(subscribe);
             }catch (Exception e) {
                 e.printStackTrace();
diff --git a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/PushCallback.java b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/PushCallback.java
index 910d32f..4f9fb64 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/qymqtt/PushCallback.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/qymqtt/PushCallback.java
@@ -46,7 +46,7 @@
     @Override
     public void messageArrived(String topic, MqttMessage message) throws Exception {
         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

--
Gitblit v1.9.3