From 1636f02b9cf3f408ebf8b3c4e377237e5b74bf4a Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期五, 26 七月 2024 10:57:30 +0800 Subject: [PATCH] 电磁锁实时状态加入报警详情提交 --- ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockProcessLogService.java | 3 + ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java | 2 ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java | 14 +++++++ ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java | 2 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java | 26 ++++++------- ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java | 65 ++++++++++++++++++++++++++++---- 6 files changed, 86 insertions(+), 26 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 de58874..f525c5c 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 @@ -290,7 +290,7 @@ } } }; - lockCheckTimeTimer.scheduleAtFixedRate(lockCheckTimeTask,date,13000); + lockCheckTimeTimer.scheduleAtFixedRate(lockCheckTimeTask,date,7000); Timer sendTimer = new Timer();//瀹氭椂鍙戦�侀攣鐘舵�� TimerTask sendLockStateTask = new TimerTask(){ diff --git a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java index fe15822..079d6b9 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java +++ b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java @@ -333,6 +333,6 @@ public AjaxResult processArdTankLockByLockId(@RequestBody Map<String,String> para) { String userId = SecurityUtils.getUserId(); String username = SecurityUtils.getUsername(); - return AjaxResult.success(ardTankLockProcessLogService.processArdTankLockByLockId(userId,username,para)); + return ardTankLockProcessLogService.processArdTankLockByLockId(userId,username,para); } } 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 f4c1eb8..d0af9ea 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 @@ -113,6 +113,20 @@ Date now = new Date(); try { String data = (String) dataMap.get("data"); + if(data.length() %2 != 0){//闀垮害涓嶆槸鍋舵暟锛屽氨杩斿洖 + return; + } + + Integer sum = 0; + for(int i = 0;i <= data.length() - 4;i = i + 2){ + String str = data.substring(i, i + 2); + sum = sum + Integer.parseInt(str, 16); + } + String checkNum = data.substring(data.length() - 2, data.length()); + if(!checkNum.equals(Integer.toHexString(sum).toUpperCase())){//鏍¢獙涓嶉�氳繃锛屽氨杩斿洖 + return; + } + String lockNum = data.substring(0, 4); String code = data.substring(4, 6); if(code.equals("01")){//鍔熻兘鐮�01涓洪攣瀹炴椂鐘舵�� diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockProcessLogService.java b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockProcessLogService.java index 28cfcce..bc4ee17 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockProcessLogService.java +++ b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockProcessLogService.java @@ -3,6 +3,7 @@ import java.util.List; import java.util.Map; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.sy.domain.ArdTankLockProcessLog; /** @@ -61,5 +62,5 @@ */ public int deleteArdTankLockProcessLogById(String id); - public String processArdTankLockByLockId(String userId, String username, Map<String,String> para); + public AjaxResult processArdTankLockByLockId(String userId, String username, Map<String,String> para); } 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 9f2ab56..f912eaf 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 @@ -6,6 +6,7 @@ import java.util.*; import com.alibaba.fastjson2.JSON; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysConfig; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.sy.domain.ArdSyUser; @@ -129,7 +130,7 @@ } @Override - public String processArdTankLockByLockId(String userId, String username, Map<String,String> para) { + public AjaxResult processArdTankLockByLockId(String userId, String username, Map<String,String> para) { String lockId = para.get("lockId"); String lockNum = para.get("lockNum"); String carId = para.get("carId"); @@ -139,19 +140,19 @@ //鍒ゆ柇浣胯兘 ArdTankLock ardTankLock = ardTankLockMapper.selectArdTankLockById(lockId); if(ardTankLock.getEnable().equals("false")){ - return "璇ラ攣浣胯兘鍏抽棴锛屾棤娉曟搷鎺�"; + return AjaxResult.error("璇ラ攣浣胯兘鍏抽棴锛屾棤娉曟搷鎺�"); } ArdSyUser ardSyUser = ardSyUserMapper.userById(userId); if(ardSyUser == null){ - return "鏈寕鎺ヤ笁涓�璐﹀彿"; + return AjaxResult.error("鏈寕鎺ヤ笁涓�璐﹀彿"); } List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT"); String syURL = ""; if(syURLResult.size() != 0){ syURL = syURLResult.get(0).getConfigValue(); }else{ - return "涓変竴骞冲彴鏈綍鍏�"; + return AjaxResult.error("涓変竴骞冲彴鏈綍鍏�"); } String passwordMd5 = DigestUtils.md5Hex(ardSyUser.getPassword()); Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, ardSyUser.getUserId()); @@ -164,13 +165,13 @@ if(((String)syResult.get("rspCode")).equals("1")){ Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0); if(Integer.parseInt((String)carMap.get("speed")) != 0){ - return "杞﹁締姝e湪琛岄┒涓�"; + return AjaxResult.error("杞﹁締姝e湪琛岄┒涓�"); } lng = (String) carMap.get("lng"); lat = (String) carMap.get("lat"); carPlate = (String) carMap.get("carName"); }else{ - return "涓変竴骞冲彴鎶ラ敊"; + return AjaxResult.error("涓変竴骞冲彴鎶ラ敊"); } List<ArdTankWall> ardTankWallList = ardTankWallMapper.getArdTankWallProcessByLockId(lockId);//鏌ヨ閿佹寕鎺ョ殑鍏ㄩ儴闇�瑕佸姩浣滅殑鐢靛瓙鍥存爮 @@ -184,10 +185,10 @@ pts.add(new Point2D.Double(Double.parseDouble(wallpoiArro[j]), Double.parseDouble(wallpoiArro[j+1]))); } if(GeoTools.IsPtInPoly(point, pts)){//鍦ㄤ换鎰忕數瀛愬洿鏍忓唴锛屼笉鎶ヨ - return "褰撳墠杞﹁締姝e鍦�" + ardTankWall.getWallName() + "涓�"; + return AjaxResult.error("褰撳墠杞﹁締姝e鍦�" + ardTankWall.getWallName() + "涓�"); } } - return "褰撳墠杞﹁締姝e鍦ㄧ數瀛愬洿鏍忓"; + return AjaxResult.error("褰撳墠杞﹁締姝e鍦ㄧ數瀛愬洿鏍忓"); }else{ try{ String lockNumHead = lockNum.substring(0,2); @@ -205,10 +206,7 @@ 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); Map<String,Object> result = sendCmd(syURL, ardSyUser.getUserId(), carId, 199, "DataDownTransfer", paramsStr, sessionId); - //System.out.println("111111111111"); - //System.out.println(result); if(((String)result.get("rspCode")).equals("0")){ ArdTankLockProcessLog ardTankLockProcessLog = new ArdTankLockProcessLog(); ardTankLockProcessLog.setId(IdUtils.simpleUUID()); @@ -228,13 +226,13 @@ ardTankLockProcessLog.setLatitude(lat); ardTankLockProcessLog.setProcessTime(this.sdf.format(new Date())); ardTankLockProcessLogMapper.insertArdTankLockProcessLog(ardTankLockProcessLog); - return "鍙戦�佹垚鍔�"; + return AjaxResult.success("鍙戦�佹垚鍔�"); }else{ - return "鍙戦�佸け璐�"; + return AjaxResult.error("鍙戦�佸け璐�"); } }catch(Exception e){ e.printStackTrace(); - return "鍙戦�佸け璐�"; + return AjaxResult.error("鍙戦�佸け璐�"); } } } 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 670b9f5..5b23022 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 @@ -535,13 +535,13 @@ }else{ lockMap.put("onlineTime",ardTankLock.getOnlineTime()); } - Map<String,Object> ardTankLockState = new HashMap(); + //Map<String,Object> ardTankLockState = new HashMap(); ArdTankLockState ardTankLockStateResult = ardTankLockStateMapper.selectArdTankLockStateByLockIdLimitOne(ardTankLock.getId()); if(ardTankLockStateResult == null){ - ardTankLockState.put("id",""); + /*ardTankLockState.put("id",""); ardTankLockState.put("lockId",""); - ardTankLockState.put("lockNum",""); - ardTankLockState.put("lockState",""); + ardTankLockState.put("lockNum","");*/ + /*ardTankLockState.put("lockState",""); ardTankLockState.put("lockPositionState",""); ardTankLockState.put("lockShellState",""); ardTankLockState.put("restartState",""); @@ -552,12 +552,25 @@ ardTankLockState.put("uploadTime",""); ardTankLockState.put("uniqueMark",""); ardTankLockState.put("lockStateMark",false); - lockMap.put("ardTankLockState",ardTankLockState); + lockMap.put("ardTankLockState",ardTankLockState);*/ + lockMap.put("lockState",""); + lockMap.put("lockPositionState",""); + lockMap.put("lockShellState",""); + lockMap.put("restartState",""); + lockMap.put("batterVoltage",""); + lockMap.put("batterVoltageAlarm",false); + lockMap.put("powerVoltage",""); + lockMap.put("powerVoltageAlarm",false); + lockMap.put("uploadTime",""); + lockMap.put("uniqueMark",""); + lockMap.put("lockStateMark",false); + lockMap.put("alarmMark",false); + lockMap.put("alarmInfo",""); }else{ - ardTankLockState.put("id",ardTankLockStateResult.getId()); + /*ardTankLockState.put("id",ardTankLockStateResult.getId()); ardTankLockState.put("lockId",ardTankLockStateResult.getLockId()); - ardTankLockState.put("lockNum",ardTankLockStateResult.getLockNum()); - ardTankLockState.put("lockState",ardTankLockStateResult.getLockState()); + ardTankLockState.put("lockNum",ardTankLockStateResult.getLockNum());*/ + /*ardTankLockState.put("lockState",ardTankLockStateResult.getLockState()); ardTankLockState.put("lockPositionState",ardTankLockStateResult.getLockPositionState()); ardTankLockState.put("lockShellState",ardTankLockStateResult.getLockShellState()); ardTankLockState.put("restartState",ardTankLockStateResult.getRestartState()); @@ -576,7 +589,41 @@ ardTankLockState.put("uploadTime",ardTankLockStateResult.getUploadTime()); ardTankLockState.put("uniqueMark",ardTankLockStateResult.getUniqueMark()); ardTankLockState.put("lockStateMark",ardTankLockStateResult.getLockStateMark()); - lockMap.put("ardTankLockState",ardTankLockState); + lockMap.put("ardTankLockState",ardTankLockState);*/ + String alarmInfo = ""; + lockMap.put("lockState",ardTankLockStateResult.getLockState()); + lockMap.put("lockPositionState",ardTankLockStateResult.getLockPositionState()); + if(ardTankLockStateResult.getLockPositionState().equals("寮傚父")){ + alarmInfo = alarmInfo + "浣嶇疆寮傚父;"; + } + lockMap.put("lockShellState",ardTankLockStateResult.getLockShellState()); + if(ardTankLockStateResult.getLockShellState().equals("寮傚父")){ + alarmInfo = alarmInfo + "澶栧3寮傚父;"; + } + lockMap.put("restartState",ardTankLockStateResult.getRestartState()); + lockMap.put("batterVoltage",ardTankLockStateResult.getBatterVoltage()); + if(Double.parseDouble(ardTankLockStateResult.getBatterVoltage()) <= lockBatteryVoltage){ + lockMap.put("batterVoltageAlarm",true); + alarmInfo = alarmInfo + "鐢垫睜鐢靛帇浣庝簬" + lockBatteryVoltage + ";"; + }else{ + lockMap.put("batterVoltageAlarm",false); + } + lockMap.put("powerVoltage",ardTankLockStateResult.getPowerVoltage()); + if(Double.parseDouble(ardTankLockStateResult.getPowerVoltage()) <= lockPowerVoltage){ + lockMap.put("powerVoltageAlarm",true); + alarmInfo = alarmInfo + "鐢垫簮鐢靛帇浣庝簬" + lockBatteryVoltage + ";"; + }else{ + lockMap.put("powerVoltageAlarm",false); + } + lockMap.put("uploadTime",ardTankLockStateResult.getUploadTime()); + lockMap.put("uniqueMark",ardTankLockStateResult.getUniqueMark()); + lockMap.put("lockStateMark",ardTankLockStateResult.getLockStateMark()); + if(alarmInfo.equals("")){ + lockMap.put("alarmMark",false); + }else{ + lockMap.put("alarmMark",true); + } + lockMap.put("alarmInfo",alarmInfo); } lockList.add(lockMap); } -- Gitblit v1.9.3