From d35545d88b9123b92b50aaf1b0fa4e3f20fd2209 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期五, 20 五月 2022 11:23:50 +0800
Subject: [PATCH] 摄像头

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java |   57 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 45 insertions(+), 12 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
index 03d895a..8babd79 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.HexUtil;
 import cn.hutool.core.util.StrUtil;
+import com.aliyuncs.iot.model.v20180120.BatchGetDeviceStateResponse;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.sandu.common.domain.CommonPage;
@@ -105,6 +106,31 @@
 
         // 鑾峰彇鏈�杩戠殑涓婃姤鏃堕棿
         List<String> deviceCodeList = listLight.stream().map(Light::getDeviceCode).collect(Collectors.toList());
+        //鎷嗗垎list
+        List<List<String>> split = CollectionUtil.split(deviceCodeList, 100);
+
+        List<BatchGetDeviceStateResponse.DeviceStatus> deviceStatuses = null;
+        for (List<String> splist : split) {
+            deviceStatuses = MainBoardInvokeSyncService.getInstance().batchGetDeviceState(splist);
+            if (deviceStatuses != null) {
+                for (LightBo lightBo : listLight) {
+                    for (BatchGetDeviceStateResponse.DeviceStatus deviceStatus : deviceStatuses) {
+
+                        if (lightBo.getDeviceCode() != null && lightBo.getDeviceCode().equals(deviceStatus.getDeviceName())) {
+                            if ("ONLINE".equals(deviceStatus.getStatus())) {
+                                lightBo.setOnlineStatus(0);
+                            } else if ("OFFLINE".equals(deviceStatus.getStatus())) {
+                                lightBo.setOnlineStatus(1);
+                            } else {
+                                lightBo.setOnlineStatus(2);
+                            }
+
+                        }
+                    }
+
+                }
+            }
+        }
         if (CollectionUtil.isNotEmpty(deviceCodeList)) {
             List<LightReportData> reportDataList = lightReportDataService.getNewestReportByDeviceCode(deviceCodeList);
             for (LightBo lightBo : listLight) {
@@ -310,7 +336,7 @@
                 currentWeekValue = 7;
             }
             map = new LinkedHashMap();
-            map.put("time",localDateTime.minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+            map.put("time", localDateTime.minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
             map.put("value", getlist(currentWeekValue));
             temp.add(map);
         }
@@ -382,7 +408,7 @@
                 currentWeekValue = 7;
             }
             map = new LinkedHashMap();
-            map.put("time",localDateTime.minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+            map.put("time", localDateTime.minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
             map.put("value", getlistEnergy(currentWeekValue));
             temp.add(map);
         }
@@ -599,20 +625,22 @@
                 for (int i = 0; i < controlLightCommandVOS.size(); i++) {
                     //寰楀埌鏃堕暱*浜害
                     BigDecimal bigEnergy1 = calculateEnergyConsumption(startTime, controlLightCommandVOS.get(i));
-//                    //璁$畻鑳借��(鎬�   鏃堕暱*浜害*鍔熺巼)
-                    BigDecimal totalEnergy = totalEnergy(bigEnergy1, Task.getLightAdress(), poleTaskLightPowerBos);
-                    bigEnergy[0] = bigEnergy[0].add(totalEnergy);
-//                    BigDecimal totalEnergy4 = totalEnergy(bigEnergy1, Task.getLightAdress(), poleTaskLightPowerBos);
-//                    bigEnergy[0] = bigEnergy[0].add(totalEnergy4);
+                    //鍒ゆ柇 Energy==0 鍒欎笉璁$畻
+                    if (bigEnergy1.compareTo(new BigDecimal(0)) != 0) {
+                        //璁$畻鑳借��(鎬�   鏃堕暱*浜害*鍔熺巼)
+                        BigDecimal totalEnergy = totalEnergy(bigEnergy1, Task.getLightAdress(), poleTaskLightPowerBos);
+                        bigEnergy[0] = bigEnergy[0].add(totalEnergy);
+                    }
                     if (controlLightCommandVOS.size() == (i + 1)) {
                         BigDecimal bigEnergy2 = calculateEnergyConsumption(controlLightCommandVOS.get(i), endTime);
 
                         System.out.println(bigEnergy2 + "鏃堕暱*浜害===========================");
 
                         //璁$畻鑳借��(鎬�   鏃堕暱*浜害*鍔熺巼)
-                        BigDecimal totalEnergy3 = totalEnergy(bigEnergy2, Task.getLightAdress(), poleTaskLightPowerBos);
-//                        saving.add(bigDecimal1);
-                        bigEnergy[0] = bigEnergy[0].add(totalEnergy3);
+                      if(bigEnergy2.compareTo(new BigDecimal(0)) != 0){
+                          BigDecimal totalEnergy3 = totalEnergy(bigEnergy2, Task.getLightAdress(), poleTaskLightPowerBos);
+                          bigEnergy[0] = bigEnergy[0].add(totalEnergy3);
+                      }
                         break;
                     }
                     startTime = controlLightCommandVOS.get(i);
@@ -622,9 +650,14 @@
                 //璁$畻鑳借��(閮ㄥ垎   鏃堕暱*浜害)
                 BigDecimal Energy = calculateEnergyConsumption(startTime, endTime);
                 //璁$畻鑳借��(鎬�   鏃堕暱*浜害*鍔熺巼)
-                BigDecimal totalEnergy = totalEnergy(Energy, Task.getLightAdress(), poleTaskLightPowerBos);
+           //鍒ゆ柇 Energy==0 鍒欎笉璁$畻
+                if (Energy.compareTo(new BigDecimal(0)) != 0) {
+                    BigDecimal totalEnergy = totalEnergy(Energy, Task.getLightAdress(), poleTaskLightPowerBos);
+                    bigEnergy[0] = bigEnergy[0].add(totalEnergy);
+                }
+
 //                saving.add(bigDecimal);
-                bigEnergy[0] = bigEnergy[0].add(totalEnergy);
+
             }
         });
         return bigEnergy[0];

--
Gitblit v1.9.3