Prechádzať zdrojové kódy

调整月度环比问题

Levi.u 4 rokov pred
rodič
commit
1bda2c4e12

+ 2 - 1
src/main/java/com/ebei/screen/common/util/EnergyUtils.java

@@ -41,7 +41,8 @@ public class EnergyUtils {
     static {
         // 初始化模板
         List<Map> monthList = new ArrayList<>();
-        Integer monthDays = LeviUtils.getMonthDays(LocalDateTime.now().getMonthValue());
+        //Integer monthDays = LeviUtils.getMonthDays(LocalDateTime.now().getMonthValue());
+        Integer monthDays = 31;
         for (int b = 1; b <= monthDays; b++) {
             List<Map> dayList = new ArrayList<>();
             for (int c = 0; c <= 23; c++) {

+ 2 - 2
src/main/java/com/ebei/screen/service/impl/EbaSystemServiceImpl.java

@@ -314,8 +314,8 @@ public class EbaSystemServiceImpl implements EbaSystemService {
         if(CollUtil.isEmpty(contentList)){
             return 200;
         }
-        List<Map> huojing = contentList.stream().filter(x -> ((Integer) x.get("AlarmType")) == 1).collect(Collectors.toList());
-        List<Map> guzhang = contentList.stream().filter(x -> ((Integer) x.get("AlarmType")) == 2).collect(Collectors.toList());
+        List<Map> huojing = contentList.stream().filter(x -> ((x.get("AlarmType")==null?-1:(Integer) x.get("AlarmType")) == 1)).collect(Collectors.toList());
+        List<Map> guzhang = contentList.stream().filter(x -> ((x.get("AlarmType")==null?-1:(Integer) x.get("AlarmType")) == 2)).collect(Collectors.toList());
         Query query = new Query();
         query.addCriteria(Criteria.where("_id").is(messageCode + "_" + LocalDateTime.now().getYear() + "_" + LocalDateTime.now().getMonthValue()));
         Update update = new Update();

+ 30 - 7
src/main/java/com/ebei/screen/service/impl/EnergyPlatformServiceImpl.java

@@ -294,12 +294,31 @@ public class EnergyPlatformServiceImpl implements EnergyPlatformService {
         );
         // 计算本日用量环比
         List<Map> dayHbList = new ArrayList<>();
-        List<Map> dataHb = flag ? (List<Map>) ((List<Map>) thisBoxDmonMap.get("data")).get(day - 1).get("data") : null;
-        List<Map> dataHbL = flag ? (List<Map>) ((List<Map>) (day == 1 ? thisBoxDmonMapL : thisBoxDmonMap).get("data")).get(day == 1 ? dayOfMonth - 1 : day - 2).get("data") : null;
-        for (int i = 0; i < 8; i++) {
-            dayHbList.add(Levi.by("time", String.format("%02d", i * 3) + ":00").set("today", dataHb.get(i * 3).get("all") == null ? 0.0 : dataHb.get(i * 3).get("all")).set("lastDay", dataHbL.get(i * 3).get("all") == null ? 0.0 : dataHbL.get(i * 3).get("all")));
+        List<Map> dataHb = new ArrayList<>();
+        List<Map> dataHbL = new ArrayList<>();
+        if (thisBoxDmonMap.get("data") != null) {
+            List<Map> x1 = (List<Map>) thisBoxDmonMap.get("data");
+            if (x1.get(day - 1) != null) {
+                dataHb = flag ? (List<Map>) x1.get(day - 1).get("data") : null;
+            }
+        }
+        if ((day == 1 ? (flagL ? thisBoxDmonMapL.get("data") : null) : (flag ? thisBoxDmonMap.get("data") : null)) != null) {
+            List<Map> x2 = (List<Map>) (day == 1 ? thisBoxDmonMapL : thisBoxDmonMap).get("data");
+            if (x2.get(day == 1 ? dayOfMonth - 1 : day - 2) != null) {
+                dataHbL = flag ? (List<Map>) x2.get(day == 1 ? dayOfMonth - 1 : day - 2).get("data") : null;
+            }
+        }
+        if (CollUtil.isNotEmpty(dataHb) && CollUtil.isNotEmpty(dataHbL)) {
+            for (int i = 0; i < 8; i++) {
+                dayHbList.add(Levi.by("time", String.format("%02d", i * 3) + ":00").set("today", dataHb.get(i * 3).get("all") == null ? 0.0 : dataHb.get(i * 3).get("all")).set("lastDay", dataHbL.get(i * 3).get("all") == null ? 0.0 : dataHbL.get(i * 3).get("all")));
+            }
+            dayHbList.add(Levi.by("time", "23:59").set("today", dataHb.get(23).get("all") == null ? 0.0 : dataHb.get(23).get("all")).set("lastDay", dataHbL.get(23).get("all") == null ? 0.0 : dataHbL.get(23).get("all")));
+        } else {
+            for (int i = 0; i < 8; i++) {
+                dayHbList.add(Levi.by("time", String.format("%02d", i * 3) + ":00").set("today", 0.0).set("lastDay", 0.0));
+            }
+            dayHbList.add(Levi.by("time", "23:59").set("today", 0.0).set("lastDay", 0.0));
         }
-        dayHbList.add(Levi.by("time", "23:59").set("today", dataHb.get(23).get("all") == null ? 0.0 : dataHb.get(23).get("all")).set("lastDay", dataHbL.get(23).get("all") == null ? 0.0 : dataHbL.get(23).get("all")));
         // 计算月度用量环比
         List<Map> monthHbList = new ArrayList<>();
         for (int i = 1; i <= 31; i++) {
@@ -307,11 +326,15 @@ public class EnergyPlatformServiceImpl implements EnergyPlatformService {
             double x2 = 0.0;
             if (flag) {
                 List<Map> l1 = (List<Map>) thisBoxDmonMap.get("data");
-                x1 = l1.get(i - 1).get("all") == null ? 0.0 : Double.valueOf((l1.get(i - 1) == null ? "0" : l1.get(i - 1).get("all").toString()));
+                if (CollUtil.isNotEmpty(l1)) {
+                    x1 = l1.get(i - 1).get("all") == null ? 0.0 : Double.valueOf((l1.get(i - 1) == null ? "0" : l1.get(i - 1).get("all").toString()));
+                }
             }
             if (flagL) {
                 List<Map> l2 = (List<Map>) thisBoxDmonMapL.get("data");
-                x2 = l2.get(i - 1).get("all") == null ? 0.0 : Double.valueOf((l2.get(i - 1) == null ? "0" : l2.get(i - 1).get("all").toString()));
+                if (CollUtil.isNotEmpty(l2)) {
+                    x2 = l2.get(i - 1).get("all") == null ? 0.0 : Double.valueOf((l2.get(i - 1) == null ? "0" : l2.get(i - 1).get("all").toString()));
+                }
             }
             monthHbList.add(Levi.by("day", i + "号").set("this", x1).set("last", x2));
         }