From 2799314298467be9ed68d9e19891e35cb3c3edad Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期四, 01 八月 2024 08:14:18 +0800
Subject: [PATCH] 电磁锁动作状态改为操控中...提交

---
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java |  225 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 122 insertions(+), 103 deletions(-)

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 26b9f4d..ad1fbed 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
@@ -19,18 +19,21 @@
 import com.ruoyi.sy.vo.RtuVo;
 import com.ruoyi.system.mapper.SysConfigMapper;
 import com.ruoyi.system.mapper.SysDeptMapper;
-import com.ruoyi.utils.qymqtt.MqttCustomerClient;
+import com.ruoyi.utils.qymqtt.newM.EmqClient;
+import com.ruoyi.utils.qymqtt.newM.QosEnum;
+import com.ruoyi.utils.qymqtt.oldM.MqttCustomerClient;
 import lombok.extern.slf4j.Slf4j;
 import org.eclipse.paho.client.mqttv3.MqttException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 
 /**
  * @author Administrator
  */
-@Slf4j
+@Slf4j(topic = "mqttCar")
 @Service
 public class ArdSyCarLockServiceImpl implements ArdSyCarLockService {
 
@@ -67,8 +70,8 @@
         ArdSyCarRtu ardSyCarRtu = new ArdSyCarRtu();
         ardSyCarRtu.setId(String.valueOf(UUID.randomUUID()));
         ardSyCarRtu.setCarId(addRtuParam.getCarId());
-        ardSyCarRtu.setTopicPublish("/p"+addRtuParam.getCarId()+"/");
-        ardSyCarRtu.setTopicSubscribe("/p"+addRtuParam.getCarId()+"/set/");
+        ardSyCarRtu.setTopicPublish("/p"+addRtuParam.getCarId()+"/set/");
+        ardSyCarRtu.setTopicSubscribe("/p"+addRtuParam.getCarId()+"/");
         ardSyCarRtu.setInstallType(addRtuParam.getInstallType());
         ardSyCarRtu.setUnloadType(addRtuParam.getUnloadType());
         int num = rtuMapper.insert(ardSyCarRtu);
@@ -175,6 +178,8 @@
         rtuVo.setRtu(ardSyCar.getReserved1());
         rtuVo.setTopicPublish(ardSyCarRtu.getTopicPublish());
         rtuVo.setTopicSubscribe(ardSyCarRtu.getTopicSubscribe());
+        rtuVo.setInstallType(ardSyCarRtu.getInstallType());
+        rtuVo.setUnloadType(ardSyCarRtu.getUnloadType());
         return rtuVo;
     }
 
@@ -190,9 +195,21 @@
 
     @Override
     public List<CarVo> queryCar(List<String> list) {
-        QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>();
-        queryWrapper.ne("reserved_1","").notIn("car_id",list);
-        List<ArdSyCar> ardSyCars = ardSyCarMapper.selectList(queryWrapper);
+//        QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>();
+//        if(list.size()>0){
+//            queryWrapper.ne("reserved_1","").notIn("car_id",list);
+//        }else {
+//            queryWrapper.ne("reserved_1","");
+//        }
+//        List<ArdSyCar> ardSyCars = ardSyCarMapper.selectList(queryWrapper);
+        List<ArdSyCar> ardSyCars = new ArrayList<>();
+        if(list.size()>0){
+            QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>();
+            queryWrapper.notIn("car_id",list);
+            ardSyCars = ardSyCarMapper.selectList(queryWrapper);
+        }else {
+            ardSyCars = ardSyCarMapper.selectList(null);
+        }
         return carAnalysis(ardSyCars);
     }
 
