From b02ace7aa9a5e046d533cf80afa8ec14c40fe133 Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期四, 24 七月 2025 17:56:00 +0800 Subject: [PATCH] 直流电阻:解析mqtt订阅的数据保存到redis --- cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-) diff --git a/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java b/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java index a1acb6e..6024f31 100644 --- a/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java +++ b/cnas-device/src/main/java/com/ruoyi/device/service/impl/CollectBridgeServiceImpl.java @@ -1,20 +1,29 @@ package com.ruoyi.device.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.utils.RedisUtil; +import com.ruoyi.device.constant.DCResistanceMqttConstants; import com.ruoyi.device.mapper.CollectBridgeMapper; import com.ruoyi.device.pojo.CollectBridge; import com.ruoyi.device.service.CollectBridgeService; +import com.ruoyi.device.vo.DCResistanceMqttVO; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.time.Duration; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; +import java.util.List; +import java.util.Map; +import java.util.Objects; /** * 鏁板瓧鐢垫ˉ閲囬泦 @@ -97,6 +106,22 @@ } } + @Override + public void addBridgeValueByNS(String jsonStr) { + Map<String, Object> dataMap = JSONObject.parseObject(jsonStr, new TypeReference<Map<String, Object>>(){}.getType()); + if(CollectionUtil.isNotEmpty(dataMap) && Objects.nonNull(dataMap.get("data"))){ + List<DCResistanceMqttVO> dataList = JSONArray.parseObject(dataMap.get("data").toString(), new TypeReference<List<DCResistanceMqttVO>>(){}.getType()); + //杩囨护鍑哄寘鍚疄闄呯數闃诲�肩殑瀵硅薄 + DCResistanceMqttVO dcResistanceMqttVO = dataList.stream().filter(f -> StringUtils.equals(f.getDataStream(), DCResistanceMqttConstants.NSDQCS_DQCS_DZZ)).findFirst().orElse(null); + if(Objects.nonNull(dcResistanceMqttVO)){ + List<DCResistanceMqttVO.DataPoint> dataPoints = dcResistanceMqttVO.getDataPoints(); + BigDecimal value = CollectionUtil.isNotEmpty(dataPoints)?dataPoints.get(0).getValue():BigDecimal.ZERO; + //淇濆瓨瀹為檯鐢甸樆鍊煎埌redis + RedisUtil.set(DCResistanceMqttConstants.NSDQCS_DQCS_DZZ,value.doubleValue()); + } + } + } + public static boolean isWithinTenMinutes(LocalDateTime dateTime1, LocalDateTime dateTime2) { Duration duration = Duration.between(dateTime1, dateTime2); long minutesDifference = Math.abs(duration.toMinutes()); -- Gitblit v1.9.3