aijinhui
2023-11-24 c2e9f82dfe87e9bd967d8445bd4b5b632f3f0d1a
清淤锁重新封装
已添加3个文件
已重命名2个文件
已修改3个文件
362 ■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/EmqClient.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/MessageCallback.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/QosEnum.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/MqttCustomerClient.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/PushCallback.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
@@ -17,7 +17,9 @@
import com.ruoyi.sy.service.*;
import com.ruoyi.sy.service.impl.*;
import com.ruoyi.utils.gps.GeoTools;
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 org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.paho.client.mqttv3.MqttException;
@@ -453,9 +455,9 @@
                    map.put("A02", 110000);//导通第二路继电器
                    map.put("res", String.valueOf(System.currentTimeMillis()));
                    String mapString = com.alibaba.fastjson.JSON.toJSONString(map);
                    MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
                    mqttCustomerClient.connect(carId+"change");
                    mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
                    EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
                    emqClient.connect();
                    emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
                    log.info("车辆"+carId+"解封命令发送成功!");
//                mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"解封");
                }
@@ -484,9 +486,9 @@
                            map.put(key, 0.01);
                            map.put("res", String.valueOf(System.currentTimeMillis()));
                            String mapString = com.alibaba.fastjson.JSON.toJSONString(map);
                            MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
                            mqttCustomerClient.connect(carId+"change");
                            mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
                            EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
                            emqClient.connect();
                            emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
//                        mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"开锁:"+currents);
                            while(true){
                                ArdSyCarLock ardSyCarLock1 = lockService.getCurrentInfo(ardSyCarRtu.getId(),currents);
@@ -504,9 +506,9 @@
                        map.put("A02", 100000);//断开第二路继电器
                        map.put("res", String.valueOf(System.currentTimeMillis()));
                        String mapString = com.alibaba.fastjson.JSON.toJSONString(map);
                        MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
                        mqttCustomerClient.connect(carId+"change");
                        mqttCustomerClient.pushlish(ardSyCarRtu.getTopicPublish(),mapString);
                        EmqClient emqClient = new EmqClient(carId+"mqttPublish"+UUID.randomUUID());
                        emqClient.connect();
                        emqClient.publish(ardSyCarRtu.getTopicPublish(),mapString, QosEnum.QoS2,false);
                        log.info("车辆"+carId+"施封命令发送成功!");
//                    mqttOnce.publishCar(carId,ardSyCarRtu.getTopicPublish(),String.valueOf(new JSONObject(map)),"施封");
                    }
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;
@@ -251,15 +253,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 +283,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 +303,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();
@@ -353,50 +343,13 @@
        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"+UUID.randomUUID());
        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
ard-work/src/main/java/com/ruoyi/utils/qymqtt/AutoMqtt.java
@@ -2,6 +2,8 @@
import com.ruoyi.sy.domain.ArdSyCarRtu;
import com.ruoyi.sy.service.ArdSyCarRtuService;
import com.ruoyi.utils.qymqtt.newM.EmqClient;
import com.ruoyi.utils.qymqtt.newM.QosEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -17,7 +19,7 @@
    @Autowired
    private ArdSyCarRtuService ardSyCarRtuService;