@@ -242,24 +259,22 @@
     @Override
     public AjaxResult seal(RtuTypeParam rtuTypeParam) {
         QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("carId",rtuTypeParam.getCarId());
+        queryWrapper.eq("car_id",rtuTypeParam.getCarId());
         ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
         //1瑙e皝
         if(rtuTypeParam.getType()==1){
-            Map<String,Object> map = new HashMap<>();
-            map.put("A01", 110000);//瀵奸�氱涓�璺户鐢靛櫒
-            map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣�
-            map.put("res", String.valueOf(System.currentTimeMillis()));
-            String mapString = JSON.toJSONString(map);
-            try {
-                MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change");
-                mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
-                return AjaxResult.success("瑙e皝鍛戒护鍙戦�佹垚鍔燂紒");
+//            Map<String,Object> map = new HashMap<>();
+//            map.put("A01", 110000);//瀵奸�氱涓�璺户鐢靛櫒
+//            map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣�
+//            map.put("res", String.valueOf(System.currentTimeMillis()));
+//            String mapString = JSON.toJSONString(map);
+            String mapString = "{\"A01\":110000,\"A02\":110000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
+            log.debug("瑙e皝锛�"+mapString);
+            EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+            emqClient.connect();
+            emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+            return AjaxResult.success("瑙e皝鍛戒护鍙戦�佹垚鍔燂紒");
 //                return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"瑙e皝"));
-            } catch (MqttException e) {
-                log.debug("瑙e皝鎸囦护鍙戠敓澶辫触"+e);
-            }
         }
         //0鏂藉皝
         if(rtuTypeParam.getType()==0){
@@ -267,6 +282,11 @@
             int lockCloseNum = 0;
             //鏌ヨ閿佷俊鎭�
             List<ArdSyCarLock> ardSyCarLocks = carLock(ardSyCarRtu.getId());
+            String mapString1 = "{\"A01\":100000,\"A02\":100000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
+            System.out.println("鏂藉皝锛�"+mapString1);
+            EmqClient emqClient1 = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+            emqClient1.connect();
+            emqClient1.publish(ardSyCarRtu.getTopicPublish(),mapString1, QosEnum.QoS2,false);
             for (int j = 0; j < ardSyCarLocks.size(); j++) {
                 ArdSyCarLock ardSyCarLock = ardSyCarLocks.get(j);
                 String currents = ardSyCarLock.getCurrents();
@@ -281,18 +301,18 @@
                     }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 = JSON.toJSONString(map);
-                    try {
-                        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                        mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change");
-                        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
+//                    Map<String,Object> map = new HashMap();
+//                    map.put(key, 0.01);
+//                    map.put("res", String.valueOf(System.currentTimeMillis()));
+//                    String mapString = JSON.toJSONString(map);
+                    String mapString = "{\""+key+"\":0.01,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
+                    log.debug("鍏抽攣锛�"+mapString);
+                    EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+                    emqClient.connect();
+                    emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
 //                        mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"寮�閿侊細"+currents);
-                    } catch (MqttException e) {
-                        log.debug("寮�閿佹寚浠ゅ彂鐢熷け璐�"+e);
-                    }
+//                    long startTime = System.currentTimeMillis();  // 鑾峰彇寰幆寮�濮嬫椂闂�
+//                    long endTime = startTime + 30000;  // 璁剧疆寰幆缁撴潫鏃堕棿涓哄紑濮嬫椂闂村姞涓�5绉掗挓
                     while(true){
                         ArdSyCarLock ardSyCarLock1 = getCurrentInfo(ardSyCarRtu.getId(),currents);
                         Double currentInfo1 = ardSyCarLock1.getCurrentInfo();
@@ -304,20 +324,13 @@
                 }
             }
             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 = JSON.toJSONString(map);
-                try {
-                    MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-                    mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change");
-                    mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
-                    return AjaxResult.success("鏂藉皝鍛戒护鍙戠敓鎴愬姛锛�");
+//                Map<String,Object> map = new HashMap<>();
+//                map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒
+//                map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
+//                map.put("res", String.valueOf(System.currentTimeMillis()));
+//                String mapString = JSON.toJSONString(map);
+                return AjaxResult.success("鏂藉皝鍛戒护鍙戠敓鎴愬姛锛�");
 //                    return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"鏂藉皝"));
-                } catch (MqttException e) {
-                    log.debug("鏂藉皝鎸囦护鍙戠敓澶辫触"+e);
-                }
             }
         }
         return AjaxResult.success();
