From 602c6e68101e88d275fe7313495c2009386c1965 Mon Sep 17 00:00:00 2001
From: VVT789 <sdxt_0802@163.com>
Date: 星期三, 12 二月 2025 14:04:07 +0800
Subject: [PATCH] 电能质量分析--负荷分析数据获取获取实时数据修改

---
 zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java             |    6 -
 /dev/null                                                                                         |  163 ----------------------------------------
 zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java |   19 +++-
 zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java            |    2 
 zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java                        |    4 
 zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java    |    2 
 zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml                               |   17 ++++
 zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java                           |    2 
 zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java    |    4 
 9 files changed, 41 insertions(+), 178 deletions(-)

diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java
index 337f918..be5615e 100644
--- a/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java
@@ -53,7 +53,7 @@
                            @RequestParam(name = "timeCode") String timeCode) {
         EnergyIndex energyIndex = energyIndexService.getDeviceIndexByCode(nodeId, meterId, CommonConst.TAG_CODE_ZYGGL);
 
-        ListElectricLoadVO vo = electricLoadService.list(timeType, timeCode, energyIndex);
+        ListElectricLoadVO vo = electricLoadService.list(timeType, timeCode, energyIndex, meterId);
         return AjaxResult.success(vo);
     }
 
diff --git a/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java b/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java
index c328731..86f476b 100644
--- a/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java
+++ b/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java
@@ -867,7 +867,7 @@
     /**
      * 鎬绘湁鍔熷姛鐜囩偣浣嶆ā鏉縞ode
      */
-    public static final String TAG_CODE_ZYGGL = "\\_ActivePower_Total";
+    public static final String TAG_CODE_ZYGGL = "ActivePow";
     /**
      * 鎬绘湁鍔熷姛鐜囩偣浣嶆ā鏉縞ode
      */
diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java
index 86fcd2c..cfc6098 100644
--- a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java
+++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java
@@ -17,7 +17,7 @@
     /**
      * 鑾峰彇璐熻嵎鍒嗘瀽鏁版嵁
      */
