From 98d0a71132915ab20f6d4ade6164a21aa16001ba Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期三, 13 十二月 2023 17:33:36 +0800 Subject: [PATCH] 飞机 --- ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java | 146 ++++++++++++++++++++++++++++++------------------ 1 files changed, 92 insertions(+), 54 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 0a39c98..2eab8d3 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 @@ -63,8 +69,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); @@ -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); @@ -181,7 +193,11 @@ @Override public List<CarVo> queryCar(List<String> list) { QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>(); - queryWrapper.ne("reserved_1","").notIn("car_id",list); + if(list.size()>0){ + queryWrapper.ne("reserved_1","").notIn("car_id",list); + }else { + queryWrapper.ne("reserved_1",""); + } List<ArdSyCar> ardSyCars = ardSyCarMapper.selectList(queryWrapper); return carAnalysis(ardSyCars); } @@ -196,21 +212,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 +246,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 +272,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 +286,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 +306,71 @@ 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(); - if(relay.equals("1")){ - AjaxResult.error(0,"璇ラ攣澶勪簬瑙e皝鐘舵��,杩滅▼鏃犳硶鎿嶆帶,璇峰厛鎵ц鏂藉皝鎿嶄綔!"); + Integer relay = ardSyCarLock.getRelayInfo(); + if(relay!=null){ + if(relay.equals("1")){ + 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); + 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 + public List<ArdSyCarLock> 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); } - return AjaxResult.success(); + return locks; } -- Gitblit v1.9.3