From 5d36e1f987ef21e44ded2e8a1d06c28094ec1e76 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期六, 19 四月 2025 12:39:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java |   58 ++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 38 insertions(+), 20 deletions(-)

diff --git a/zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java
index e607910..1ce7f2c 100644
--- a/zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java
@@ -5,7 +5,8 @@
 import com.zhitan.common.enums.ElectricityTypeEnum;
 import com.zhitan.common.enums.TimeType;
 import com.zhitan.common.utils.DateUtils;
-import com.zhitan.model.domain.vo.ModelNodeIndexInfor;
+import com.zhitan.costmanagement.mapper.CostPriceRelevancyMapper;
+import com.zhitan.model.domain.vo.ModelNodeIndexInfo;
 import com.zhitan.model.mapper.ModelNodeMapper;
 import com.zhitan.peakvalley.domain.ElectricityDataItem;
 import com.zhitan.peakvalley.domain.dto.ElectricityDataItemListDTO;
@@ -35,7 +36,8 @@
     private ModelNodeMapper modelNodeMapper;
     @Resource
     private PeakValleyMapper electricityDataItemMapper;
-
+    @Resource
+    CostPriceRelevancyMapper costPriceRelevancyMapper;
 
     /**
      * 鏌ヨ缁熻鏁版嵁
@@ -53,9 +55,9 @@
 
         Map<String, List<ElectricityDataItem>> electricityDataMap = new HashMap<>();
         // 鏌ヨ鐐逛綅淇℃伅
-        List<ModelNodeIndexInfor> nodeIndexInfoList = modelNodeMapper.selectIndexByModelCodeAndNodeId(dto.getModelCode(), dto.getNodeId());
+        List<ModelNodeIndexInfo> nodeIndexInfoList = modelNodeMapper.selectIndexByModelCodeAndNodeId(dto.getModelCode(), dto.getNodeId());
         if (CollectionUtils.isNotEmpty(nodeIndexInfoList)) {
-            Set<String> indexSet = nodeIndexInfoList.stream().map(ModelNodeIndexInfor::getIndexId).collect(Collectors.toSet());
+            Set<String> indexSet = nodeIndexInfoList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toSet());
             List<ElectricityDataItem> dataItemList = electricityDataItemMapper.getDataStatistics(indexSet, startTime, endTime, timeType);
 
             electricityDataMap = dataItemList.stream()
@@ -128,17 +130,26 @@
 
         Map<String, List<ElectricityDataItem>> electricityDataMap = new HashMap<>();
         // 鏌ヨ鐐逛綅淇℃伅
-        List<ModelNodeIndexInfor> nodeIndexInfoList = modelNodeMapper.selectIndexByModelCodeAndNodeId(dto.getModelCode(), dto.getNodeId());
+        List<ModelNodeIndexInfo> nodeIndexInfoList = modelNodeMapper.selectIndexByModelCodeAndNodeId(dto.getModelCode(), dto.getNodeId());
         if (CollectionUtils.isNotEmpty(nodeIndexInfoList)) {
-            Set<String> indexSet = nodeIndexInfoList.stream().map(ModelNodeIndexInfor::getIndexId).collect(Collectors.toSet());
-            List<ElectricityDataItem> dataItemList = electricityDataItemMapper.getDataStatistics(indexSet, startTime, endTime, timeType);
+            Set<String> indexSet = nodeIndexInfoList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toSet());
+            // 鏍规嵁灏忔椂鏁版嵁璁$畻澶╃殑鏁版嵁
+            List<ElectricityDataItem> dataItemList = electricityDataItemMapper.getDataStatistics(indexSet, startTime, endTime, TimeType.HOUR.name());
 
             electricityDataMap = dataItemList.stream()
                     .collect(Collectors.groupingBy(li -> DateUtil.formatDateTime(li.getDataTime())));
         }
         while (!startTime.after(endTime)) {
-            String mapKey = DateUtil.formatDateTime(startTime);
-            List<ElectricityDataItem> dataItemList = electricityDataMap.get(mapKey);
+
+            Date nextTime = DateUtil.offsetDay(startTime, 1);
+            List<ElectricityDataItem> dataItemList = new ArrayList<>();
+            for (Map.Entry<String, List<ElectricityDataItem>> entry : electricityDataMap.entrySet()) {
+                String key = entry.getKey();
+                if ((DateUtils.parseDate(key).after(startTime) || DateUtils.parseDate(key).equals(startTime)) && DateUtils.parseDate(key).before(nextTime)) {
+                    List<ElectricityDataItem> list = entry.getValue();
+                    dataItemList.addAll(list);
+                }
+            }
 
             BigDecimal sharpFee = BigDecimal.ZERO;
             BigDecimal sharpPower = BigDecimal.ZERO;
@@ -199,11 +210,11 @@
         AtomicReference<BigDecimal> tipCount = new AtomicReference<>(BigDecimal.ZERO);
         AtomicReference<BigDecimal> troughCount = new AtomicReference<>(BigDecimal.ZERO);
         AtomicReference<BigDecimal> peakCount = new AtomicReference<>(BigDecimal.ZERO);
-        
+
         reportVOList.stream().forEach(r->{
             PeakValleyLineChatVO costVO = new PeakValleyLineChatVO();
             PeakValleyLineChatVO powerConsumptionVO = new PeakValleyLineChatVO();
-            
+
             /**
              * 鐢ㄧ數閲�
              */
