From 9764b5879c808da31101eb4e05608233ea59ec53 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: Sat, 16 Dec 2023 14:30:24 +0800
Subject: [PATCH] RTU

---
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java |    2 
 ard-work/src/main/java/com/ruoyi/sy/vo/CarVo.java                             |    2 
 ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java    |    7 +
 ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java         |  123 ++++++++++++++++++++--------------------
 ard-work/src/main/java/com/ruoyi/utils/data/Query.java                        |    7 --
 ard-work/src/main/java/com/ruoyi/sy/vo/RtuVo.java                             |    2 
 6 files changed, 73 insertions(+), 70 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java
index f24ca1a..92d6ab4 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java
@@ -98,6 +98,9 @@
         carLockVo.setCar(carVo);
         String rtu = carVo.getRtu();
         carLockVo.setCarLockList(ardSyCarLockService.carLock(rtu));
+        ArdSyCarRtu ardSyCarRtu = ardSyCarRtuService.one(carId);
+        carVo.setInstallType(ardSyCarRtu.getInstallType());
+        carVo.setUnloadType(ardSyCarRtu.getUnloadType());
         return AjaxResult.success(carLockVo);
     }
 
@@ -115,9 +118,9 @@
         return Results.succeed("成功添加/修改"+ardSyCarLockService.addUpdLock(locks)+"条数据");
     }
 
-    @GetMapping("/onrRtu")
+    @GetMapping("/oneRtu")
     @ApiOperation("更改Rtu前查询")
