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