From be00ddc83f86599916eb8d0f581f448aa74c9d51 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期四, 19 六月 2025 08:55:57 +0800 Subject: [PATCH] feat(mqtt): 增加对空调设备数据的处理 --- src/main/java/com/zhitan/handler/MqttMessageHandler.java | 39 ++++++++++++++++++++++++++++++++++++--- 1 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zhitan/handler/MqttMessageHandler.java b/src/main/java/com/zhitan/handler/MqttMessageHandler.java index 7913d74..d2f4ec0 100644 --- a/src/main/java/com/zhitan/handler/MqttMessageHandler.java +++ b/src/main/java/com/zhitan/handler/MqttMessageHandler.java @@ -1,10 +1,13 @@ package com.zhitan.handler; import com.fasterxml.jackson.databind.ObjectMapper; +import com.zhitan.config.mqtt.MqttTopic; import com.zhitan.model.entity.DeviceData; import com.zhitan.model.entity.ElectricPower; +import com.zhitan.model.entity.KtDataEntity; import com.zhitan.model.entity.PowerEntity; import com.zhitan.service.IDataService; +import com.zhitan.util.KtDataMapper; import com.zhitan.util.PowerDataMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.integration.mqtt.support.MqttHeaders; @@ -31,14 +34,44 @@ String topic = (String) message.getHeaders().get(MqttHeaders.RECEIVED_TOPIC); String payload = (String) message.getPayload(); System.out.println("Received message from topic " + topic + ": " + payload); - -// dataService.writeTimeSeriesData(payload); -// ObjectMapper objectMapper = new ObjectMapper(); try { // 灏� JSON 瀛楃涓茶浆鎹负 SensorData 瀵硅薄 //ElectricPower electricPower = objectMapper.readValue(payload, ElectricPower.class); DeviceData data = objectMapper.readValue(payload, DeviceData.class); + if (topic != null) { + switch ( topic) { + case MqttTopic.DEFAULT_TOPIC: + handleDeviceUpMessage(data); + break; + case MqttTopic.DEVICE_KT_UP: + handleDeviceKtUpMessage(data); + break; + default: + log.error("Invalid topic: " + topic); + } + } + } catch (Exception e) { + log.error(e.getMessage()); + } + + + + } + + private void handleDeviceKtUpMessage(DeviceData data) { + try { + KtDataEntity ktDataEntity = KtDataMapper.mapToEntity(data); + dataService.writeTimeSeriesData(ktDataEntity); + // dataService.writeTimeSeriesData(electricPower) + } catch (Exception e) { + log.error(e.getMessage()); + } + + } + + private void handleDeviceUpMessage(DeviceData data) { + try { List<PowerEntity> powerMeters = PowerDataMapper.mapToEntities(data); for (PowerEntity powerMeter : powerMeters) { dataService.writeTimeSeriesData(powerMeter); -- Gitblit v1.9.3