aijinhui
2023-12-13 98d0a71132915ab20f6d4ade6164a21aa16001ba
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
@@ -19,7 +19,9 @@
import com.ruoyi.sy.vo.RtuVo;
import com.ruoyi.system.mapper.SysConfigMapper;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.utils.qymqtt.MqttCustomerClient;
import com.ruoyi.utils.qymqtt.newM.EmqClient;
import com.ruoyi.utils.qymqtt.newM.QosEnum;
import com.ruoyi.utils.qymqtt.oldM.MqttCustomerClient;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.springframework.beans.factory.annotation.Autowired;
@@ -67,8 +69,8 @@
        ArdSyCarRtu ardSyCarRtu = new ArdSyCarRtu();
        ardSyCarRtu.setId(String.valueOf(UUID.randomUUID()));
        ardSyCarRtu.setCarId(addRtuParam.getCarId());
        ardSyCarRtu.setTopicPublish("/p"+addRtuParam.getCarId()+"/");
        ardSyCarRtu.setTopicSubscribe("/p"+addRtuParam.getCarId()+"/set/");
        ardSyCarRtu.setTopicPublish("/p"+addRtuParam.getCarId()+"/set/");
        ardSyCarRtu.setTopicSubscribe("/p"+addRtuParam.getCarId()+"/");
        ardSyCarRtu.setInstallType(addRtuParam.getInstallType());
        ardSyCarRtu.setUnloadType(addRtuParam.getUnloadType());
        int num = rtuMapper.insert(ardSyCarRtu);
@@ -191,7 +193,11 @@
    @Override
    public List<CarVo> queryCar(List<String> list) {
        QueryWrapper<ArdSyCar> queryWrapper = new QueryWrapper<>();
        queryWrapper.ne("reserved_1","").notIn("car_id",list);
        if(list.size()>0){
            queryWrapper.ne("reserved_1","").notIn("car_id",list);
        }else {
            queryWrapper.ne("reserved_1","");
        }
        List<ArdSyCar> ardSyCars = ardSyCarMapper.selectList(queryWrapper);
        return carAnalysis(ardSyCars);
    }
@@ -251,15 +257,11 @@
            map.put("A02", 110000);//导通第二路继电器
            map.put("res", String.valueOf(System.currentTimeMillis()));
            String mapString = JSON.toJSONString(map);
            try {
                MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
                mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change");
                mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
                return AjaxResult.success("解封命令发送成功!");
            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)),"解封"));
            } catch (MqttException e) {
                log.debug("解封指令发生失败"+e);
            }
        }
        //0施封
        if(rtuTypeParam.getType()==0){
@@ -285,14 +287,10 @@
                    map.put(key, 0.01);
                    map.put("res", String.valueOf(System.currentTimeMillis()));
                    String mapString = JSON.toJSONString(map);
                    try {
                        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
                        mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change");
                        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
                    EmqClient emqClient = new EmqClient(rtuTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
                    emqClient.connect();
                    emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
//                        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);
                        Double currentInfo1 = ardSyCarLock1.getCurrentInfo();
@@ -309,15 +307,11 @@
                map.put("A02", 100000);//断开第二路继电器
                map.put("res", String.valueOf(System.currentTimeMillis()));
                String mapString = JSON.toJSONString(map);
                try {
                    MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
                    mqttCustomerClient.connect(rtuTypeParam.getCarId()+"change");
                    mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
                    return AjaxResult.success("施封命令发生成功!");
                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)),"施封"));
                } catch (MqttException e) {
                    log.debug("施封指令发生失败"+e);
                }
            }
        }
        return AjaxResult.success();