@@ -330,8 +343,10 @@
         ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
         ArdSyCarLock ardSyCarLock = lockMapper.selectById(lockTypeParam.getLockId());
         Integer relay = ardSyCarLock.getRelayInfo();
-        if(relay.equals("1")){
-            return AjaxResult.error(0,"璇ラ攣澶勪簬瑙e皝鐘舵��,杩滅▼鏃犳硶鎿嶆帶,璇峰厛鎵ц鏂藉皝鎿嶄綔!");
+        if(relay!=null){
+            if(relay.equals(1)){
+                return AjaxResult.error(0,"璇ラ攣澶勪簬瑙e皝鐘舵��,杩滅▼鏃犳硶鎿嶆帶,璇峰厛鎵ц鏂藉皝鎿嶄綔!");
+            }
         }
         String key = "";
         String currents = ardSyCarLock.getCurrents();
@@ -348,70 +363,74 @@
         }else{
             lockState = lockState + 0.01;
         }
-        Map<String,Object> map = new HashMap();
-        map.put(key, lockState);//鑼冨洿鏄�0.01鍒�99.99
-        map.put("res", String.valueOf(System.currentTimeMillis()));
-        String mapString = JSON.toJSONString(map);
-        System.out.println(mapString);
-        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
-        mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"+UUID.randomUUID());
-        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
-        return AjaxResult.success("寮�鍏抽攣鍛戒护鍙戦�佹垚鍔�,鍙戦�佽繘搴︿负"+lockTypeParam.getNum());
-//        QueryWrapper<SysConfig> queryWrapper1 = new QueryWrapper<>();
-//        queryWrapper1.eq("config_key","ElectromagneticLockUrl");
-//        SysConfig sysConfig = configMapper.selectOne(queryWrapper1);
-//        String url = "";
-//        if(sysConfig!=null){
-//            url = sysConfig.getConfigValue();
-//        }else {
-//            return AjaxResult.error("閰嶇疆琛ㄦ棤鍦板潃鏁版嵁");
-//        }
-//        MqttConsumer mqttConsumer = new MqttConsumer();
-//        mqttConsumer.getClientCar(url,lockTypeParam.getCarId());
-//        mqttConsumer.publishCar(1,false,ardSyCarRtu.getTopicPublish(),mapString);
-//        mqttConsumer.disConnect();
-//        return AjaxResult.success();
-        //MqttOnce瀹㈡埛绔�-----寮�濮�
-//        MqttOnce mqttOnce = new MqttOnce();
-//        return AjaxResult.success(mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(), mapString,"寮�鍏抽攣鎸囦护"+lockTypeParam.getNum()));
-        //MqttOnce瀹㈡埛绔�-----缁撴潫
-        //EmqClient瀹㈡埛绔�-----寮�濮�
-//        EmqClient emqClient = new EmqClient("tcp://112.98.126.2:1883",String.valueOf(UUID.randomUUID()));
-//        emqClient.connect("admin","xzx12345");
-//        log.info("涓婚锛�"+ardSyCarRtu.getTopicPublish());
-//        emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
-//        System.out.println("////////////////////");
-//        System.out.println(mapString);
-//        emqClient.disConnect();
-//        return AjaxResult.success(ardSyCarRtu.getTopicPublish()+"寮�鍏抽攣鎸囦护"+lockTypeParam.getNum()+"鍙戝竷鎴愬姛锛�");
-        //EmqClient瀹㈡埛绔�-----缁撴潫
-        //demo------寮�濮�
-//        EmqClient emqClient = new EmqClient("tcp://112.98.126.2:1883","mqttTestp");
-//        emqClient.connect("admin","xzx12345");
 //        Map<String,Object> map = new HashMap();
