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/service/impl/DataServiceImpl.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 49 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zhitan/service/impl/DataServiceImpl.java b/src/main/java/com/zhitan/service/impl/DataServiceImpl.java index e977412..1b31f0d 100644 --- a/src/main/java/com/zhitan/service/impl/DataServiceImpl.java +++ b/src/main/java/com/zhitan/service/impl/DataServiceImpl.java @@ -11,6 +11,7 @@ import com.zhitan.model.entity.ElectricPower; import com.zhitan.influxdb.InfluxdbRepository; import com.zhitan.mapper.CommonMapper; +import com.zhitan.model.entity.KtDataEntity; import com.zhitan.model.entity.PowerEntity; import com.zhitan.redis.RedisCache; import com.zhitan.service.IDataService; @@ -201,6 +202,54 @@ } } } +// repository.writePoints(points); + } + + + /** + * 鍐欏叆KT鏁版嵁 + * + * @param ktDataEntity 鍥哄畾鏍煎紡鐨勬暟鎹� + */ + @Override + public void writeTimeSeriesData(KtDataEntity ktDataEntity) { + List<IndexTemplate> templates = getIndexTemplate(); + // 鑾峰彇绫讳腑鎵�鏈夊0鏄庣殑瀛楁 + Field[] fields = ktDataEntity.getClass().getDeclaredFields(); + List<Point> points = new ArrayList<>(); + for (Field field : fields) { + IndexTemplate indexTemplate = templates.stream().filter(template -> + field.getName().equalsIgnoreCase(template.getGatewayKey())) + .findFirst().orElse(null); + if (indexTemplate != null) { + Point point = Point + .measurement(influxdbConfig.getMeasurement()) + .addTag(TAG, ktDataEntity.getSn() + "_" + indexTemplate.getCode()) + .time(Instant.now(), WritePrecision.S); + field.setAccessible(true); + if (Number.class.isAssignableFrom(field.getType()) || field.getType().isPrimitive()) { + try { + // 鑾峰彇瀛楁鍊� + Object o = field.get(ktDataEntity); + if (o!=null) { + // 瀹夊叏绫诲瀷杞崲 + if (o instanceof Number) { + double value = ((Number) o).doubleValue(); + point.addField(FIELD_VALUE, value); + // 浣跨敤 value... + } else { + log.error("瀛楁 {} 绫诲瀷闈炴硶: {}", field.getName(), o.getClass()); + } + } + points.add(point); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } + } + + + } repository.writePoints(points); } -- Gitblit v1.9.3