aijinhui
2023-11-09 e2cc46293d84e49cf896b2ffd3494101712ac29e
rtu封
已修改5个文件
50 ■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarRtuService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarRtuServiceImpl.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarLockController.java
@@ -9,10 +9,7 @@
import com.ruoyi.sy.domain.ArdSyUser;
import com.ruoyi.sy.mapper.ArdAccessFenceMapper;
import com.ruoyi.sy.param.AddCarParam;
import com.ruoyi.sy.service.ArdAccessFenceService;
import com.ruoyi.sy.service.ArdSyCarLockService;
import com.ruoyi.sy.service.IArdSyCarService;
import com.ruoyi.sy.service.IArdSyUserService;
import com.ruoyi.sy.service.*;
import com.ruoyi.sy.vo.CarLockVo;
import com.ruoyi.sy.vo.CarVo;
import com.ruoyi.sy.vo.RtuVo;
@@ -43,6 +40,8 @@
    private ArdSyCarLockService ardSyCarLockService;
    @Autowired
    private ArdAccessFenceService ardAccessFenceService;
    @Autowired
    private ArdSyCarRtuService ardSyCarRtuService;
    @GetMapping("/car")
    @ApiOperation("查询所有未挂锁的车辆")
@@ -180,6 +179,13 @@
        return AjaxResult.success(ardAccessFenceService.updCarAlarm(id));
    }
    @GetMapping("/openLock")
    @ApiOperation("远程开锁")
    public AjaxResult openLock(String carId){
        return AjaxResult.success(ardSyCarRtuService.openLock(ardSyCarRtuService.one(carId)));
    }
    //获取31车辆车牌号驾驶员和电话
    public List<CarVo> analysis(List<CarVo> list){
        String usersId = SecurityUtils.getUserId();
ard-work/src/main/java/com/ruoyi/sy/service/ArdSyCarRtuService.java
@@ -9,7 +9,9 @@
 */
public interface ArdSyCarRtuService {
    String allCarTopic();
    String[] allCarTopic();
    ArdSyCarRtu one(String carId);
    String openLock(ArdSyCarRtu ardSyCarRtu);
}
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarRtuServiceImpl.java
@@ -1,15 +1,16 @@
package com.ruoyi.sy.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.sy.domain.ArdSyCarRtu;
import com.ruoyi.sy.mapper.ArdSyCarRtuMapper;
import com.ruoyi.sy.service.ArdSyCarRtuService;
import com.ruoyi.utils.mqtt.MqttConsumer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.*;
/**
 * @author Administrator
@@ -21,14 +22,13 @@
    private ArdSyCarRtuMapper ardSyCarRtuMapper;
    @Override
    public String allCarTopic() {
    public String[] allCarTopic() {
        List<ArdSyCarRtu> carRtus = ardSyCarRtuMapper.selectList(null);
        List<String> list = new ArrayList<>();
        for (int i = 0; i < carRtus.size(); i++) {
            list.add(carRtus.get(i).getTopicPublish());
        }
        String[] topicArray = list.toArray(new String[list.size()]);
        return Arrays.toString(topicArray);
        return list.toArray(new String[list.size()]);
    }
    @Override
@@ -38,4 +38,14 @@
        return ardSyCarRtuMapper.selectOne(queryWrapper);
    }
    @Override
    public String openLock(ArdSyCarRtu ardSyCarRtu) {
            Map<String,Object> map = new HashMap<>();
//            map.put("A01", 110000);//导通第一路继电器
//          map.put("A02", 110000);//导通第二路继电器
            map.put("res", String.valueOf(System.currentTimeMillis()));
            MqttConsumer.publish(ardSyCarRtu.getTopicSubscribe(), String.valueOf(new JSONObject(map)));
        return "已发送开锁指令";
    }
}
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java
@@ -92,7 +92,7 @@
                ardRadarService.forceGuide(new String(message.getPayload(), StandardCharsets.UTF_8));
            }
            if(topic.contains("/p")){
                System.out.println(new String(message.getPayload(), StandardCharsets.UTF_8));
                System.out.println("车辆锁信息:"+new String(message.getPayload(), StandardCharsets.UTF_8));
            }
        } catch (Exception e) {
            log.debug("处理mqtt消息异常:" + e);
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java
@@ -24,9 +24,11 @@
    @Override
    public void run(String... args) throws Exception {
        String topic = ardSyCarRtuService.allCarTopic();
        String[] topic = ardSyCarRtuService.allCarTopic();
        MqttConsumer mqttConsumer = new MqttConsumer();
        mqttConsumer.subscribe(topic,2);
        log.info("mqtt订阅清淤车辆锁信息:"+topic);
        for (int i = 0; i < topic.length; i++) {
            mqttConsumer.subscribe(topic[i],2);
        }
        log.info("mqtt订阅清淤车辆锁信息:"+Arrays.toString(topic));
    }
}