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 | 124 ++++++++++++++++++++++++++++++++++++++---
1 files changed, 114 insertions(+), 10 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 f882b22..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,26 +2,28 @@
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;
+import com.ruoyi.sy.domain.ArdSyCar;
import com.ruoyi.sy.domain.ArdSyUser;
import com.ruoyi.sy.domain.ArdTankLockState;
-import com.ruoyi.sy.mapper.ArdSyUserMapper;
-import com.ruoyi.sy.mapper.ArdTankWallLockMapper;
-import com.ruoyi.sy.mapper.ArdTankWallLockTemporaryMapper;
+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;
import java.util.stream.Collectors;
-import com.ruoyi.sy.mapper.ArdTankLockMapper;
import com.ruoyi.sy.domain.ArdTankLock;
import com.ruoyi.sy.service.IArdTankLockService;
import javax.annotation.Resource;
+
+import static com.ruoyi.utils.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
/**
* 鐢电閿丼ervice涓氬姟灞傚鐞�
@@ -45,6 +47,12 @@
@Resource
private SysConfigMapper sysConfigMapper;
+
+ @Resource
+ private ArdSyCarMapper ardSyCarMapper;
+
+ @Resource
+ private ArdTankLockStateMapper ardTankLockStateMapper;
@Resource
private SYClient sYClient;
@@ -461,10 +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();
@@ -474,7 +479,106 @@
String passwordMd5 = DigestUtils.md5Hex(syPassword);
Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, syUserId);
String sessionId = (String) LogInResult.get("sessionId");
- List<ArdTankLock> ardTankLockList = ardTankLockMapper.getLockByCarId(carId);
- Map<String,Object> syResult = sYClient.getCarNearPositionByCarId(syURL, carId, ardSyUser.getUserId(), 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.split("_")[0]);
+ for(ArdSyCar ardSyCar : ardSyCarResult){
+ Map<String,Object> map = new HashMap();
+ map.put("id",ardSyCar.getId());
+ map.put("carId",ardSyCar.getCarId());
+ map.put("carModel",ardSyCar.getCarModel());
+ 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