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)); } }