From a17551833794cceabddff337bf185dbfb97b44ae Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期四, 25 七月 2024 10:33:01 +0800
Subject: [PATCH] 电磁锁打印注释提交

---
 ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java                |    2 +
 ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockService.java                   |    2 +
 ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java                 |   22 ++++++++++
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java |    6 +-
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java           |   85 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 113 insertions(+), 4 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java
index 2428e11..de58874 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java
@@ -300,7 +300,6 @@
                     Thread lockThread = new Thread() {
                         @Override
                         public void run() {
-                            //String usersId = key.split("_")[0];
                             ardTankLockService.sendLockState(key,userId,password);
                         }
                     };
@@ -310,6 +309,27 @@
         };
         sendTimer.scheduleAtFixedRate(sendLockStateTask,date,3000);
 
+        try{
+            Thread.sleep(3000);
+        }catch(Exception e){
+
+        }
+
+
+        Timer alarmTimer = new Timer();//瀹氭椂鑾峰彇鎶ヨ
+        TimerTask alarmTask = new TimerTask(){
+            @Override
+            public void run() {
+                Thread alarmThread = new Thread() {
+                    @Override
+                    public void run() {
+                        ardTankLockService.getAlarm(userId,password);
+                    }
+                };
+                alarmThread.start();
+            }
+        };
+        alarmTimer.scheduleAtFixedRate(alarmTask,date,3000);
 
     }
 
diff --git a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java
index 666b8bb..f4c1eb8 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java
@@ -314,6 +314,8 @@
                                 ardTankLockState.setUniqueMark(uniqueMark);
                                 ((ArdTankLockStateServiceImpl)SpringUtils.getBean("ardTankLockStateServiceImpl")).insertOrUpdateArdTankLockState(ardTankLockState);
                             }
+                        }else if(code.equals("06")){//鍔熻兘鐮�06涓洪攣鍘嗗彶鎶ヨ
+
                         }
                     }catch (Exception e){
                         e.printStackTrace();
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockService.java b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockService.java
index d6daab6..bd76c73 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockService.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockService.java
@@ -76,4 +76,6 @@
     public List<ArdTankLock> getArdTankLockAll();
 
     public void sendLockState(String userId,String syUserId,String syPassword);
+
+    public void getAlarm(String syUserId,String syPassword);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java
index 1072653..9f2ab56 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java
@@ -205,10 +205,10 @@
 
                 String paramsStr = lockNum + "02" + process + checkNum;
                 paramsStr = "%7B%22type%22%3A%22ff%22%2C%22dataCnt%22%3A%22" + paramsStr + "%22%7D";
-                System.out.println(paramsStr);
+                //System.out.println(paramsStr);
                 Map<String,Object> result = sendCmd(syURL, ardSyUser.getUserId(), carId, 199, "DataDownTransfer", paramsStr, sessionId);
-                System.out.println("111111111111");
-                System.out.println(result);
+                //System.out.println("111111111111");
+                //System.out.println(result);
                 if(((String)result.get("rspCode")).equals("0")){
                     ArdTankLockProcessLog ardTankLockProcessLog = new ArdTankLockProcessLog();
                     ardTankLockProcessLog.setId(IdUtils.simpleUUID());
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java
index d68c81b..670b9f5 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.sy.service.impl;
 
+import java.io.IOException;
 import java.util.*;
 
 import com.alibaba.fastjson.JSON;
@@ -13,6 +14,9 @@
 import com.ruoyi.system.mapper.SysConfigMapper;
 import com.ruoyi.utils.forest.SYClient;
 import com.ruoyi.utils.websocket.util.WebSocketUtils;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.springframework.stereotype.Service;
 
@@ -56,6 +60,8 @@
 
     @Resource
     private SYClient sYClient;
+
+    private Map<String,Thread> alarmMap = new HashMap();//鐢电閿佸巻鍙叉姤璀︾嚎绋嬪鍣�
 
     /**
      * 鏌ヨ鐢电閿�
@@ -581,4 +587,83 @@
             WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(userId), JSON.toJSONString(data));
         }
     }
+
+    @Override
+    public void getAlarm(String syUserId,String syPassword) {
+        List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT");
+        String syURL = "";
+        if(syURLResult.size() != 0){
+            syURL = syURLResult.get(0).getConfigValue();
+        }else{
+            return;
+        }
+        String finalSyURL = syURL;
+
+        String passwordMd5 = DigestUtils.md5Hex(syPassword);
+        Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, syUserId);
+        String sessionId = (String) LogInResult.get("sessionId");
+
+        List<ArdTankLock> ardTankLockResult = ardTankLockMapper.getAll();
+        for(ArdTankLock ardTankLock : ardTankLockResult){
+            if(this.alarmMap.get(ardTankLock.getLockNum()) != null){
+                continue;//褰撳墠閿佸凡鍦ㄨ幏鍙栨姤璀︼紝涓嶅湪鍒涘缓绾跨▼
+            }
+            Thread thread = new Thread(finalSyURL){
+                @Override
+                public void run() {
+                    try{
+                        String lockNum = ardTankLock.getLockNum();
+                        String lockNumHead = lockNum.substring(0,2);
+                        String lockNumTail = lockNum.substring(2,4);
+                        String checkNum = Integer.toHexString(Integer.parseInt(lockNumHead, 16)//閿佺紪鍙烽珮8浣�
+                                + Integer.parseInt(lockNumTail, 16)//閿佺紪鍙蜂綆8浣�
+                                + Integer.parseInt("06", 16));//璁剧疆閿佽姱鐘舵�佸姛鑳界爜06
+                        if(checkNum.length() == 1){
+                            checkNum = "0" + checkNum;
+                        }
+                        if(checkNum.length() > 2){
+                            checkNum = checkNum.substring(checkNum.length() - 2,checkNum.length());
+                        }
+
+                        String paramsStr = lockNum + "06" + checkNum;
+                        paramsStr = "%7B%22type%22%3A%22ff%22%2C%22dataCnt%22%3A%22" + paramsStr + "%22%7D";
+                        Map<String,Object> result = sendCmd(finalSyURL, syUserId, ardTankLock.getCarId(), 199, "DataDownTransfer", paramsStr, sessionId);
+                        alarmMap.remove(ardTankLock.getLockNum());
+                    }catch(Exception e){
+                        e.printStackTrace();
+                    }
+                }
+            };
+            thread.start();
+            alarmMap.put(ardTankLock.getLockNum(),thread);
+        }
+    }
+
+    public Map<String,Object> sendCmd(String syURL,String userId,String carId,Integer cmdId,String cmd,String paramsStr,String sessionId){
+        OkHttpClient okHttpClient = new OkHttpClient();
+
+        Request request = new Request.Builder()
+                .url(syURL + "/gps-web/api/send_cmd.jsp?params="+paramsStr+"&userId="+userId+"&carId="+carId+"&cmdId="+cmdId+"&cmd="+cmd+"&sessionId="+sessionId)
+                .build();
+        //System.out.println("url = " + syURL + "/gps-web/api/send_cmd.jsp?params="+paramsStr+"&userId="+userId+"&carId="+carId+"&cmdId="+cmdId+"&cmd="+cmd+"&sessionId="+sessionId);
+        Response response = null;
+        try {
+            response = okHttpClient.newCall(request).execute();
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        okhttp3.ResponseBody responseBody = response.body();
+
+        try {
+            String message = responseBody.string();// 鍝嶅簲浣�
+            Map<String,Object> map = (Map<String, Object>) com.alibaba.fastjson2.JSON.parse(message);
+            return map;
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+            return new HashMap();
+        }
+    }
 }

--
Gitblit v1.9.3