From 1e317734f555657017b3ad1558e1a84789177c5d Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期二, 06 五月 2025 09:46:31 +0800
Subject: [PATCH] 峰谷平占比计算

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java |   36 +++++++++++++++++++-----------------
 1 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java
index 9d158eb..a15bf16 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java
@@ -51,12 +51,13 @@
                 double value = getSumValue(entry.getValue(), 1, calendar);
 
                 //计算昨日总电耗
-                calendar.set(Calendar.MILLISECOND, 0);
-                calendar.set(Calendar.MINUTE, 0);
-                calendar.set(Calendar.HOUR_OF_DAY, 0);
+                Calendar cal = (Calendar) calendar.clone();
+                cal.set(Calendar.MILLISECOND, 0);
+                cal.set(Calendar.MINUTE, 0);
+                cal.set(Calendar.HOUR_OF_DAY, 0);
                 Date endTime = calendar.getTime();
-                calendar.add(Calendar.DAY_OF_YEAR, -1);
-                Date startTime = calendar.getTime();
+                cal.add(Calendar.DAY_OF_YEAR, -1);
+                Date startTime = cal.getTime();
                 double totalValue = getSumValueTotal(entry.getValue().get(0).getPowerNo(), startTime,endTime);
 
                 //下发昨日占比
@@ -75,11 +76,12 @@
                     }
 
                     //计算前三十日总电耗
-                    calendar.set(Calendar.MILLISECOND, 0);
-                    calendar.set(Calendar.MINUTE, 0);
-                    calendar.set(Calendar.HOUR_OF_DAY, 0);
-                    calendar.add(Calendar.DAY_OF_YEAR, -30);
-                    Date startTimeMonth = calendar.getTime();
+                    Calendar monthCal = (Calendar) calendar.clone();
+                    monthCal.set(Calendar.MILLISECOND, 0);
+                    monthCal.set(Calendar.MINUTE, 0);
+                    monthCal.set(Calendar.HOUR_OF_DAY, 0);
+                    monthCal.add(Calendar.DAY_OF_YEAR, -30);
+                    Date startTimeMonth = monthCal.getTime();
                     double totalValueMonth = getSumValueTotal(entry.getValue().get(0).getPowerNo(), startTimeMonth,endTime);
 
                     //下发前三十日占比
@@ -91,22 +93,22 @@
                 }
             });
         } catch (Exception ex) {
-            logger.error("runPeakValleyFlatTask运行异常");
-            ex.printStackTrace();
+            logger.error("runPeakValleyFlatTask运行异常", ex);
         }
     }
 
     private Date getTime(String timeStr, int ago, Calendar calendar) {
+        Calendar cal = (Calendar) calendar.clone();
         String[] timeSplit = timeStr.split(":");
         if (timeSplit.length != 2) {
             throw new IllegalArgumentException("时间配置格式不合法");
         }
         //根据配置获取startTime、endTime
-        calendar.set(Calendar.MILLISECOND, 0);
-        calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeSplit[0]));
-        calendar.set(Calendar.MINUTE, Integer.parseInt(timeSplit[1]));
-        calendar.add(Calendar.DAY_OF_YEAR, -ago);
-        return calendar.getTime();
+        cal.set(Calendar.MILLISECOND, 0);
+        cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeSplit[0]));
+        cal.set(Calendar.MINUTE, Integer.parseInt(timeSplit[1]));
+        cal.add(Calendar.DAY_OF_YEAR, -ago);
+        return cal.getTime();
     }
 
     private List<ApiPointValueDTO> fillMissingData(List<ApiPointValueDTO> valueList,

--
Gitblit v1.9.3