From a2ab48f60c56611cee0d57634706c71ef08b2f8d Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期三, 22 十一月 2023 11:57:59 +0800 Subject: [PATCH] 获取电磁锁地址 --- ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java | 110 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 89 insertions(+), 21 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 7f25a5c..a761b97 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; @@ -16,14 +17,14 @@ 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.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.*; /** @@ -41,6 +42,8 @@ private ArdSyCarRtuMapper rtuMapper; @Autowired private ArdSyCarLockMapper lockMapper; + @Autowired + private SysConfigMapper configMapper; @Override @@ -74,8 +77,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; } @@ -89,6 +93,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); @@ -235,15 +244,19 @@ QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("carId",rtuTypeParam.getCarId()); ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper); - MqttOnce mqttOnce = new MqttOnce(); //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); try { - return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"瑙e皝")); + MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); + mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change"); + mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); + return AjaxResult.success("瑙e皝鍛戒护鍙戦�佹垚鍔燂紒"); +// return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"瑙e皝")); } catch (MqttException e) { log.debug("瑙e皝鎸囦护鍙戠敓澶辫触"+e); } @@ -271,15 +284,19 @@ Map<String,Object> map = new HashMap(); map.put(key, 0.01); map.put("res", String.valueOf(System.currentTimeMillis())); + String mapString = JSON.toJSONString(map); try { - mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"寮�閿侊細"+currents); + MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); + mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change"); + mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); +// 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); Double currentInfo1 = ardSyCarLock1.getCurrentInfo(); - if(currentInfo1.equals(4.00)){ + if(currentInfo1.equals(4.00) || currentInfo1.equals(4)){ lockCloseNum +=1; break; } @@ -291,8 +308,13 @@ map.put("A01", 100000);//鏂紑绗竴璺户鐢靛櫒 map.put("A02", 100000);//鏂紑绗簩璺户鐢靛櫒 map.put("res", String.valueOf(System.currentTimeMillis())); + String mapString = JSON.toJSONString(map); try { - return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"鏂藉皝")); + MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); + mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change"); + mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); + return AjaxResult.success("鏂藉皝鍛戒护鍙戠敓鎴愬姛锛�"); +// return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"鏂藉皝")); } catch (MqttException e) { log.debug("鏂藉皝鎸囦护鍙戠敓澶辫触"+e); } @@ -302,7 +324,7 @@ } @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); @@ -312,10 +334,10 @@ AjaxResult.error(0,"璇ラ攣澶勪簬瑙e皝鐘舵��,杩滅▼鏃犳硶鎿嶆帶,璇峰厛鎵ц鏂藉皝鎿嶄綔!"); } String key = ""; - Double 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(); @@ -329,13 +351,52 @@ 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); + MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); + mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"); + mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); + return AjaxResult.success("寮�鍏抽攣鍛戒护鍙戦�佹垚鍔�,鍙戦�佽繘搴︿负"+lockTypeParam.getNum()); +// QueryWrapper<SysConfig> queryWrapper1 = new QueryWrapper<>(); +// queryWrapper1.eq("config_key","ElectromagneticLockUrl"); +// SysConfig sysConfig = configMapper.selectOne(queryWrapper1); +// String url = ""; +// if(sysConfig!=null){ +// url = sysConfig.getConfigValue(); +// }else { +// return AjaxResult.error("閰嶇疆琛ㄦ棤鍦板潃鏁版嵁"); +// } +// MqttConsumer mqttConsumer = new MqttConsumer(); +// mqttConsumer.getClientCar(url,lockTypeParam.getCarId()); +// mqttConsumer.publishCar(1,false,ardSyCarRtu.getTopicPublish(),mapString); +// mqttConsumer.disConnect(); +// return AjaxResult.success(); + //MqttOnce瀹㈡埛绔�-----寮�濮� +// MqttOnce mqttOnce = new MqttOnce(); +// return AjaxResult.success(mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(), mapString,"寮�鍏抽攣鎸囦护"+lockTypeParam.getNum())); + //MqttOnce瀹㈡埛绔�-----缁撴潫 + //EmqClient瀹㈡埛绔�-----寮�濮� +// EmqClient emqClient = new EmqClient("tcp://112.98.126.2:1883",String.valueOf(UUID.randomUUID())); +// emqClient.connect("admin","xzx12345"); +// log.info("涓婚锛�"+ardSyCarRtu.getTopicPublish()); +// emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false); +// System.out.println("////////////////////"); +// System.out.println(mapString); +// emqClient.disConnect(); +// return AjaxResult.success(ardSyCarRtu.getTopicPublish()+"寮�鍏抽攣鎸囦护"+lockTypeParam.getNum()+"鍙戝竷鎴愬姛锛�"); + //EmqClient瀹㈡埛绔�-----缁撴潫 + //demo------寮�濮� +// EmqClient emqClient = new EmqClient("tcp://112.98.126.2:1883","mqttTestp"); +// emqClient.connect("admin","xzx12345"); +// Map<String,Object> map = new HashMap(); +// map.put("D03", 99.99);//鑼冨洿鏄�0.01鍒�99.99 +// map.put("res", String.valueOf(new Date().getTime())); +// System.out.println(map); +// String msg = JSON.toJSONString(map); +// emqClient.publish("/p14/set/",msg,QosEnum.QoS2,false); +// emqClient.disConnect(); +// return AjaxResult.success(); + //demo----缁撴潫 } @Override @@ -343,7 +404,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