-    public Results onrRtu(String carId){
+    public Results oneRtu(String carId){
         RtuVo rtuVo = ardSyCarLockService.updRtu(carId);
         String usersId = SecurityUtils.getUserId();
         ArdSyUser ardSyUser = iArdSyUserService.userById(usersId);
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 f360ce8..b53d824 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
@@ -115,14 +115,6 @@
                     List<ArdOilWall> ardOilWalls = ardOilWallService.accessAll();
                     //日期格式
                     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                    //车速标记
-                    Boolean stop = true;
-                    //判断车速
-                    if(speed>5){
-                        //mqtt发送既定Rtu状态
-                        feng(carId,"施封",carRtuService,lockService);
-                        stop = false;
-                    }
                     //如果没有说明车辆未进入装油点,需要匹配所有装油点围栏
                     if(ardAccessFence==null){
                         //车辆未进入装油点
@@ -152,14 +144,20 @@
                                 ardAccessFence1.setDrct(drct);
                                 ardAccessFence1.setIsAlarm(0);
                                 ardAccessFenceService.access(ardAccessFence1);
-                                if(stop){
-                                    //mqtt发送既定Rtu状态
-                                    feng(carId,"装油点",carRtuService,lockService);
-                                }
+                                //mqtt发送既定Rtu状态
+                                feng(carId,"装油点",carRtuService,lockService);
                                 break;
                             }
                         }
                     }else {
+                        //车速标记
+                        Boolean stop = true;
+                        //判断车速
+                        if(speed>5){
+                            //mqtt发送既定Rtu状态
+                            feng(carId,"施封",carRtuService,lockService);
+                            stop = false;
+                        }
                         //带锁车辆有值优先判断是否为手动添加车辆
                         if(ardAccessFence.getIsAlarm()==1){
                             //1为手动添加车辆无需报警信息,更新位置即可
@@ -458,77 +456,78 @@
                 //1解封
                 if(fengType==1){
                     //如果不是解封封状态,则发送施封命令
-                    if(ardSyCarLocks.get(0).getRelayInfo()!=null){
-                        if(ardSyCarLocks.get(0).getRelayInfo()==0){
+                    if(ardSyCarLocks.get(0).getRelayInfo()==0 || ardSyCarLocks.get(0).getRelayInfo()==null){
 //                            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);
-                            String mapString = "{\"A01\":110000,\"A02\":110000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
-                            log.debug("自动解封:"+mapString);
-                            EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
-                            emqClient.connect();
-                            emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
-                            log.debug("车辆"+carId+"解封命令发送成功!");
-                            //                mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"解封");
-                        }
+                        String mapString = "{\"A01\":110000,\"A02\":110000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
+                        log.debug("自动解封:"+mapString);
+                        EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
+                        emqClient.connect();
+                        emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+                        log.debug("车辆"+carId+"解封命令发送成功!");
+                        //                mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"解封");
                     }
                 }
+
                 //0施封
                 if(fengType==0){
-                    //锁开关状态
-                    int lockCloseNum = 0;
-                    String mapString1 = "{\"A01\":100000,\"A02\":100000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
-                    System.out.println("自动施封:"+mapString1);
-                    EmqClient emqClient1 = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
-                    emqClient1.connect();
-                    emqClient1.publish(ardSyCarRtu.getTopicPublish(),mapString1, QosEnum.QoS2,false);
-                    //如果不是施封状态,则发送施封命令
-                    if(ardSyCarLocks.get(0).getRelayInfo()!=null){
-                        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";
-                                    }
+                    if(ardSyCarLocks.get(0).getRelayInfo()==1 || ardSyCarLocks.get(0).getRelayInfo()==null){
+                        //锁开关状态
+                        int lockCloseNum = 0;
+                        String mapString1 = "{\"A01\":100000,\"A02\":100000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
+                        System.out.println("自动施封:"+mapString1);
+                        EmqClient emqClient1 = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
+                        emqClient1.connect();
+                        emqClient1.publish(ardSyCarRtu.getTopicPublish(),mapString1, QosEnum.QoS2,false);
+                        //如果不是施封状态,则发送施封命令
+                        if(ardSyCarLocks.get(0).getRelayInfo()!=null){
+                            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);
-                                    String mapString = "{\""+key+"\":0.01,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
-                                    log.debug("自动关锁:"+mapString);
-                                    EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
-                                    emqClient.connect();
-                                    emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
-                                    //                        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;
+                                        String mapString = "{\""+key+"\":0.01,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
+                                        log.debug("自动关锁:"+mapString);
+                                        EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
+                                        emqClient.connect();
+                                        emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+                                        //                        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(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);
-                                log.debug("车辆"+carId+"施封命令发送成功!");
-                                //                    mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"施封");
+                                    log.debug("车辆"+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 e2da7e7..c27a0a6 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
@@ -177,6 +177,8 @@
         rtuVo.setRtu(ardSyCar.getReserved1());
         rtuVo.setTopicPublish(ardSyCarRtu.getTopicPublish());
         rtuVo.setTopicSubscribe(ardSyCarRtu.getTopicSubscribe());
+        rtuVo.setInstallType(ardSyCarRtu.getInstallType());
+        rtuVo.setUnloadType(ardSyCarRtu.getUnloadType());
         return rtuVo;
     }
 
diff --git a/ard-work/src/main/java/com/ruoyi/sy/vo/CarVo.java b/ard-work/src/main/java/com/ruoyi/sy/vo/CarVo.java
index 47eba1b..4bee2c3 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/vo/CarVo.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/vo/CarVo.java
@@ -17,4 +17,6 @@
     private String deptId;
     private String deptName;
     private String rtu;
+    private Integer installType; //装油点 0施封 1解封
+    private Integer unloadType; //卸油点 0施封 1解封
 }
diff --git a/ard-work/src/main/java/com/ruoyi/sy/vo/RtuVo.java b/ard-work/src/main/java/com/ruoyi/sy/vo/RtuVo.java
index f022ec6..d5c4915 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/vo/RtuVo.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/vo/RtuVo.java
@@ -15,4 +15,6 @@
     private String rtu;
     private String topicPublish;
     private String topicSubscribe;
+    private Integer installType; //装油点 0施封 1解封
+    private Integer unloadType; //卸油点 0施封 1解封
 }
diff --git a/ard-work/src/main/java/com/ruoyi/utils/data/Query.java b/ard-work/src/main/java/com/ruoyi/utils/data/Query.java
index eb69b6d..ea4d318 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/data/Query.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/data/Query.java
@@ -70,16 +70,11 @@
                 rtu_data_yj_8.setZHS(rs.getInt("ZHS"));
                 dataBridgeList.add(rtu_data_yj_8);
             }
+            conn.close();
             return dataBridgeList;
         } catch (Exception e) {
             log.error("设备运行状态查询异常:" + e.getMessage());
             return dataBridgeList;
-        } finally {
-            try {
-                conn.close();
-            } catch (SQLException e) {
-                e.printStackTrace();
-            }
         }
     }
 }

--
Gitblit v1.9.3