@@ -330,8 +324,10 @@
        ArdSyCarRtu ardSyCarRtu = rtuMapper.selectOne(queryWrapper);
        ArdSyCarLock ardSyCarLock = lockMapper.selectById(lockTypeParam.getLockId());
        Integer relay = ardSyCarLock.getRelayInfo();
        if(relay.equals("1")){
            AjaxResult.error(0,"该锁处于解封状态,远程无法操控,请先执行施封操作!");
        if(relay!=null){
            if(relay.equals("1")){
                return AjaxResult.error(0,"该锁处于解封状态,远程无法操控,请先执行施封操作!");
            }
        }
        String key = "";
        String currents = ardSyCarLock.getCurrents();
@@ -340,63 +336,26 @@
        }else if(currents.equals("C02")){
            key = "D04";
        }
        Number lockState = (Number) lockTypeParam.getNum();
        if(lockState.equals(100)){
        double lockState = lockTypeParam.getNum();
        if(lockState==100){
            lockState = 99.99;
        }else if(lockState.equals(0)){
        }else if(lockState==0){
            lockState = 0.01;
        }else{
            lockState = lockState.doubleValue() + 0.01;
            lockState = lockState + 0.01;
        }
        Map<String,Object> map = new HashMap();
        map.put(key, lockState);//范围是0.01到99.99
        map.put("res", String.valueOf(System.currentTimeMillis()));
        String mapString = JSON.toJSONString(map);
        System.out.println(mapString);
        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
        mqttCustomerClient.connect(lockTypeParam.getCarId()+"change");
        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
        EmqClient emqClient = new EmqClient(lockTypeParam.getCarId()+"mqttPublish"+UUID.randomUUID());
        emqClient.connect();
        emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
//        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
//        mqttCustomerClient.connect(lockTypeParam.getCarId()+"change"+UUID.randomUUID());
//        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
        return AjaxResult.success("开关锁命令发送成功,发送进度为"+lockTypeParam.getNum());
//        QueryWrapper<SysConfig> queryWrapper1 = new QueryWrapper<>();
//        queryWrapper1.eq("config_key","ElectromagneticLockUrl");
//        SysConfig sysConfig = configMapper.selectOne(queryWrapper1);
//        String url = "";
//        if(sysConfig!=null){
//            url = sysConfig.getConfigValue();
//        }else {
//            return AjaxResult.error("配置表无地址数据");
//        }
//        MqttConsumer mqttConsumer = new MqttConsumer();
//        mqttConsumer.getClientCar(url,lockTypeParam.getCarId());
//        mqttConsumer.publishCar(1,false,ardSyCarRtu.getTopicPublish(),mapString);
//        mqttConsumer.disConnect();
//        return AjaxResult.success();
        //MqttOnce客户端-----开始
//        MqttOnce mqttOnce = new MqttOnce();
//        return AjaxResult.success(mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(), mapString,"开关锁指令"+lockTypeParam.getNum()));
        //MqttOnce客户端-----结束
        //EmqClient客户端-----开始
//        EmqClient emqClient = new EmqClient("tcp://112.98.126.2:1883",String.valueOf(UUID.randomUUID()));
//        emqClient.connect("admin","xzx12345");
//        log.info("主题:"+ardSyCarRtu.getTopicPublish());
//        emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
//        System.out.println("////////////////////");
//        System.out.println(mapString);
//        emqClient.disConnect();
//        return AjaxResult.success(ardSyCarRtu.getTopicPublish()+"开关锁指令"+lockTypeParam.getNum()+"发布成功!");
        //EmqClient客户端-----结束
        //demo------开始
//        EmqClient emqClient = new EmqClient("tcp://112.98.126.2:1883","mqttTestp");
//        emqClient.connect("admin","xzx12345");
//        Map<String,Object> map = new HashMap();
//        map.put("D03", 99.99);//范围是0.01到99.99
//        map.put("res", String.valueOf(new Date().getTime()));
//        System.out.println(map);
//        String msg = JSON.toJSONString(map);
//        emqClient.publish("/p14/set/",msg,QosEnum.QoS2,false);
//        emqClient.disConnect();
//        return AjaxResult.success();
        //demo----结束
    }
    @Override