From 675075c8e140ee0882c5277bd68468fe6194b207 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期三, 24 七月 2024 21:41:47 +0800
Subject: [PATCH] 电磁锁实时状态提交

---
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java |  100 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 92 insertions(+), 8 deletions(-)

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 f3eeefd..d68c81b 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
@@ -2,6 +2,7 @@
 
 import java.util.*;
 
+import com.alibaba.fastjson.JSON;
 import com.github.pagehelper.PageHelper;
 import com.ruoyi.common.core.domain.entity.SysConfig;
 import com.ruoyi.common.utils.uuid.IdUtils;
@@ -11,6 +12,7 @@
 import com.ruoyi.sy.mapper.*;
 import com.ruoyi.system.mapper.SysConfigMapper;
 import com.ruoyi.utils.forest.SYClient;
+import com.ruoyi.utils.websocket.util.WebSocketUtils;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.springframework.stereotype.Service;
 
@@ -20,6 +22,8 @@
 import com.ruoyi.sy.service.IArdTankLockService;
 
 import javax.annotation.Resource;
+
+import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
 
 /**
  * 鐢电閿丼ervice涓氬姟灞傚鐞�
@@ -465,7 +469,7 @@
 
     @Override
     public void sendLockState(String userId, String syUserId, String syPassword) {
-        /*List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT");
+        List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT");
         String syURL = "";
         if(syURLResult.size() != 0){
             syURL = syURLResult.get(0).getConfigValue();
@@ -475,10 +479,21 @@
         String passwordMd5 = DigestUtils.md5Hex(syPassword);
         Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, syUserId);
         String sessionId = (String) LogInResult.get("sessionId");
-        Map<String,Object> syResult = sYClient.getCarNearPositionByCarId(syURL, carId, syUserId, sessionId);
+
+        List<SysConfig> lockBatteryVoltageResult = sysConfigMapper.selectByType("lockBatteryVoltage");
+        Integer lockBatteryVoltage = 9;
+        if(!lockBatteryVoltageResult.isEmpty()){
+            lockBatteryVoltage = Integer.parseInt(lockBatteryVoltageResult.get(0).getConfigValue());
+        }
+
+        List<SysConfig> lockPowerVoltageResult = sysConfigMapper.selectByType("lockPowerVoltage");
+        Integer lockPowerVoltage = 5;
+        if(!lockPowerVoltageResult.isEmpty()){
+            lockPowerVoltage = Integer.parseInt(lockPowerVoltageResult.get(0).getConfigValue());
+        }
 
         List<Map<String,Object>> result = new ArrayList();
-        List<ArdSyCar> ardSyCarResult = ardSyCarMapper.selectArdSyCarAndTankLockByUserId(userId);
+        List<ArdSyCar> ardSyCarResult = ardSyCarMapper.selectArdSyCarAndTankLockByUserId(userId.split("_")[0]);
         for(ArdSyCar ardSyCar : ardSyCarResult){
             Map<String,Object> map = new HashMap();
             map.put("id",ardSyCar.getId());
@@ -487,14 +502,83 @@
             map.put("carType",ardSyCar.getCarType());
             map.put("carBrand",ardSyCar.getCarBrand());
             map.put("deptId",ardSyCar.getDeptId());
-
-
-
-
+            map.put("carPicture",ardSyCar.getCarPicture());
+            Map<String,Object> syResult = sYClient.getCarNearPositionByCarId(syURL, ardSyCar.getCarId(), syUserId, sessionId);
+            if(((String)syResult.get("rspCode")).equals("1")){
+                Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0);
+                map.put("carPlate", (String) carMap.get("carPlate"));
+            }
+            List<Map<String,Object>> lockList = new ArrayList();
             List<ArdTankLock> ardTankLockList = ardSyCar.getArdTankLockList();
             for(ArdTankLock ardTankLock : ardTankLockList){
+                Map<String,Object> lockMap = new HashMap();
+                lockMap.put("id",ardTankLock.getId());
+                lockMap.put("lockNum",ardTankLock.getLockNum());
+                lockMap.put("lockName",ardTankLock.getLockName());
+                lockMap.put("imgPositionTop",ardTankLock.getImgPositionTop());
+                lockMap.put("imgPositionLeft",ardTankLock.getImgPositionLeft());
+                lockMap.put("carId",ardTankLock.getCarId());
+                lockMap.put("enable",ardTankLock.getEnable());
+                if(ardTankLock.getRestartState() == null){
+                    lockMap.put("restartState","");
+                }else{
+                    lockMap.put("restartState",ardTankLock.getRestartState());
+                }
+                if(ardTankLock.getOnlineTime() == null){
+                    lockMap.put("onlineTime","");
+                }else{
+                    lockMap.put("onlineTime",ardTankLock.getOnlineTime());
+                }
+                Map<String,Object> ardTankLockState = new HashMap();
                 ArdTankLockState ardTankLockStateResult = ardTankLockStateMapper.selectArdTankLockStateByLockIdLimitOne(ardTankLock.getId());
+                if(ardTankLockStateResult == null){
+                    ardTankLockState.put("id","");
+                    ardTankLockState.put("lockId","");
+                    ardTankLockState.put("lockNum","");
+                    ardTankLockState.put("lockState","");
+                    ardTankLockState.put("lockPositionState","");
+                    ardTankLockState.put("lockShellState","");
+                    ardTankLockState.put("restartState","");
+                    ardTankLockState.put("batterVoltage","");
+                    ardTankLockState.put("batterVoltageAlarm",false);
+                    ardTankLockState.put("powerVoltage","");
+                    ardTankLockState.put("powerVoltageAlarm",false);
+                    ardTankLockState.put("uploadTime","");
+                    ardTankLockState.put("uniqueMark","");
+                    ardTankLockState.put("lockStateMark",false);
+                    lockMap.put("ardTankLockState",ardTankLockState);
+                }else{
+                    ardTankLockState.put("id",ardTankLockStateResult.getId());
+                    ardTankLockState.put("lockId",ardTankLockStateResult.getLockId());
+                    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());
+                    ardTankLockState.put("batterVoltage",ardTankLockStateResult.getBatterVoltage());
+                    if(Double.parseDouble(ardTankLockStateResult.getBatterVoltage()) <= lockBatteryVoltage){
+                        ardTankLockState.put("batterVoltageAlarm",true);
+                    }else{
+                        ardTankLockState.put("batterVoltageAlarm",false);
+                    }
+                    ardTankLockState.put("powerVoltage",ardTankLockStateResult.getPowerVoltage());
+                    if(Double.parseDouble(ardTankLockStateResult.getPowerVoltage()) <= lockPowerVoltage){
+                        ardTankLockState.put("powerVoltageAlarm",true);
+                    }else{
+                        ardTankLockState.put("powerVoltageAlarm",false);
+                    }
+                    ardTankLockState.put("uploadTime",ardTankLockStateResult.getUploadTime());
+                    ardTankLockState.put("uniqueMark",ardTankLockStateResult.getUniqueMark());
+                    ardTankLockState.put("lockStateMark",ardTankLockStateResult.getLockStateMark());
+                    lockMap.put("ardTankLockState",ardTankLockState);
+                }
+                lockList.add(lockMap);
             }
-        }*/
+            map.put("lockList",lockList);
+            result.add(map);
+            Map<String,Object> data = new HashMap();
+            data.put("40002",result);
+            WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(userId), JSON.toJSONString(data));
+        }
     }
 }

--
Gitblit v1.9.3