@@ -243,7 +254,7 @@
             peakFreeCount.set(peakFreeCount.get().add(r.getPeakFee()));
         });
 
-        peakValleyDayTotalVO.setPeakPowerCost(peakFreeCount.get().doubleValue());   
+        peakValleyDayTotalVO.setPeakPowerCost(peakFreeCount.get().doubleValue());
         peakValleyDayTotalVO.setPeakPowerConsumption(peakCount.get().doubleValue());
         peakValleyDayTotalVO.setFlatPowerCost(flatFreeCount.get().doubleValue());
         peakValleyDayTotalVO.setFlatPowerConsumption(flatCount.get().doubleValue());
@@ -277,13 +288,15 @@
             peakValleyDayTotalVO.setTipPowerCostProportion(0);
             peakValleyDayTotalVO.setTroughPowerCostProportion(0);
         }
-        
-        peakValleyDayTotalVO.setTotalCost(powerTotal.doubleValue());
-        peakValleyDayTotalVO.setTotalPowerConsumption(freeTotal.doubleValue());
+
+//        peakValleyDayTotalVO.setTotalCost(powerTotal.doubleValue());
+//        peakValleyDayTotalVO.setTotalPowerConsumption(freeTotal.doubleValue());
+        peakValleyDayTotalVO.setTotalCost(freeTotal.doubleValue());
+        peakValleyDayTotalVO.setTotalPowerConsumption(powerTotal.doubleValue());
         peakValleyVO.setTotalVO(peakValleyDayTotalVO);
         peakValleyVO.setCostList(costList);
         peakValleyVO.setPowerConsumptionList(powerConsumptionList);
-        
+
         return peakValleyVO;
     }
 
@@ -298,9 +311,9 @@
 
         Map<String, List<ElectricityDataItem>> electricityDataMap = new HashMap<>();
         // 鏌ヨ鐐逛綅淇℃伅
-        List<ModelNodeIndexInfor> nodeIndexInfoList = modelNodeMapper.selectIndexByModelCodeAndNodeId(dto.getModelCode(), dto.getNodeId());
+        List<ModelNodeIndexInfo> nodeIndexInfoList = modelNodeMapper.selectIndexByModelCodeAndNodeId(dto.getModelCode(), dto.getNodeId());
         if (CollectionUtils.isNotEmpty(nodeIndexInfoList)) {
-            Set<String> indexSet = nodeIndexInfoList.stream().map(ModelNodeIndexInfor::getIndexId).collect(Collectors.toSet());
+            Set<String> indexSet = nodeIndexInfoList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toSet());
             List<ElectricityDataItem> dataItemList = electricityDataItemMapper.getDataStatistics(indexSet, startTime, endTime, timeType);
 
             electricityDataMap = dataItemList.stream()
@@ -410,9 +423,9 @@
 
         Map<String, List<ElectricityDataItem>> electricityDataMap = new HashMap<>();
         // 鏌ヨ鐐逛綅淇℃伅
-        List<ModelNodeIndexInfor> nodeIndexInfoList = modelNodeMapper.selectIndexByModelCodeAndNodeId(dto.getModelCode(), dto.getNodeId());
+        List<ModelNodeIndexInfo> nodeIndexInfoList = modelNodeMapper.selectIndexByModelCodeAndNodeId(dto.getModelCode(), dto.getNodeId());
         if (CollectionUtils.isNotEmpty(nodeIndexInfoList)) {
-            Set<String> indexSet = nodeIndexInfoList.stream().map(ModelNodeIndexInfor::getIndexId).collect(Collectors.toSet());
+            Set<String> indexSet = nodeIndexInfoList.stream().map(ModelNodeIndexInfo::getIndexId).collect(Collectors.toSet());
             List<ElectricityDataItem> dataItemList = electricityDataItemMapper.getDataStatistics(indexSet, startTime, endTime, timeType);
 
             electricityDataMap = dataItemList.stream()
@@ -472,4 +485,9 @@
 
        return reportVOList;
     }
+
+    @Override
+    public PeakValleyDayVO segmentAnalysisDayCustomize(PeakValleyDTO dto) {
+        return null;
+    }
 }

--
Gitblit v1.9.3