-    ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex);
+    ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, String meterId);
 
     /**
      * 鑾峰彇鑺傜偣涓嬫墍鏈夌數琛�
diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java
index 2d2e3b5..6db0d80 100644
--- a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java
@@ -46,7 +46,7 @@
     private MeterImplementMapper meterImplementMapper;
 
     @Override
-    public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex) {
+    public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, String meterId) {
         ListElectricLoadVO vo = new ListElectricLoadVO();
         List<ListElectricLoadItem> itemList = new ArrayList<>();
         vo.setItemList(itemList);
@@ -59,7 +59,7 @@
         detail.setRate(CommonConst.DOUBLE_MINUS_SIGN);
         vo.setDetail(detail);
 
-        MeterImplement meterImplement = meterImplementMapper.selectById(energyIndex.getMeterId());
+        MeterImplement meterImplement = meterImplementMapper.selectById(meterId);
 
         if (ObjectUtil.isEmpty(meterImplement)) {
             return vo;
diff --git a/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java b/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java
index 3c4928a..3c02acc 100644
--- a/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java
+++ b/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java
@@ -99,5 +99,7 @@
 
   Page<EnergyIndex> selectEnergyIndexPage(@Param("page")Page<?> page, @Param("query") EnergyIndexQuery energyIndexQuery);
 
-    List<EnergyIndex> getIndexByCode(@Param("code")String code, @Param("nodeId")String nodeId);
+  List<EnergyIndex> getIndexByCode(@Param("code")String code, @Param("nodeId")String nodeId);
+
+  List<EnergyIndex> getIndexByMeterIdIndexCode(@Param("meterId") String meterId, @Param("indexCode") String indexCode, @Param("nodeId") String nodeId);
 }
diff --git a/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java
index aa5f76f..16d8a62 100644
--- a/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java
@@ -345,10 +345,8 @@
      * @return
      */
     public List<EnergyIndex> listDeviceIndexByCode(String nodeId, String meterId, String indexCode) {
-        return energyIndexMapper.selectList(Wrappers.<EnergyIndex>lambdaQuery()
-                .eq(EnergyIndex::getNodeId, nodeId)
-                .eq(EnergyIndex::getMeterId, meterId)
-                .like(EnergyIndex::getCode, indexCode));
+        List<EnergyIndex> energyIndexList = energyIndexMapper.getIndexByMeterIdIndexCode(meterId,indexCode,nodeId);
+        return energyIndexList;
     }
 
     /**
diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/data/RealtimeDatabaseManager.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/data/RealtimeDatabaseManager.java
deleted file mode 100644
index f3914ff..0000000
--- a/zhitan-system/src/main/java/com/zhitan/realtimedata/data/RealtimeDatabaseManager.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package com.zhitan.realtimedata.data;
-
-import com.influxdb.client.InfluxDBClient;
-import com.influxdb.client.InfluxDBClientFactory;
-import com.influxdb.client.domain.HealthCheck;
-import com.zhitan.common.enums.CollectionModes;
-import com.zhitan.common.enums.RetrievalModes;
-import com.zhitan.realtimedata.config.RtdbConfig;
-import com.zhitan.realtimedata.domain.TagValue;
-import com.zhitan.realtimedata.service.RealtimeDatabase;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
-
-/**
- * @author 鑼冩柊瀵� 瀹炴椂鏁版嵁搴撹闂鐞�.
- */
-@Component
-public class RealtimeDatabaseManager {
-
-    private final RealtimeDatabase connection;
-
-    private final Logger logger = LogManager.getLogger(RealtimeDatabaseManager.class);
-
-    public RealtimeDatabaseManager(RtdbConfig config) {
-    connection = new VirtualRtdb();
-        try {
-            InfluxDBClient influxDBClient = InfluxDBClientFactory.create(config.getHost(),
-                    config.getToken().toCharArray(), config.getOrg(), config.getBucket());
-
-            logger.error("--------------------瀹炴椂搴撹繛鎺ユ垚鍔�--------------------");
-            HealthCheck health = influxDBClient.health();
-            if (health.getStatus() == HealthCheck.StatusEnum.FAIL) {
-                influxDBClient.close();
-            }
-        } catch (Exception e) {
-            logger.error(e);
-        }
-    }
-
-    public TagValue retrieve(String tagCode) {
-        List<String> tagCodes = new ArrayList<>();
-        tagCodes.add(tagCode);
-        List<TagValue> tagValues = retrieve(tagCodes);
-        if (!tagValues.isEmpty()) {
-            return tagValues.get(0);
-        }
-
-        return null;
-    }
-
-    public List<TagValue> retrieve(List<String> tagCodes) {
-        List<TagValue> tagValues = new ArrayList<>();
-        try {
-            tagValues = connection.retrieve(tagCodes);
-        } catch (Exception e) {
-            logger.error(e);
-        }
-
-        return tagValues;
-    }
-
-    public TagValue retrieve(String tagCode, Date dataTime, String timeCode) {
-        List<String> tagCodes = new ArrayList<>();
-        tagCodes.add(tagCode);
-        List<TagValue> tagValues = retrieve(tagCodes, dataTime, timeCode);
-        if (!tagValues.isEmpty()) {
-            return tagValues.get(0);
-        }
-
-        return null;
-    }
-
-    public List<TagValue> retrieve(List<String> tagCodes, Date dataTime, String timeCode) {
-        List<TagValue> tagValues = new ArrayList<>();
-        try {
-            List<TagValue> tmp = connection.retrieve(tagCodes, dataTime, timeCode);
-            for (String tagCode : tagCodes) {
-                Optional<TagValue> tagValue = tmp.stream()
-                        .filter(f -> StringUtils.equalsIgnoreCase(f.getTagCode(), tagCode)).findAny();
-                TagValue value;
-                if (!tagValue.isPresent()) {
-                    value = new TagValue();
-                    value.setTagCode(tagCode);
-                    value.setDataTime(dataTime);
-                } else {
-                    value = tagValue.get();
-                }
-
-                tagValues.add(value);
-            }
-        } catch (Exception e1) {
-            logger.error(e1);
-        }
-
-        return tagValues;
-    }
-
-    public List<TagValue> retrieve(String tagCode, Date beginTime, Date endTime,
-                                   RetrievalModes retrievalModes, int pointCount) {
-        List<String> tagCodes = new ArrayList<>();
-        tagCodes.add(tagCode);
-        return retrieve(tagCodes, beginTime, endTime, retrievalModes, pointCount);
-    }
-
-    public List<TagValue> retrieve(List<String> tagCodes, Date beginTime, Date endTime,
-                                   RetrievalModes retrievalModes, int pointCount) {
-        List<TagValue> tagValues = new ArrayList<>();
-        try {
-            tagValues = connection.retrieve(tagCodes, beginTime, endTime, retrievalModes, pointCount);
-        } catch (Exception e1) {
-            logger.error(e1);
-        }
-
-        return tagValues;
-    }
-
-    public TagValue statistics(String tagCode, Date beginTime, Date endTime,
-                               CollectionModes collectionModes) {
-        List<String> tagCodes = new ArrayList<>();
-        tagCodes.add(tagCode);
-        List<TagValue> tagValues = statistics(tagCodes, beginTime, endTime, collectionModes);
-        if (!tagValues.isEmpty()) {
-            return tagValues.get(0);
-        }
-
-        return null;
-    }
-
-    public List<TagValue> statistics(List<String> tagCodes, Date beginTime, Date endTime,
-                                     CollectionModes collectionModes) {
-        List<TagValue> tagValues = new ArrayList<>();
-        try {
-            tagValues = connection.statistics(tagCodes, beginTime, endTime, collectionModes);
-        } catch (Exception e1) {
-            logger.error(e1);
-        }
-
-        return tagValues;
-    }
-
-    public void storeData(List<TagValue> tagValues) {
-        try {
-            connection.storeData(tagValues);
-        } catch (Exception e1) {
-            logger.error(e1);
-        }
-    }
-
-    public void insertData(List<TagValue> tagValues) {
-        try {
-            connection.insertData(tagValues);
-        } catch (Exception e1) {
-            logger.error(e1);
-        }
-    }
-}
diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java
index 9e16113..eaddd6d 100644
--- a/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java
@@ -6,11 +6,12 @@
 import com.zhitan.common.enums.CollectionModes;
 import com.zhitan.common.enums.GroupTimeType;
 import com.zhitan.common.enums.RetrievalModes;
