From 2799314298467be9ed68d9e19891e35cb3c3edad Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期四, 01 八月 2024 08:14:18 +0800 Subject: [PATCH] 电磁锁动作状态改为操控中...提交 --- ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java | 225 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 122 insertions(+), 103 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 26b9f4d..ad1fbed 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 @@ -19,18 +19,21 @@ import com.ruoyi.sy.vo.RtuVo; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.mapper.SysDeptMapper; -import com.ruoyi.utils.qymqtt.MqttCustomerClient; +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.util.*; +import java.util.concurrent.TimeUnit; /** * @author Administrator */ -@Slf4j +@Slf4j(topic = "mqttCar") @Service public class ArdSyCarLockServiceImpl implements ArdSyCarLockService { @@ -67,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); @@ -175,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; } @@ -190,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); } @@ -242,24 +259,22 @@ @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); - try { - MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); - mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change"); - mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); - return AjaxResult.success("瑙e皝鍛戒护鍙戦�佹垚鍔燂紒"); +// 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); + 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); - } } //0鏂藉皝 if(rtuTypeParam.getType()==0){ @@ -267,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(); @@ -281,18 +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); - try { - MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); - mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change"); - mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); +// 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); - } catch (MqttException e) { - log.debug("寮�閿佹寚浠ゅ彂鐢熷け璐�"+e); - } +// long startTime = System.currentTimeMillis(); // 鑾峰彇寰幆寮�濮嬫椂闂� +// long endTime = startTime + 30000; // 璁剧疆寰幆缁撴潫鏃堕棿涓哄紑濮嬫椂闂村姞涓�5绉掗挓 while(true){ ArdSyCarLock ardSyCarLock1 = getCurrentInfo(ardSyCarRtu.getId(),currents); Double currentInfo1 = ardSyCarLock1.getCurrentInfo(); @@ -304,20 +324,13 @@ } } 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); - try { - MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); - mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change"); - mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString); - return AjaxResult.success("鏂藉皝鍛戒护鍙戠敓鎴愬姛锛�"); +// 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)),"鏂藉皝")); - } catch (MqttException e) { - log.debug("鏂藉皝鎸囦护鍙戠敓澶辫触"+e); - } } } return AjaxResult.success(); @@ -330,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(); @@ -348,70 +363,74 @@ }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); - MqttCustomerClient mqttCustomerClient = new MqttCustomerClient(); - mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"+UUID.randomUUID()); - 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----缁撴潫 +// 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); + 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; + + } + + @Override + public Boolean isLock(String carId) { + QueryWrapper<ArdSyCarRtu> queryWrapperRtu = new QueryWrapper<>(); + queryWrapperRtu.eq("car_id",carId); + ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapperRtu); + if(ardSyCarRtu!=null){ + List<ArdSyCarLock> ardSyCarLocks = lockMapper.lockList(ardSyCarRtu.getId()); + if(ardSyCarLocks.size()>0){ + return true; + }else { + return false; + } + }else { + return false; + } } -- Gitblit v1.9.3