From e9582af916d019c4695b0aaf9665039be1bd6ea1 Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期日, 14 一月 2024 14:43:50 +0800 Subject: [PATCH] 开关锁 --- ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java | 42 +++++++++++++++++++++++++++++++++--------- 1 files changed, 33 insertions(+), 9 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 4bb43b6..190dc44 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 @@ -374,22 +375,45 @@ // 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; + } -- Gitblit v1.9.3