From 8a2bfef1ebf3a1e24f770d3481ff82856f14d9e0 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期五, 24 十一月 2023 15:47:42 +0800
Subject: [PATCH] 设备运行状态
---
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java | 128 +++++++++++++++++++++++++-----------------
1 files changed, 76 insertions(+), 52 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
index 6f80f7c..e9dab35 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.sy.service.impl;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -12,17 +13,20 @@
import com.ruoyi.sy.mapper.ArdSyCarRtuMapper;
import com.ruoyi.sy.param.AddRtuParam;
import com.ruoyi.sy.param.LockTypeParam;
+import com.ruoyi.sy.param.RtuTypeParam;
import com.ruoyi.sy.service.ArdSyCarLockService;
import com.ruoyi.sy.vo.CarVo;
import com.ruoyi.sy.vo.RtuVo;
+import com.ruoyi.system.mapper.SysConfigMapper;
import com.ruoyi.system.mapper.SysDeptMapper;
-import com.ruoyi.utils.mqtt.MqttOnce;
+import com.ruoyi.utils.qymqtt.newM.EmqClient;
+import com.ruoyi.utils.qymqtt.newM.QosEnum;
+import com.ruoyi.utils.qymqtt.oldM.MqttCustomerClient;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.text.DecimalFormat;
import java.util.*;
/**
@@ -40,6 +44,8 @@
private ArdSyCarRtuMapper rtuMapper;
@Autowired
private ArdSyCarLockMapper lockMapper;
+ @Autowired
+ private SysConfigMapper configMapper;
@Override
@@ -73,8 +79,9 @@
ArdSyCar ardSyCar = ardSyCarMapper.selectOne(queryWrapper);
ardSyCar.setReserved1(ardSyCarRtu.getId());
ardSyCarMapper.updateById(ardSyCar);
- MqttOnce mqttOnce = new MqttOnce();
- mqttOnce.subscribeCar(ardSyCarRtu);
+ MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
+ mqttCustomerClient.connect(addRtuParam.getCarId()+"mqtt");
+ mqttCustomerClient.subscribe(ardSyCarRtu.getTopicSubscribe());
return num;
}
@@ -88,6 +95,11 @@
@Override
public int delCar(String id) {
+ ArdSyCarRtu ardSyCarRtu = rtuMapper.selectById(id);
+ String subscribe = ardSyCarRtu.getTopicSubscribe();
+ MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
+ mqttCustomerClient.connect(ardSyCarRtu.getCarId()+"del");
+ mqttCustomerClient.unSubscribe(subscribe);
rtuMapper.deleteById(id);
QueryWrapper<ArdSyCarLock> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("rtu_id",id);
@@ -196,21 +208,23 @@
@Override
public List<ArdSyCarLock> data(String msg) {
- String pattern = "0.00"; // 鎸囧畾淇濈暀涓や綅灏忔暟鐨勬牸寮�
- DecimalFormat decimalFormat = new DecimalFormat(pattern); //
+// String pattern = "0.00"; // 鎸囧畾淇濈暀涓や綅灏忔暟鐨勬牸寮�
+// DecimalFormat decimalFormat = new DecimalFormat(pattern); //
JSONObject jsonObject = JSONObject.parseObject(msg);
List<ArdSyCarLock> lockList = new ArrayList<>();
ArdSyCarLock ardSyCarLock1 = new ArdSyCarLock();
ardSyCarLock1.setRelay("A01");
- ardSyCarLock1.setRelayInfo(String.valueOf(jsonObject.getInteger("A01")));
+// ardSyCarLock1.setRelayInfo(String.valueOf(jsonObject.getInteger("A01")));
+ ardSyCarLock1.setRelayInfo(jsonObject.getInteger("A01"));
ardSyCarLock1.setCurrents("C01");
- ardSyCarLock1.setCurrentInfo(decimalFormat.format(jsonObject.getDouble("C01")));
+// ardSyCarLock1.setCurrentInfo(decimalFormat.format(jsonObject.getDouble("C01")));
+ ardSyCarLock1.setCurrentInfo(jsonObject.getDouble("C01"));
lockList.add(ardSyCarLock1);
ArdSyCarLock ardSyCarLock2 = new ArdSyCarLock();
ardSyCarLock2.setRelay("A02");
- ardSyCarLock2.setRelayInfo(String.valueOf(jsonObject.getInteger("A02")));
+ ardSyCarLock2.setRelayInfo(jsonObject.getInteger("A02"));
ardSyCarLock2.setCurrents("C02");
- ardSyCarLock2.setCurrentInfo(decimalFormat.format(jsonObject.getDouble("C02")));
+ ardSyCarLock2.setCurrentInfo(jsonObject.getDouble("C02"));
lockList.add(ardSyCarLock2);
return lockList;
}
@@ -228,25 +242,25 @@
}
@Override
- public AjaxResult seal(LockTypeParam lockTypeParam) {
+ public AjaxResult seal(RtuTypeParam rtuTypeParam) {
QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("carId",lockTypeParam.getCarId());
+ queryWrapper.eq("carId",rtuTypeParam.getCarId());
ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
- MqttOnce mqttOnce = new MqttOnce();
//1瑙e皝
- if(lockTypeParam.getType()==1){
+ if(rtuTypeParam.getType()==1){
Map<String,Object> map = new HashMap<>();
map.put("A01", 110000);//瀵奸�氱涓�璺户鐢靛櫒
map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣�
map.put("res", String.valueOf(System.currentTimeMillis()));
- try {
- return AjaxResult.success(mqttOnce.publishCar(lockTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"瑙e皝"));
- } catch (MqttException e) {
- log.debug("瑙e皝鎸囦护鍙戠敓澶辫触"+e);
- }
+ String mapString = JSON.toJSONString(map);
+ EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+ emqClient.connect();
+ emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+ return AjaxResult.success("瑙e皝鍛戒护鍙戦�佹垚鍔燂紒");
+// return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"瑙e皝"));
}
//0鏂藉皝
- if(lockTypeParam.getType()==0){
+ if(rtuTypeParam.getType()==0){
//閿佸紑鍏崇姸鎬�
int lockCloseNum = 0;
//鏌ヨ閿佷俊鎭�
@@ -254,9 +268,9 @@
for (int j = 0; j < ardSyCarLocks.size(); j++) {
ArdSyCarLock ardSyCarLock = ardSyCarLocks.get(j);
String currents = ardSyCarLock.getCurrents();
- String currentInfo = ardSyCarLock.getCurrentInfo();
+ Double currentInfo = ardSyCarLock.getCurrentInfo();
//鐢垫祦鍊间负4.0鏄叧閿佺姸鎬�
- if(currentInfo.equals(4.00)){
+ if(currentInfo.equals(4.00) || currentInfo.equals(4)){
lockCloseNum += 1;
}else {
String key = "";
@@ -268,15 +282,15 @@
Map<String,Object> map = new HashMap();
map.put(key, 0.01);
map.put("res", String.valueOf(System.currentTimeMillis()));
- try {
- mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"寮�閿侊細"+currents);
- } catch (MqttException e) {
- log.debug("寮�閿佹寚浠ゅ彂鐢熷け璐�"+e);
- }
+ String mapString = JSON.toJSONString(map);
+ EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+ emqClient.connect();
+ emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+// mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"寮�閿侊細"+currents);
while(true){
ArdSyCarLock ardSyCarLock1 = getCurrentInfo(ardSyCarRtu.getId(),currents);
- String currentInfo1 = ardSyCarLock1.getCurrentInfo();
- if(currentInfo1.equals(4.00)){
+ Double currentInfo1 = ardSyCarLock1.getCurrentInfo();
+ if(currentInfo1.equals(4.00) || currentInfo1.equals(4)){
lockCloseNum +=1;
break;
}
@@ -288,51 +302,54 @@
map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒
map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
map.put("res", String.valueOf(System.currentTimeMillis()));
- try {
- return AjaxResult.success(mqttOnce.publishCar(lockTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"鏂藉皝"));
- } catch (MqttException e) {
- log.debug("鏂藉皝鎸囦护鍙戠敓澶辫触"+e);
- }
+ String mapString = JSON.toJSONString(map);
+ EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+ emqClient.connect();
+ emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+ return AjaxResult.success("鏂藉皝鍛戒护鍙戠敓鎴愬姛锛�");
+// return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"鏂藉皝"));
}
}
return AjaxResult.success();
}
@Override
- public AjaxResult onOff(LockTypeParam lockTypeParam) {
+ public AjaxResult onOff(LockTypeParam lockTypeParam) throws MqttException {
QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("car_id",lockTypeParam.getCarId());
ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
ArdSyCarLock ardSyCarLock = lockMapper.selectById(lockTypeParam.getLockId());
- String relay = ardSyCarLock.getRelayInfo();
+ Integer relay = ardSyCarLock.getRelayInfo();
if(relay.equals("1")){
- AjaxResult.error(0,"璇ラ攣澶勪簬瑙e皝鐘舵��,杩滅▼鏃犳硶鎿嶆帶,璇峰厛鎵ц鏂藉皝鎿嶄綔!");
+ return AjaxResult.error(0,"璇ラ攣澶勪簬瑙e皝鐘舵��,杩滅▼鏃犳硶鎿嶆帶,璇峰厛鎵ц鏂藉皝鎿嶄綔!");
}
String key = "";
- String currentInfo = ardSyCarLock.getCurrentInfo();
- if(currentInfo.equals("C01")){
+ String currents = ardSyCarLock.getCurrents();
+ if(currents.equals("C01")){
key = "D03";
- }else if(currentInfo.equals("C02")){
+ }else if(currents.equals("C02")){
key = "D04";
}
- Number lockState = (Number) lockTypeParam.getNum();
- if(lockState.equals(100)){
+ double lockState = lockTypeParam.getNum();
+ if(lockState==100){
lockState = 99.99;
- }else if(lockState.equals(0)){
+ }else if(lockState==0){
lockState = 0.01;
}else{
- lockState = lockState.doubleValue() + 0.01;
+ lockState = lockState + 0.01;
}
Map<String,Object> map = new HashMap();
map.put(key, lockState);//鑼冨洿鏄�0.01鍒�99.99
map.put("res", String.valueOf(System.currentTimeMillis()));
- MqttOnce mqttOnce = new MqttOnce();
- try {
- return AjaxResult.success(mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"寮�鍏抽攣鎸囦护"+lockState));
- } catch (MqttException e) {
- log.debug("寮�鍏抽攣鎸囦护鍙戦�佸け璐�"+e);
- }
- return AjaxResult.success();
+ String mapString = JSON.toJSONString(map);
+ System.out.println(mapString);
+ EmqClient emqClient = new EmqClient(lockTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+ emqClient.connect();
+ emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+// MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
+// mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"+UUID.randomUUID());
+// mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
+ return AjaxResult.success("寮�鍏抽攣鍛戒护鍙戦�佹垚鍔�,鍙戦�佽繘搴︿负"+lockTypeParam.getNum());
}
@Override
@@ -340,7 +357,14 @@
QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("car_id",carId);
ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
- return lockMapper.lockList(ardSyCarRtu.getId());
+ List<ArdSyCarLock> locks = lockMapper.lockList(ardSyCarRtu.getId());
+ for (int i = 0; i < locks.size(); i++) {
+ ArdSyCarLock ardSyCarLock = locks.get(i);
+ double info = ardSyCarLock.getCurrentInfo();
+ int d = (int) ((int)(info*150/138.3 - 4)/0.16);
+ ardSyCarLock.setCurrentInfo((double) d);
+ }
+ return locks;
}
--
Gitblit v1.9.3