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/energyMonitor/service/impl/ElectricLoadServiceImpl.java |   63 ++++++++++++++++++-------------
 1 files changed, 36 insertions(+), 27 deletions(-)

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 2eb8560..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
@@ -1,7 +1,8 @@
 package com.zhitan.energyMonitor.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhitan.basicdata.domain.MeterImplement;
+import com.zhitan.basicdata.mapper.MeterImplementMapper;
 import com.zhitan.common.constant.CommonConst;
 import com.zhitan.common.constant.TimeTypeConst;
 import com.zhitan.common.enums.CollectionModes;
@@ -10,13 +11,12 @@
 import com.zhitan.common.utils.DateTimeUtil;
 import com.zhitan.common.utils.DoubleUtil;
 import com.zhitan.common.utils.StringUtil;
-import com.zhitan.energyMonitor.domain.ElectricLoadEntity;
-import com.zhitan.energyMonitor.domain.EnergyUnitToDevice;
 import com.zhitan.energyMonitor.domain.vo.ListElectricLoadDetail;
 import com.zhitan.energyMonitor.domain.vo.ListElectricLoadItem;
 import com.zhitan.energyMonitor.domain.vo.ListElectricLoadVO;
-import com.zhitan.energyMonitor.mapper.ElectricLoadMapper;
+import com.zhitan.energyMonitor.domain.vo.ListElectricityMeterVO;
 import com.zhitan.energyMonitor.service.IElectricLoadService;
+import com.zhitan.knowledgeBase.domain.enums.EnergyTypeEnum;
 import com.zhitan.model.domain.EnergyIndex;
 import com.zhitan.realtimedata.domain.TagValue;
 import com.zhitan.realtimedata.service.RealtimeDatabaseService;
@@ -26,9 +26,11 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description: sensor_alarm_item
@@ -37,12 +39,14 @@
  * @Version: V1.0
  */
 @Service
