From 93cecfaf0fae080ebd0212adea714726290d0d4a Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期四, 01 八月 2024 20:36:54 +0800 Subject: [PATCH] 电磁锁串口协议发送加入线程排队提交 --- ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java | 75 +++++++++++++++++++++++++++++++------ 1 files changed, 62 insertions(+), 13 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 c27a0a6..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 @@ -28,6 +28,7 @@ import org.springframework.stereotype.Service; import java.util.*; +import java.util.concurrent.TimeUnit; /** * @author Administrator @@ -194,13 +195,21 @@ @Override public List<CarVo> queryCar(List<String> list) { - QueryWrapper<ArdSyCar> queryWrapper = new 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.ne("reserved_1","").notIn("car_id",list); + QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>(); + queryWrapper.notIn("car_id",list); + ardSyCars = ardSyCarMapper.selectList(queryWrapper); }else { - queryWrapper.ne("reserved_1",""); + ardSyCars = ardSyCarMapper.selectList(null); } - List<ArdSyCar> ardSyCars = ardSyCarMapper.selectList(queryWrapper); return carAnalysis(ardSyCars); } @@ -366,22 +375,62 @@ // 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; + + } + + @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