From 0771b90c0e49714e1682dc133d1bebafb545dd5a Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期六, 02 三月 2024 19:45:12 +0800
Subject: [PATCH] app无人机航线管理提交
---
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java | 129 +++++++++++++++++++++++++++++-------------
1 files changed, 89 insertions(+), 40 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 e9dab35..190dc44 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
@@ -28,11 +28,12 @@
import org.springframework.stereotype.Service;
import java.util.*;
+import java.util.concurrent.TimeUnit;
/**
* @author Administrator
*/
-@Slf4j
+@Slf4j(topic = "mqttCar")
@Service
public class ArdSyCarLockServiceImpl implements ArdSyCarLockService {
@@ -69,8 +70,8 @@
ArdSyCarRtu ardSyCarRtu = new ArdSyCarRtu();
ardSyCarRtu.setId(String.valueOf(UUID.randomUUID()));
ardSyCarRtu.setCarId(addRtuParam.getCarId());
- ardSyCarRtu.setTopicPublish("/p"+addRtuParam.getCarId()+"/");
- ardSyCarRtu.setTopicSubscribe("/p"+addRtuParam.getCarId()+"/set/");
+ ardSyCarRtu.setTopicPublish("/p"+addRtuParam.getCarId()+"/set/");
+ ardSyCarRtu.setTopicSubscribe("/p"+addRtuParam.getCarId()+"/");
ardSyCarRtu.setInstallType(addRtuParam.getInstallType());
ardSyCarRtu.setUnloadType(addRtuParam.getUnloadType());
int num = rtuMapper.insert(ardSyCarRtu);
@@ -177,6 +178,8 @@
rtuVo.setRtu(ardSyCar.getReserved1());
rtuVo.setTopicPublish(ardSyCarRtu.getTopicPublish());
rtuVo.setTopicSubscribe(ardSyCarRtu.getTopicSubscribe());
+ rtuVo.setInstallType(ardSyCarRtu.getInstallType());
+ rtuVo.setUnloadType(ardSyCarRtu.getUnloadType());
return rtuVo;
}
@@ -192,9 +195,21 @@
@Override
public List<CarVo> queryCar(List<String> list) {
- QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>();
- queryWrapper.ne("reserved_1","").notIn("car_id",list);
- List<ArdSyCar> ardSyCars = ardSyCarMapper.selectList(queryWrapper);
+// QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>();
+// if(list.size()>0){
+// queryWrapper.ne("reserved_1","").notIn("car_id",list);
+// }else {
+// queryWrapper.ne("reserved_1","");
+// }
+// List<ArdSyCar> ardSyCars = ardSyCarMapper.selectList(queryWrapper);
+ List<ArdSyCar> ardSyCars = new ArrayList<>();
+ if(list.size()>0){
+ QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>();
+ queryWrapper.notIn("car_id",list);
+ ardSyCars = ardSyCarMapper.selectList(queryWrapper);
+ }else {
+ ardSyCars = ardSyCarMapper.selectList(null);
+ }
return carAnalysis(ardSyCars);
}
@@ -244,15 +259,17 @@
@Override
public AjaxResult seal(RtuTypeParam rtuTypeParam) {
QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("carId",rtuTypeParam.getCarId());
+ queryWrapper.eq("car_id",rtuTypeParam.getCarId());
ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
//1瑙e皝
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()));
- String mapString = JSON.toJSONString(map);
+// Map<String,Object> map = new HashMap<>();
+// map.put("A01", 110000);//瀵奸�氱涓�璺户鐢靛櫒
+// map.put("A02", 110000);//瀵奸�氱浜岃矾缁х數鍣�
+// map.put("res", String.valueOf(System.currentTimeMillis()));
+// String mapString = JSON.toJSONString(map);
+ String mapString = "{\"A01\":110000,\"A02\":110000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
+ log.debug("瑙e皝锛�"+mapString);
EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
emqClient.connect();
emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
@@ -265,6 +282,11 @@
int lockCloseNum = 0;
//鏌ヨ閿佷俊鎭�
List<ArdSyCarLock> ardSyCarLocks = carLock(ardSyCarRtu.getId());
+ String mapString1 = "{\"A01\":100000,\"A02\":100000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
+ System.out.println("鏂藉皝锛�"+mapString1);
+ EmqClient emqClient1 = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
+ emqClient1.connect();
+ emqClient1.publish(ardSyCarRtu.getTopicPublish(),mapString1, QosEnum.QoS2,false);
for (int j = 0; j < ardSyCarLocks.size(); j++) {
ArdSyCarLock ardSyCarLock = ardSyCarLocks.get(j);
String currents = ardSyCarLock.getCurrents();
@@ -279,14 +301,18 @@
}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()));
- String mapString = JSON.toJSONString(map);
+// Map<String,Object> map = new HashMap();
+// map.put(key, 0.01);
+// map.put("res", String.valueOf(System.currentTimeMillis()));
+// String mapString = JSON.toJSONString(map);
+ String mapString = "{\""+key+"\":0.01,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
+ log.debug("鍏抽攣锛�"+mapString);
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);
+// long startTime = System.currentTimeMillis(); // 鑾峰彇寰幆寮�濮嬫椂闂�
+// long endTime = startTime + 30000; // 璁剧疆寰幆缁撴潫鏃堕棿涓哄紑濮嬫椂闂村姞涓�5绉掗挓
while(true){
ArdSyCarLock ardSyCarLock1 = getCurrentInfo(ardSyCarRtu.getId(),currents);
Double currentInfo1 = ardSyCarLock1.getCurrentInfo();
@@ -298,14 +324,11 @@
}
}
if(lockCloseNum == 2){
- Map<String,Object> map = new HashMap<>();
- map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒
- map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
- map.put("res", String.valueOf(System.currentTimeMillis()));
- String mapString = JSON.toJSONString(map);
- EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
- emqClient.connect();
- emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
+// Map<String,Object> map = new HashMap<>();
+// map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒
+// map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒
+// map.put("res", String.valueOf(System.currentTimeMillis()));
+// String mapString = JSON.toJSONString(map);
return AjaxResult.success("鏂藉皝鍛戒护鍙戠敓鎴愬姛锛�");
// return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"鏂藉皝"));
}
@@ -320,8 +343,10 @@
ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
ArdSyCarLock ardSyCarLock = lockMapper.selectById(lockTypeParam.getLockId());
Integer relay = ardSyCarLock.getRelayInfo();
- if(relay.equals("1")){
- return AjaxResult.error(0,"璇ラ攣澶勪簬瑙e皝鐘舵��,杩滅▼鏃犳硶鎿嶆帶,璇峰厛鎵ц鏂藉皝鎿嶄綔!");
+ if(relay!=null){
+ if(relay.equals(1)){
+ return AjaxResult.error(0,"璇ラ攣澶勪簬瑙e皝鐘舵��,杩滅▼鏃犳硶鎿嶆帶,璇峰厛鎵ц鏂藉皝鎿嶄綔!");
+ }
}
String key = "";
String currents = ardSyCarLock.getCurrents();
@@ -338,33 +363,57 @@
}else{
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()));
- String mapString = JSON.toJSONString(map);
- System.out.println(mapString);
+// Map<String,Object> map = new HashMap();
+// map.put(key, lockState);//鑼冨洿鏄�0.01鍒�99.99
+// map.put("res", String.valueOf(System.currentTimeMillis()));
+// String mapString = JSON.toJSONString(map);
+ String mapString = "{\""+key+"\":"+lockState+",\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
+ log.debug("寮�鍏抽攣锛�"+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());
+ int min = lockTypeParam.getNum() -5; int max = lockTypeParam.getNum() +5;
+ while(true){
+ ArdSyCarLock ardSyCarLockLoop = lockMapper.selectById(lockTypeParam.getLockId());
+ Double currentInfo = ardSyCarLockLoop.getCurrentInfo();
+ int d = (int) ((int)(currentInfo*150/138.3 - 4)/0.16);
+ if(d >= min && d <= max){
+ break;
+ }
+// TimeUnit.SECONDS.sleep(5);
+ }
+ return AjaxResult.success("寮�鍏抽攣鎴愬姛,杩涘害涓�"+lockTypeParam.getNum());
}
@Override
- public List<ArdSyCarLock> lockIng(String carId) {
+ public AjaxResult lockIng(String carId) {
QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("car_id",carId);
ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
- 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);
+ if(ardSyCarRtu!=null){
+ List<ArdSyCarLock> locks = lockMapper.lockList(ardSyCarRtu.getId());
+ if(locks.size()>0){
+ for (int i = 0; i < locks.size(); i++) {
+ ArdSyCarLock ardSyCarLock = locks.get(i);
+ if(ardSyCarLock.getCurrentInfo()!=null){
+ double info = ardSyCarLock.getCurrentInfo();
+ int d = (int) ((int)(info*150/138.3 - 4)/0.16);
+ ardSyCarLock.setCurrentInfo((double) d);
+ }else {
+ ardSyCarLock.setCurrentInfo(0.0);
+ }
+ }
+ return AjaxResult.success(locks);
+ }else {
+ return AjaxResult.error("鏃犺杞︾殑閿佹暟鎹紒");
+ }
+ }else{
+ return AjaxResult.error("璇ヨ溅鏃燫TU锛�");
}
- return locks;
+
}
--
Gitblit v1.9.3