-import com.zhitan.realtimedata.data.RealtimeDatabaseManager;
 import com.zhitan.realtimedata.data.influxdb.InfluxDBRepository;
 import com.zhitan.realtimedata.domain.TagValue;
 import com.zhitan.realtimedata.service.RealtimeDatabaseService;
 import org.apache.commons.collections4.CollectionUtils;
+import org.joda.time.DateTime;
+import org.joda.time.Seconds;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -23,11 +24,10 @@
 
     private final InfluxDBRepository repository;
 
-    private final RealtimeDatabaseManager realtimeDatabaseManager;
 
-    public RealtimeDatabaseServiceImpl(InfluxDBRepository repository, RealtimeDatabaseManager realtimeDatabaseManager) {
+    public RealtimeDatabaseServiceImpl(InfluxDBRepository repository
+    ) {
         this.repository = repository;
-        this.realtimeDatabaseManager = realtimeDatabaseManager;
     }
 
     /**
@@ -169,6 +169,15 @@
     @Override
     public List<TagValue> retrieve(String tagCode, Date beginTime, Date endTime,
                                    RetrievalModes retrievalModes, int pointCount) {
-        return realtimeDatabaseManager.retrieve(tagCode, beginTime, endTime, retrievalModes, pointCount);
+        repository.getHistoryData(Collections.singletonList(tagCode), beginTime, endTime, pointCount);
+        pointCount = retrievalModes == RetrievalModes.Full ? 200 : pointCount;
+        int span =
+                Seconds.secondsBetween(new DateTime(beginTime), new DateTime(endTime)).getSeconds();
+        int interval = span / pointCount;
+        List<String> tagCodes = new ArrayList<>();
+        tagCodes.add(tagCode);
+        List<TagValue> historyData = repository.getHistoryData(tagCodes, beginTime, endTime, interval);
+        return historyData;
+//        return realtimeDatabaseManager.retrieve(tagCode, beginTime, endTime, retrievalModes, pointCount);
     }
 }
diff --git a/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml b/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml
index 3ea43ac..78d0144 100644
--- a/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml
+++ b/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml
@@ -391,4 +391,21 @@
         </if>
     </where>
   </select>
+  <select id="getIndexByMeterIdIndexCode" resultType="com.zhitan.model.domain.EnergyIndex">
+    SELECT ei.code,mi.meter_name||'_'||ei.name as name from energy_index ei
+    LEFT JOIN node_device nd on ei.meter_id =  nd.device_id
+    LEFT JOIN meter_implement  mi on mi."id" = nd.device_id
+    <where>
+        <if test="nodeId != null  and nodeId != ''">and nd.node_id  = #{nodeId}</if>
+        <if test="indexCode != null  and indexCode != ''">
+          and (mi.meter_name like concat('%', #{indexCode}, '%')
+          or ei.code like concat('%', #{indexCode}, '%')
+          or ei.name like concat('%', #{indexCode}, '%')
+          )
+        </if>
+        <if test="meterId != null  and meterId != ''">
+          and ei.meter_id = #{meterId}
+        </if>
+    </where>
+  </select>
 </mapper>

--
Gitblit v1.9.3