From 013fa08f64639a4a722dbb709a746a4561a02964 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期日, 08 六月 2025 14:45:33 +0800
Subject: [PATCH] feat(service): 添加压缩空气和水表数据模拟器

---
 src/main/java/com/zhitan/service/impl/DataServiceImpl.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 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 18d8376..e977412 100644
--- a/src/main/java/com/zhitan/service/impl/DataServiceImpl.java
+++ b/src/main/java/com/zhitan/service/impl/DataServiceImpl.java
@@ -129,6 +129,35 @@
     @Override
     public void writeTimeSeriesData(@NotNull PowerEntity powerEntity) {
         List<IndexTemplate> templates = getIndexTemplate();
+        // 鍒ゆ柇鎬绘湁鍔熸槸鍚︿负绌猴紝濡傛灉涓虹┖鍒ゆ柇姝e悜鏈夊姛鍜屽弽鍚戞湁鍔熸槸鍚︿负绌猴紝濡傛灉鍚庝袱涓换鎰忎竴涓笉涓虹┖锛屽垯浠庢椂搴忔暟鎹簱涓幏鍙栦负绌虹殑閭d竴涓紝鐒跺悗灏嗘�绘湁鍔熻兘鐢佃兘璧嬪�间负姝e悜鏈夊姛鑳界數鑳藉噺鍘诲弽鍚戞湁鍔熻兘鐢佃兘
+        if (powerEntity.getEps() == null) {
+            if (powerEntity.getEpsp() != null && powerEntity.getEpsn() != null) {
+                powerEntity.setEps(powerEntity.getEpsp() - powerEntity.getEpsn());
+            } else if (powerEntity.getEpsp() != null) {
+                double lastValue = repository.getLastPoint(influxdbConfig.getMeasurement(),
+                        TAG, powerEntity.getSn() + "_" + "Exp");
+                powerEntity.setEps(powerEntity.getEpsp() - lastValue);
+
+            } else if (powerEntity.getEpsn() != null) {
+                double lastValue = repository.getLastPoint(influxdbConfig.getMeasurement(),
+                        TAG, powerEntity.getSn() + "_" + "ActiveZT");
+                powerEntity.setEps(lastValue - powerEntity.getEpsn());
+            }
+        }
+        // 鍒ゆ柇鎬绘棤鍔熸槸鍚︿负绌猴紝濡傛灉涓虹┖鍒ゆ柇姝e悜鏃犲姛鍜屽弽鍚戞棤鍔熸槸鍚︿负绌猴紝濡傛灉鍚庝袱涓换鎰忎竴涓笉涓虹┖锛屽垯浠庢椂搴忔暟鎹簱涓幏鍙栦负绌虹殑閭d竴涓紝鐒跺悗灏嗘�绘棤鍔熺數鑳借祴鍊间负姝e悜鏃犲姛鐢佃兘鍜屽弽鍚戞棤鍔熺數鑳界殑缁濆鍊间箣鍜�
+        if (powerEntity.getEqs() == null) {
+            if (powerEntity.getEqsp() != null && powerEntity.getEqsn() != null) {
+                powerEntity.setEqs(Math.abs(powerEntity.getEqsp()) + Math.abs(powerEntity.getEqsn()));
+            } else if (powerEntity.getEqsp() != null) {
+                double lastValue = repository.getLastPoint(influxdbConfig.getMeasurement(),
+                        TAG, powerEntity.getSn() + "_" + "ExpZN");
+                powerEntity.setEqs(Math.abs(lastValue) + Math.abs(powerEntity.getEqsp()));
+            } else if (powerEntity.getEqsn() != null) {
+                double lastValue = repository.getLastPoint(influxdbConfig.getMeasurement(),
+                        TAG, powerEntity.getSn() + "_" + "ActiveZN");
+                powerEntity.setEqs(Math.abs(lastValue) + Math.abs(powerEntity.getEqsn()));
+            }
+        }
         // 鑾峰彇绫讳腑鎵�鏈夊0鏄庣殑瀛楁
         Field[] fields = powerEntity.getClass().getDeclaredFields();
         List<Point> points = new ArrayList<>();

--
Gitblit v1.9.3