-public class ElectricLoadServiceImpl extends ServiceImpl<ElectricLoadMapper, ElectricLoadEntity> implements IElectricLoadService {
+public class ElectricLoadServiceImpl implements IElectricLoadService {
     @Autowired
     private RealtimeDatabaseService realtimeDatabaseService;
+    @Resource
+    private MeterImplementMapper meterImplementMapper;
 
     @Override
-    public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, EnergyUnitToDevice energyUnitToDevice) {
+    public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, String meterId) {
         ListElectricLoadVO vo = new ListElectricLoadVO();
         List<ListElectricLoadItem> itemList = new ArrayList<>();
         vo.setItemList(itemList);
@@ -54,16 +58,19 @@
         detail.setAvg(CommonConst.DOUBLE_MINUS_SIGN);
         detail.setRate(CommonConst.DOUBLE_MINUS_SIGN);
         vo.setDetail(detail);
-        if (ObjectUtil.isEmpty(energyIndex) || ObjectUtil.isEmpty(energyUnitToDevice)) {
+
+        MeterImplement meterImplement = meterImplementMapper.selectById(meterId);
+
+        if (ObjectUtil.isEmpty(meterImplement)) {
             return vo;
         }
         List<Date> dateList = new ArrayList<>();
         ChartUtils.generateDateList(timeType, timeCode, dateList);
         // 鍥犱负influxdb娌℃湁鎸夌収鏈堝垎缁勫彇鏁版嵁锛屽彧鑳芥寜鐓ф棩鏈熷惊鐜彇鏁版嵁
         if (TimeTypeConst.TIME_TYPE_YEAR.equals(timeType)) {
-            getYearData(timeType, dateList, energyIndex, energyUnitToDevice, detail, itemList);
+            getYearData(timeType, dateList, energyIndex, meterImplement.getMeterName(), itemList);
         } else {
-            getDayAndMonthData(timeType, timeCode, energyIndex, energyUnitToDevice, detail, itemList);
+            getDayAndMonthData(timeType, timeCode, energyIndex, meterImplement.getMeterName(), itemList);
         }
         if (!StringUtil.isEmptyOrNull(energyIndex.getCode())) {
             Date start = ChartUtils.getDateTime(timeType, timeCode);
@@ -113,15 +120,8 @@
 
     /**
      * 鑾峰彇鏈堝拰澶╂暟鎹�,鍥犱负influxdb鍙互鎸夌収鍒嗐�傛椂銆傚ぉ鍒嗙粍鍙栨暟锛屼笉鍙互鎸夌収鏈堝垎缁勫彇鏁帮紝鎵�浠ュ垎鎴愪袱涓柟娉曟潵鍐�
-     *
-     * @param timeType
-     * @param timeCode
-     * @param energyIndex
-     * @param energyUnitToDevice
-     * @param detail
-     * @param itemList
      */
-    private void getDayAndMonthData(String timeType, String timeCode, EnergyIndex energyIndex, EnergyUnitToDevice energyUnitToDevice, ListElectricLoadDetail detail, List<ListElectricLoadItem> itemList) {
+    private void getDayAndMonthData(String timeType, String timeCode, EnergyIndex energyIndex, String meterName, List<ListElectricLoadItem> itemList) {
         String tagCodes = energyIndex.getCode();
         List<TagValue> maxList = new ArrayList<>();
         List<TagValue> minList = new ArrayList<>();
@@ -165,7 +165,7 @@
         for (Date date : dateList) {
             ListElectricLoadItem temp = new ListElectricLoadItem();
             temp.setTimeCode(ChartUtils.getTimeCode(timeType, date));
-            temp.setName(ObjectUtils.isNotEmpty(energyUnitToDevice) ? energyUnitToDevice.getName() : "");
+            temp.setName(ObjectUtils.isNotEmpty(meterName) ? meterName : "");
             temp.setMax(CommonConst.DOUBLE_MINUS_SIGN);
             temp.setMin(CommonConst.DOUBLE_MINUS_SIGN);
             temp.setAvg(CommonConst.DOUBLE_MINUS_SIGN);
@@ -219,15 +219,8 @@
 
     /**
      * 鑾峰彇骞存暟鎹�
-     *
-     * @param timeType
-     * @param dateList
-     * @param energyIndex
-     * @param energyUnitToDevice
-     * @param detail
-     * @param itemList
      */
-    private void getYearData(String timeType, List<Date> dateList, EnergyIndex energyIndex, EnergyUnitToDevice energyUnitToDevice, ListElectricLoadDetail detail, List<ListElectricLoadItem> itemList) {
+    private void getYearData(String timeType, List<Date> dateList, EnergyIndex energyIndex, String meterName, List<ListElectricLoadItem> itemList) {
         String tagCode = StringUtil.ifEmptyOrNullReturnValue(energyIndex.getCode());
         for (Date date : dateList) {
             ListElectricLoadItem temp = new ListElectricLoadItem();
@@ -253,7 +246,7 @@
 
             temp.setTimeCode(ChartUtils.getTimeCode(timeType, date));
             temp.setTimeCodeChart(ChartUtils.getTimeCodeChart(timeType, date));
-            temp.setName(StringUtil.ifEmptyOrNullReturnValue(energyUnitToDevice.getName()));
+            temp.setName(StringUtil.ifEmptyOrNullReturnValue(meterName));
             temp.setRate(CommonConst.DOUBLE_MINUS_SIGN);
             temp.setValue(CommonConst.DOUBLE_MINUS_SIGN);
             if (!temp.getMax().equals(CommonConst.DOUBLE_MINUS_SIGN) && Double.parseDouble(temp.getMax()) != CommonConst.DIGIT_DOUBLE_0) {
@@ -265,4 +258,20 @@
     }
 
 
+    /**
+     * 鑾峰彇鐢佃〃鍒楄〃
+     */
+    @Override
+    public List<ListElectricityMeterVO> listElectricMeter(String nodeId) {
+        List<MeterImplement> meterImplements = meterImplementMapper.selectByNodeId(nodeId);
+        meterImplements = meterImplements.stream().filter(x -> "electric".equals(x.getEnergyType())).collect(Collectors.toList());
+        List<ListElectricityMeterVO> list = new ArrayList<>();
+        for (MeterImplement meterImplement : meterImplements) {
+            ListElectricityMeterVO vo = new ListElectricityMeterVO();
+            vo.setCode(meterImplement.getId());
+            vo.setLabel(meterImplement.getMeterName());
+            list.add(vo);
+        }
+        return list;
+    }
 }

--
Gitblit v1.9.3