-//        map.put("D03", 99.99);//鑼冨洿鏄�0.01鍒�99.99
-//        map.put("res", String.valueOf(new Date().getTime()));
-//        System.out.println(map);
-//        String msg = JSON.toJSONString(map);
-//        emqClient.publish("/p14/set/",msg,QosEnum.QoS2,false);
-//        emqClient.disConnect();
-//        return AjaxResult.success();
-        //demo----缁撴潫
+//        map.put(key, lockState);//鑼冨洿鏄�0.01鍒�99.99
+//        map.put("res", String.valueOf(System.currentTimeMillis()));
+//        String mapString = JSON.toJSONString(map);
+        String mapString = "{\""+key+"\":"+lockState+",\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
+        log.debug("寮�鍏抽攣锛�"+mapString);
+        EmqClient emqClient = new EmqClient(lockTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+        emqClient.connect();
+        emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+//        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
+//        mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"+UUID.randomUUID());
+//        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
+        int min = lockTypeParam.getNum() -5;  int max = lockTypeParam.getNum() +5;
+        while(true){
+            ArdSyCarLock ardSyCarLockLoop = lockMapper.selectById(lockTypeParam.getLockId());
+            Double currentInfo =  ardSyCarLockLoop.getCurrentInfo();
+            int d = (int) ((int)(currentInfo*150/138.3 - 4)/0.16);
+            if(d >= min && d <= max){
+                break;
+            }
+//                TimeUnit.SECONDS.sleep(5);
+        }
+        return AjaxResult.success("寮�鍏抽攣鎴愬姛,杩涘害涓�"+lockTypeParam.getNum());
     }
 
     @Override
-    public List<ArdSyCarLock> lockIng(String carId) {
+    public AjaxResult lockIng(String carId) {
         QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("car_id",carId);
         ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
-        List<ArdSyCarLock> locks = lockMapper.lockList(ardSyCarRtu.getId());
-        for (int i = 0; i < locks.size(); i++) {
-            ArdSyCarLock ardSyCarLock = locks.get(i);
-            double info = ardSyCarLock.getCurrentInfo();
-            int d = (int) ((int)(info*150/138.3 - 4)/0.16);
-            ardSyCarLock.setCurrentInfo((double) d);
+        if(ardSyCarRtu!=null){
+            List<ArdSyCarLock> locks = lockMapper.lockList(ardSyCarRtu.getId());
+            if(locks.size()>0){
+                for (int i = 0; i < locks.size(); i++) {
+                    ArdSyCarLock ardSyCarLock = locks.get(i);
+                    if(ardSyCarLock.getCurrentInfo()!=null){
+                        double info = ardSyCarLock.getCurrentInfo();
+                        int d = (int) ((int)(info*150/138.3 - 4)/0.16);
+                        ardSyCarLock.setCurrentInfo((double) d);
+                    }else {
+                        ardSyCarLock.setCurrentInfo(0.0);
+                    }
+                }
+                return AjaxResult.success(locks);
+            }else {
+                return AjaxResult.error("鏃犺杞︾殑閿佹暟鎹紒");
+            }
+        }else{
+            return AjaxResult.error("璇ヨ溅鏃燫TU锛�");
         }
-        return locks;
+
+    }
+
+    @Override
+    public Boolean isLock(String carId) {
+        QueryWrapper<ArdSyCarRtu> queryWrapperRtu = new QueryWrapper<>();
+        queryWrapperRtu.eq("car_id",carId);
+        ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapperRtu);
+        if(ardSyCarRtu!=null){
+            List<ArdSyCarLock> ardSyCarLocks = lockMapper.lockList(ardSyCarRtu.getId());
+            if(ardSyCarLocks.size()>0){
+                return true;
+            }else {
+                return false;
+            }
+        }else {
+            return false;
+        }
     }
 
 

--
Gitblit v1.9.3