From 3ef2e9d87847763b7b2cae55fe52f75d5ef7f65f Mon Sep 17 00:00:00 2001
From: DYL <Dn1332079466>
Date: 星期一, 10 二月 2025 11:05:22 +0800
Subject: [PATCH] 电能负荷分析

---
 zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java |   44 +++++++++++++++++---------------------------
 1 files changed, 17 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..a01fd03 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,12 +11,9 @@
 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.service.IElectricLoadService;
 import com.zhitan.model.domain.EnergyIndex;
 import com.zhitan.realtimedata.domain.TagValue;
@@ -26,6 +24,7 @@
 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;
@@ -37,12 +36,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) {
         ListElectricLoadVO vo = new ListElectricLoadVO();
         List<ListElectricLoadItem> itemList = new ArrayList<>();
         vo.setItemList(itemList);
@@ -54,16 +55,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(energyIndex.getMeterId());
+
+        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 +117,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 +162,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 +216,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 +243,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) {

--
Gitblit v1.9.3