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