From 03e1ff455f71330e6d1adaaa46c6613238f2b1bd Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 16 六月 2026 10:58:16 +0800
Subject: [PATCH] feat: 添加电量记录同步功能及相关数据处理优化
---
src/main/java/com/ruoyi/http/util/StatisticEleParseUtil.java | 30 ++++++++++++++++++++----------
1 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/ruoyi/http/util/StatisticEleParseUtil.java b/src/main/java/com/ruoyi/http/util/StatisticEleParseUtil.java
index 5177dd7..bb682de 100644
--- a/src/main/java/com/ruoyi/http/util/StatisticEleParseUtil.java
+++ b/src/main/java/com/ruoyi/http/util/StatisticEleParseUtil.java
@@ -8,6 +8,7 @@
import com.ruoyi.http.vo.StatisticEleRecordVo;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
@@ -99,24 +100,33 @@
private static void fillConsumption(TqdianbiaoEleRecord entity, JSONArray d, Integer ratio,
JSONArray sArr, JSONArray eArr) {
- BigDecimal rawTotal = null;
if (d != null && !d.isEmpty()) {
- rawTotal = d.getBigDecimal(0);
- entity.setSharpConsumption(d.size() >= 2 ? d.getBigDecimal(1) : null);
- entity.setPeakConsumption(d.size() >= 3 ? d.getBigDecimal(2) : null);
- entity.setFlatConsumption(d.size() >= 4 ? d.getBigDecimal(3) : null);
- entity.setValleyConsumption(d.size() >= 5 ? d.getBigDecimal(4) : null);
- entity.setDeepValleyConsumption(d.size() >= 6 ? d.getBigDecimal(5) : null);
+ entity.setTotalConsumption(StatisticEleReadingUtil.calcConsumptionFromRaw(d.getBigDecimal(0), ratio));
+ entity.setSharpConsumption(consumptionAt(d, 1, ratio));
+ entity.setPeakConsumption(consumptionAt(d, 2, ratio));
+ entity.setFlatConsumption(consumptionAt(d, 3, ratio));
+ entity.setValleyConsumption(consumptionAt(d, 4, ratio));
+ entity.setDeepValleyConsumption(consumptionAt(d, 5, ratio));
} else {
- rawTotal = StatisticEleReadingUtil.calcConsumption(
+ BigDecimal rawTotal = StatisticEleReadingUtil.calcConsumption(
StatisticEleReadingUtil.firstReading(sArr),
StatisticEleReadingUtil.firstReading(eArr),
1);
+ entity.setTotalConsumption(StatisticEleReadingUtil.calcConsumptionFromRaw(rawTotal, ratio));
}
- entity.setTotalConsumption(StatisticEleReadingUtil.calcConsumptionFromRaw(rawTotal, ratio));
+ }
+
+ private static BigDecimal consumptionAt(JSONArray d, int index, Integer ratio) {
+ if (d.size() <= index) {
+ return null;
+ }
+ return StatisticEleReadingUtil.calcConsumptionFromRaw(d.getBigDecimal(index), ratio);
}
private static Double toDouble(BigDecimal value) {
- return value == null ? null : value.doubleValue();
+ if (value == null) {
+ return null;
+ }
+ return value.setScale(StatisticEleReadingUtil.CONSUMPTION_SCALE, RoundingMode.HALF_UP).doubleValue();
}
}
--
Gitblit v1.9.3