aijinhui
2024-01-12 08826bc3017e9f25edc4b9b95ca365169846d1e9
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
@@ -28,11 +28,12 @@
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 {
@@ -177,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;
    }
@@ -192,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);
    }
@@ -271,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();
@@ -295,6 +311,8 @@
                    emqClient.connect();
                    emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
//                        mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"开锁:"+currents);
//                    long startTime = System.currentTimeMillis();  // 获取循环开始时间
//                    long endTime = startTime + 30000;  // 设置循环结束时间为开始时间加上5秒钟
                    while(true){
                        ArdSyCarLock ardSyCarLock1 = getCurrentInfo(ardSyCarRtu.getId(),currents);
                        Double currentInfo1 = ardSyCarLock1.getCurrentInfo();
@@ -311,11 +329,6 @@
//                map.put("A02", 100000);//断开第二路继电器
//                map.put("res", String.valueOf(System.currentTimeMillis()));
//                String mapString = JSON.toJSONString(map);
                String mapString = "{\"A01\":100000,\"A02\":100000,\"res\":\""+String.valueOf(System.currentTimeMillis())+"\"}";
                System.out.println("施封:"+mapString);
                EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
                emqClient.connect();
                emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
                return AjaxResult.success("施封命令发生成功!");
//                    return AjaxResult.success(mqttOnce.publishCar(rtuTypeParam.getCarId(),ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"施封"));
            }
@@ -362,22 +375,34 @@
//        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
//        mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"+UUID.randomUUID());
//        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
        try {
            while(true){
                TimeUnit.SECONDS.sleep(5);
                break;
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        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(locks.size()>0){
            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);
            }
            return AjaxResult.success(locks);
        }else {
            return AjaxResult.error("无该车的锁数据!");
        }
        return locks;
    }