zhangnaisong
2024-08-01 2799314298467be9ed68d9e19891e35cb3c3edad
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
@@ -375,15 +375,17 @@
//        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
//        mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"+UUID.randomUUID());
//        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
        try {
            while(true){
                TimeUnit.SECONDS.sleep(5);
        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;
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
//                TimeUnit.SECONDS.sleep(5);
        }
        return AjaxResult.success("开关锁命令发送成功,发送进度为"+lockTypeParam.getNum());
        return AjaxResult.success("开关锁成功,进度为"+lockTypeParam.getNum());
    }
    @Override
@@ -391,21 +393,43 @@
        QueryWrapper<ArdSyCarRtu> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("car_id",carId);
        ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
        List<ArdSyCarLock> locks = lockMapper.lockList(ardSyCarRtu.getId());
        if(locks.size()>0){
            for (int i = 0; i < locks.size(); i++) {
                ArdSyCarLock ardSyCarLock = locks.get(i);
                double info = ardSyCarLock.getCurrentInfo();
                if(Double.isNaN(info)){
                    ardSyCarLock.setCurrentInfo(0.0);
                }else {
                    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("无该车的锁数据!");
            }
            return AjaxResult.success(locks);
        }else{
            return AjaxResult.error("该车无RTU!");
        }
    }
    @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 AjaxResult.error("无该车的锁数据!");
            return false;
        }
    }