From f4e20b2dc544a188d0591c901022383e84fa8e9e Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期一, 13 十一月 2023 17:31:03 +0800
Subject: [PATCH] 清淤电磁锁
---
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java | 161 +++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 143 insertions(+), 18 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 d2ee258..0a39c98 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
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.sy.domain.ArdSyCar;
import com.ruoyi.sy.domain.ArdSyCarLock;
@@ -10,20 +11,24 @@
import com.ruoyi.sy.mapper.ArdSyCarMapper;
import com.ruoyi.sy.mapper.ArdSyCarRtuMapper;
import com.ruoyi.sy.param.AddRtuParam;
+import com.ruoyi.sy.param.LockTypeParam;
import com.ruoyi.sy.service.ArdSyCarLockService;
import com.ruoyi.sy.vo.CarVo;
import com.ruoyi.sy.vo.RtuVo;
import com.ruoyi.system.mapper.SysDeptMapper;
+import com.ruoyi.utils.mqtt.MqttOnce;
+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.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
+import java.text.DecimalFormat;
+import java.util.*;
/**
* @author Administrator
*/
+@Slf4j
@Service
public class ArdSyCarLockServiceImpl implements ArdSyCarLockService {
@@ -62,12 +67,15 @@
ardSyCarRtu.setTopicSubscribe("/p"+addRtuParam.getCarId()+"/set/");
ardSyCarRtu.setInstallType(addRtuParam.getInstallType());
ardSyCarRtu.setUnloadType(addRtuParam.getUnloadType());
- rtuMapper.insert(ardSyCarRtu);
+ int num = rtuMapper.insert(ardSyCarRtu);
QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("car_id",addRtuParam.getCarId());
ArdSyCar ardSyCar = ardSyCarMapper.selectOne(queryWrapper);
ardSyCar.setReserved1(ardSyCarRtu.getId());
- return ardSyCarMapper.updateById(ardSyCar);
+ ardSyCarMapper.updateById(ardSyCar);
+ MqttOnce mqttOnce = new MqttOnce();
+ mqttOnce.subscribeCar(ardSyCarRtu);
+ return num;
}
@Override
@@ -109,15 +117,15 @@
@Override
public List<ArdSyCarLock> carLock(String rtu) {
- List<ArdSyCarLock> locks = new ArrayList<>();
- try {
- QueryWrapper<ArdSyCarLock> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("rtu_id",rtu);
- locks = lockMapper.selectList(queryWrapper);
- }catch (Exception e){
-
- }
- return locks;
+// List<ArdSyCarLock> locks = new ArrayList<>();
+// try {
+// QueryWrapper<ArdSyCarLock> queryWrapper = new QueryWrapper<>();
+// queryWrapper.eq("rtu_id",rtu);
+// locks = lockMapper.selectList(queryWrapper);
+// }catch (Exception e){
+//
+// }
+ return lockMapper.lockList(rtu);
}
@Override
@@ -188,19 +196,21 @@
@Override
public List<ArdSyCarLock> data(String msg) {
+ 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.setCurrent("C01");
- ardSyCarLock1.setCurrentInfo(String.valueOf(jsonObject.getFloat("C01")));
+ ardSyCarLock1.setCurrents("C01");
+ ardSyCarLock1.setCurrentInfo(decimalFormat.format(jsonObject.getDouble("C01")));
lockList.add(ardSyCarLock1);
ArdSyCarLock ardSyCarLock2 = new ArdSyCarLock();
ardSyCarLock2.setRelay("A02");
ardSyCarLock2.setRelayInfo(String.valueOf(jsonObject.getInteger("A02")));
- ardSyCarLock2.setCurrent("C02");
- ardSyCarLock2.setCurrentInfo(String.valueOf(jsonObject.getFloat("C02")));
+ ardSyCarLock2.setCurrents("C02");
+ ardSyCarLock2.setCurrentInfo(decimalFormat.format(jsonObject.getDouble("C02")));
lockList.add(ardSyCarLock2);
return lockList;
}
@@ -210,6 +220,121 @@
return lockMapper.updateById(ardSyCarLock);
}
+ @Override
+ public ArdSyCarLock getCurrentInfo(String Rtu, String currents) {
+ QueryWrapper<ArdSyCarLock> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("rtu_id",Rtu).eq("currents",currents);
+ return lockMapper.selectOne(queryWrapper);
+ }
+
+ @Override
+ public AjaxResult seal(LockTypeParam lockTypeParam) {
+ QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("carId",lockTypeParam.getCarId());
+ ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
+ MqttOnce mqttOnce = new MqttOnce();
+ //1瑙e皝
+ if(lockTypeParam.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);
+ }
+ }
+ //0鏂藉皝
+ if(lockTypeParam.getType()==0){
+ //閿佸紑鍏崇姸鎬�
+ int lockCloseNum = 0;
+ //鏌ヨ閿佷俊鎭�
+ List<ArdSyCarLock> ardSyCarLocks = carLock(ardSyCarRtu.getId());
+ for (int j = 0; j < ardSyCarLocks.size(); j++) {
+ ArdSyCarLock ardSyCarLock = ardSyCarLocks.get(j);
+ String currents = ardSyCarLock.getCurrents();
+ String currentInfo = ardSyCarLock.getCurrentInfo();
+ //鐢垫祦鍊间负4.0鏄叧閿佺姸鎬�
+ if(currentInfo.equals(4.00)){
+ lockCloseNum += 1;
+ }else {
+ String key = "";
+ if(currents.equals("C01")){
+ key = "D03";
+ }else if(currents.equals("C02")){
+ key = "D04";
+ }
+ 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);
+ }
+ while(true){
+ ArdSyCarLock ardSyCarLock1 = getCurrentInfo(ardSyCarRtu.getId(),currents);
+ String currentInfo1 = ardSyCarLock1.getCurrentInfo();
+ if(currentInfo1.equals(4.00)){
+ lockCloseNum +=1;
+ break;
+ }
+ }
+ }
+ }
+ if(lockCloseNum == 2){
+ Map<String,Object> map = new HashMap<>();
+ 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);
+ }
+ }
+ }
+ return AjaxResult.success();
+ }
+
+ @Override
+ public AjaxResult onOff(LockTypeParam lockTypeParam) {
+ 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();
+ if(relay.equals("1")){
+ AjaxResult.error(0,"璇ラ攣澶勪簬瑙e皝鐘舵��,杩滅▼鏃犳硶鎿嶆帶,璇峰厛鎵ц鏂藉皝鎿嶄綔!");
+ }
+ String key = "";
+ String currentInfo = ardSyCarLock.getCurrentInfo();
+ if(currentInfo.equals("C01")){
+ key = "D03";
+ }else if(currentInfo.equals("C02")){
+ key = "D04";
+ }
+ Number lockState = (Number) lockTypeParam.getNum();
+ if(lockState.equals(100)){
+ lockState = 99.99;
+ }else if(lockState.equals(0)){
+ lockState = 0.01;
+ }else{
+ lockState = lockState.doubleValue() + 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();
+ }
+
//杞﹁締鍒楄〃灏佽
public List<CarVo> carAnalysis(List<ArdSyCar> ardSyCars){
--
Gitblit v1.9.3