diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/config/MqttOutboundConfiguration.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/config/MqttOutboundConfiguration.java index b717acd..84a5608 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/config/MqttOutboundConfiguration.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/config/MqttOutboundConfiguration.java @@ -15,11 +15,14 @@ import org.springframework.messaging.MessageHandler; @Configuration @Slf4j public class MqttOutboundConfiguration { + @Autowired private MqttPropertiesConfig mqttPropertiesConfig; + @Autowired private MqttPahoClientFactory mqttPahoClientFactory; - + + // 消息通道 @Bean public MessageChannel mqttOutboundChannel(){ diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/DeviceRedisKeyConstants.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/DeviceRedisKeyConstants.java index 99f9b5d..e5f5e5b 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/DeviceRedisKeyConstants.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/DeviceRedisKeyConstants.java @@ -1,6 +1,7 @@ package com.fuyuanshen.global.mqtt.constants; public class DeviceRedisKeyConstants { + public static final String DEVICE_KEY_PREFIX = "device:"; // 设备上报状态 public static final String DEVICE_STATUS_KEY_PREFIX = ":status"; @@ -52,4 +53,5 @@ public class DeviceRedisKeyConstants { * 告警信息 */ public static final String DEVICE_ALARM_MESSAGE_KEY_PREFIX = ":alarmMessage"; + } diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/LightingCommandTypeConstants.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/LightingCommandTypeConstants.java index de4e6b3..392315f 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/LightingCommandTypeConstants.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/constants/LightingCommandTypeConstants.java @@ -36,7 +36,6 @@ public class LightingCommandTypeConstants { */ public static final String SEND_MESSAGE = "Light_6"; - /** * 报警模式 */ diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java index ff0a04c..a3759c9 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java @@ -57,12 +57,12 @@ public class BjqAlarmRule implements MqttMessageRule { if (StringUtils.isNotBlank(convertValue)) { // 将设备状态信息存储到Redis中 String deviceRedisKey = GlobalConstants.GLOBAL_REDIS_KEY + DeviceRedisKeyConstants.DEVICE_KEY_PREFIX + context.getDeviceImei() + DEVICE_ALARM_KEY_PREFIX; - String sendMessageIng = GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; + String sendMessageIng = GLOBAL_REDIS_KEY + DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; if ("1".equals(convertValue)) { RedisUtils.setCacheObject(sendMessageIng, "1", Duration.ofDays(1)); // 存储到Redis RedisUtils.setCacheObject(deviceRedisKey, "1"); - }else if ("0".equals(convertValue)){ + } else if ("0".equals(convertValue)) { RedisUtils.deleteObject(sendMessageIng); RedisUtils.deleteObject(deviceRedisKey); } diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLaserModeSettingsRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLaserModeSettingsRule.java index 35b1ac3..7401800 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLaserModeSettingsRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLaserModeSettingsRule.java @@ -71,5 +71,4 @@ public class BjqLaserModeSettingsRule implements MqttMessageRule { } - } diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java index 349452d..8f97cec 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java @@ -45,6 +45,7 @@ public class BjqModeRule implements MqttMessageRule { return LightingCommandTypeConstants.LIGHT_MODE; } + @Override public void execute(MqttRuleContext context) { String functionAccess = FUNCTION_ACCESS_KEY + context.getDeviceImei(); diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqPersonnelInfoDataRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqPersonnelInfoDataRule.java index 2a1b6d6..49fabe2 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqPersonnelInfoDataRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqPersonnelInfoDataRule.java @@ -1,32 +1,18 @@ package com.fuyuanshen.global.mqtt.rule.bjq; -import com.alibaba.fastjson2.JSONObject; -import com.fuyuanshen.common.core.constant.GlobalConstants; -import com.fuyuanshen.common.core.utils.StringUtils; -import com.fuyuanshen.common.json.utils.JsonUtils; import com.fuyuanshen.common.redis.utils.RedisUtils; -import com.fuyuanshen.equipment.utils.map.GetAddressFromLatUtil; -import com.fuyuanshen.equipment.utils.map.LngLonUtil; import com.fuyuanshen.global.mqtt.base.MqttMessageRule; import com.fuyuanshen.global.mqtt.base.MqttRuleContext; import com.fuyuanshen.global.mqtt.config.MqttGateway; -import com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants; import com.fuyuanshen.global.mqtt.constants.LightingCommandTypeConstants; -import com.fuyuanshen.global.mqtt.constants.MqttConstants; import com.fuyuanshen.global.mqtt.listener.domain.FunctionAccessStatus; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.time.Duration; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.concurrent.CompletableFuture; import static com.fuyuanshen.common.core.constant.GlobalConstants.FUNCTION_ACCESS_KEY; -import static com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants.*; /** * 定位数据命令处理 @@ -55,4 +41,5 @@ public class BjqPersonnelInfoDataRule implements MqttMessageRule { RedisUtils.setCacheObject(functionAccess, FunctionAccessStatus.FAILED.getCode(), Duration.ofSeconds(30)); } } + } diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java b/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java index 34f884f..0ac9509 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/queue/MqttMessageConsumer.java @@ -27,11 +27,12 @@ public class MqttMessageConsumer { @Autowired private DeviceMapper deviceMapper; - + // 创建两个线程池:一个用于消息获取,一个用于业务处理 private ExecutorService messageConsumerPool = Executors.newFixedThreadPool(3); private ExecutorService messageProcessorPool = Executors.newFixedThreadPool(10); + // 初始化方法,启动消息监听 @PostConstruct public void start() { @@ -130,4 +131,5 @@ public class MqttMessageConsumer { log.error("业务处理线程 {} 处理消息时发生错误: {}", threadName, message, e); } } + } diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java b/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java index 7035e14..e877b5c 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/queue/OnlineStatusTask.java @@ -22,6 +22,8 @@ public class OnlineStatusTask { @Autowired private DeviceMapper deviceMapper; + + // 使用cron表达式,每分钟的第0秒执行 @Scheduled(cron = "0 */3 * * * ?") public void cronTask() { @@ -37,4 +39,5 @@ public class OnlineStatusTask { } }); } + } diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceControlCenterController.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceControlCenterController.java index 2b1b2ee..d13f0cc 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceControlCenterController.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/DeviceControlCenterController.java @@ -98,6 +98,7 @@ public class DeviceControlCenterController extends BaseController { return R.ok(appDeviceService.getDeviceInfo(deviceMac)); } + /** * 指令下发记录 */ @@ -106,6 +107,7 @@ public class DeviceControlCenterController extends BaseController { return appDeviceService.getInstructionRecord(dto, pageQuery); } + /** * 导出 */ diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java index 70f186d..8aacedd 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceTypeController.java @@ -79,7 +79,6 @@ public class DeviceTypeController { public R getCommunicationMode(@Parameter(name = "设备类型ID", required = true) Long id) { DeviceType communicationMode = deviceTypeService.getCommunicationMode(id); return R.ok(communicationMode); - } } diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java index e4c7f4c..b4628fa 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java @@ -224,22 +224,13 @@ public class DeviceTypeServiceImpl extends ServiceImpl 0) { - throw new RuntimeException("该设备类型下已有绑定设备,无法修改设备类型名称!!!"); + throw new RuntimeException("该设备类型下已有设备,无法修改设备类型名称!!!"); } } - - // List devices = deviceMapper.selectList(new QueryWrapper() - // .eq("device_type", deviceTypeGrants.getDeviceTypeId())); - // if (CollectionUtil.isNotEmpty(devices)) { - // throw new RuntimeException("该设备类型已绑定设备,无法修改!!!"); - // } - // 校验设备类型名称 DeviceType dt = deviceTypeMapper.selectOne(new QueryWrapper().eq("type_name", resources.getTypeName())); if (dt != null && !dt.getId().equals(deviceType.getId())) {