//    @PostConstruct
    @PostConstruct
    public void init() {
//        ArdSyCarRtuService carRtuService = SpringUtils.getBean(ArdSyCarRtuService.class);
//        //获取电磁锁地址
@@ -28,9 +30,13 @@
            String carId = rtu.getCarId();
            String subscribe = rtu.getTopicSubscribe();
            try {
                MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
                mqttCustomerClient.connect(carId+"mqtt"+ UUID.randomUUID());
                mqttCustomerClient.subscribe(subscribe);
//                MqttCustomerClient mqttCustomerClient = new MqttCustomerClient();
//                mqttCustomerClient.connect(carId+"mqtt"+ UUID.randomUUID());
//                mqttCustomerClient.subscribe(subscribe);
                EmqClient emqClient = new EmqClient(carId+"mqttSubscribe");
                emqClient.connect();
                emqClient.subscribe(subscribe, QosEnum.QoS2);
                log.info("订阅主题:"+subscribe);
            }catch (Exception e) {
                e.printStackTrace();
            }
ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/EmqClient.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,115 @@
package com.ruoyi.utils.qymqtt.newM;
import javax.annotation.PreDestroy;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.sy.service.ArdSyCarRtuService;
import org.eclipse.paho.client.mqttv3.IMqttClient;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttClientPersistence;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
public class EmqClient {
    private IMqttClient mqttClient;
    private MessageCallback messageCallback;
    public EmqClient(String clientId){
        ArdSyCarRtuService carRtuService = SpringUtils.getBean(ArdSyCarRtuService.class);
        //获取电磁锁地址
        String mqttUrl = carRtuService.url("ElectromagneticLockUrl");
        MqttClientPersistence mempersitence = new MemoryPersistence();//持久化方式
        try {
            this.mqttClient = new MqttClient(mqttUrl,clientId,mempersitence);//设置连接broker的host及clientId
            this.messageCallback = new MessageCallback();
        } catch (MqttException e) {
            System.out.println("初始化客户端mqttClient对象失败");
            System.out.println("brokerUrl:"+mqttUrl);
            System.out.println("clientId:"+clientId);
            e.getMessage();
        }
    }
    //连接broker
    public void connect(){
        MqttConnectOptions options = new MqttConnectOptions();
        options.setAutomaticReconnect(true);
        options.setUserName("admin");
        options.setPassword("xzx12345".toCharArray());
        options.setCleanSession(true);//设置为临时会话
        mqttClient.setCallback(messageCallback);//设置回调
        try {
            mqttClient.connect(options);
        } catch (MqttException e) {
            System.out.println("mqtt客户端连接服务端失败");
            e.getMessage();
        }
    }
    //断开连接
    @PreDestroy//该注解对象销毁后触发
    public void disConnect(){
        try {
            mqttClient.disconnect();
        } catch (MqttException e) {
            System.out.println("断开连接产生异常");
            e.getMessage();
        }
    }
    //重连
    public void reConnect(){
        try {
            mqttClient.reconnect();
        } catch (MqttException e) {
            System.out.println("重连失败,失败原因");
            e.getMessage();
        }
    }
    //发布消息  ä¼ å‚为主题,消息,等级,是否保留消息
    public void publish(String topic, String msg, QosEnum qos, boolean retain){
        MqttMessage mqttMessage = new MqttMessage();
        mqttMessage.setPayload(msg.getBytes());
        mqttMessage.setQos(qos.value());
        mqttMessage.setRetained(retain);
        try {
            mqttClient.publish(topic,mqttMessage);
            mqttClient.disconnect();
        } catch (MqttException e) {
            System.out.println("发布消息失败");
            System.out.println("主题:"+topic);
            System.out.println("消息:"+msg);
            System.out.println("qos等级:"+qos.value());
            e.getMessage();
        }
    }
    //订阅
    public void subscribe(String topicFilter,QosEnum qos){
        try {
            mqttClient.subscribe(topicFilter,qos.value());
        } catch (MqttException e) {
            System.out.println("订阅主题"+topicFilter+"失败");
            System.out.println("qos等级:"+qos.value());
            e.getMessage();
        }
    }
    //取消订阅
    public void unSubscribe(String topicFilter){
        try {
            mqttClient.unsubscribe(topicFilter);
        } catch (MqttException e) {
            System.out.println("取消订阅主题"+topicFilter+"失败");
            e.getMessage();
        }
    }
}
ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/MessageCallback.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.ruoyi.utils.qymqtt.newM;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.sy.domain.ArdSyCarLock;
import com.ruoyi.sy.domain.ArdSyCarRtu;
import com.ruoyi.sy.service.ArdSyCarLockService;
import com.ruoyi.sy.service.ArdSyCarRtuService;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.IMqttClient;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import com.alibaba.fastjson.JSON;
@Slf4j
public class MessageCallback implements MqttCallback  {
    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    //注入电子锁Bean
    ArdSyCarRtuService carRtuService = SpringUtils.getBean(ArdSyCarRtuService.class);
    ArdSyCarLockService carLockService = SpringUtils.getBean(ArdSyCarLockService.class);
    @Override//丢失了对服务端的连接后触发的回调
    public void connectionLost(Throwable arg0) {
        // èµ„源的清理  é‡è¿ž
        System.out.println(arg0.getMessage());
        arg0.printStackTrace();
        System.out.println("丢失了对服务端的连接");
    }
    @Override //消息发布者消息发布完成产生的回调
    public void deliveryComplete(IMqttDeliveryToken token) {
        System.out.println("deliveryComplete---------" + token.isComplete());
        int messageId = token.getMessageId();
        String[] topics = token.getTopics();
        String clientId = token.getClient().getClientId();
//        byte[] msg = token.getMessage().getPayload();
        String topicStr = "";
        for(String topic : topics){
            topicStr = topicStr + topic + ",";
        }
        topicStr = topicStr.substring(0, topicStr.length() - 1);
        System.out.println("消息发布完成,messageId="+messageId+",topics="+topicStr+",clientId="+clientId);
    }
    @Override//消息订阅者收到消息后触发的回调
    public void messageArrived(String topic, MqttMessage message) throws Exception {
        try {
            System.out.println("【车辆锁主题】:"+topic+"【车辆锁信息】:"+new String(message.getPayload(), StandardCharsets.UTF_8));
            //出来回调数据
            List<ArdSyCarLock> ardSyCarLocks = carLockService.data(new String(message.getPayload(), StandardCharsets.UTF_8));
            //根据topic查询RTUID
            ArdSyCarRtu ardSyCarRtu = carRtuService.subscribeByCarId(topic);
            String RTU = ardSyCarRtu.getId();
            //根据RTUID查询锁
            List<ArdSyCarLock> ardSyCarLockList = carLockService.carLock(RTU);
            for (int i = 0; i < ardSyCarLocks.size(); i++) {
                ArdSyCarLock ardSyCarLockData = ardSyCarLocks.get(i);
                String relay = ardSyCarLockData.getRelay();
                Integer relayInfo = ardSyCarLockData.getRelayInfo();
                String current = ardSyCarLockData.getCurrents();
                Double currentInfo = ardSyCarLockData.getCurrentInfo();
                for (int j = 0; j < ardSyCarLockList.size(); j++) {
                    ArdSyCarLock lock = ardSyCarLockList.get(j);
                    String relay1 = lock.getRelay();
                    String current1 = lock.getCurrents();
                    Integer relayInfo1 = lock.getRelayInfo();
                    Double currentInfo1 = lock.getCurrentInfo();
                    Boolean upd = false;
                    if(relay.equals(relay1)){
                        if(!relayInfo.equals(relayInfo1)){
                            lock.setRelayInfo(relayInfo);
                            upd = true;
                        }
                    }
                    if(current.equals(current1)){
                        if(!currentInfo.equals(currentInfo1)){
                            lock.setCurrentInfo(currentInfo);
                            upd = true;
                        }
                    }
                    if(upd){
                        int num = carLockService.updLock(lock);
//                        log.debug("修改"+num+"数据");
                    }
                }
            }
        } catch (Exception e) {
            log.debug("车辆电磁锁处理mqtt消息异常:" + e);
        }
    }
}
ard-work/src/main/java/com/ruoyi/utils/qymqtt/newM/QosEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.ruoyi.utils.qymqtt.newM;
public enum QosEnum {
    QoS0(0),QoS1(1),QoS2(2);
    private final int value;
    QosEnum(int value) {
        this.value = value;
    }
    public int value(){
        return this.value;
    }
}
ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/MqttCustomerClient.java
ÎļþÃû´Ó ard-work/src/main/java/com/ruoyi/utils/qymqtt/MqttCustomerClient.java ÐÞ¸Ä
@@ -1,11 +1,10 @@
package com.ruoyi.utils.qymqtt;
package com.ruoyi.utils.qymqtt.oldM;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.sy.service.ArdSyCarRtuService;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PreDestroy;
ard-work/src/main/java/com/ruoyi/utils/qymqtt/oldM/PushCallback.java
ÎļþÃû´Ó ard-work/src/main/java/com/ruoyi/utils/qymqtt/PushCallback.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.ruoyi.utils.qymqtt;
package com.ruoyi.utils.qymqtt.oldM;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.sy.domain.ArdSyCarLock;