From 51eb63d31f771dd71b34d22e23c94ab2ee27f5c4 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期五, 20 五月 2022 13:40:40 +0800
Subject: [PATCH] fix

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java |   51 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 46 insertions(+), 5 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 8babd79..8d43930 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
@@ -600,6 +600,47 @@
          */
     }
 
+    /**
+     * 鍗曚釜浠诲姟涓�澶╃殑鑺傝兘鐜�
+     *
+     * @return
+     */
+    public BigDecimal jisuan(LightTaskDto Task) {
+        final BigDecimal[] bigDecimalResult = {new BigDecimal(0.00)};
+        /**
+         * 鑺傝兘鐜囪绠楀紑濮�
+         */
+        //TODO
+        ControlLightCommandVO startTime = parseSwitchLightCommand(Task.getOpenOrder());
+        ControlLightCommandVO endTime = parseSwitchLightCommand(Task.getCloseOrder());
+        //瀛樻斁鑺傝兘鐜�
+        //鑾峰彇鍒板崟鐏换鍔$殑鑺傝兘鐜�
+        if (Task.getControlOrder() != null && !Task.getControlOrder().isEmpty()) {//鏈夋帶绛夋寚浠� 鎷嗗垎璁$畻
+            List<ControlLightCommandVO> controlLightCommandVOS = parseControlLightCommand(Task.getControlOrder());
+
+            for (int i = 0; i < controlLightCommandVOS.size(); i++) {
+                BigDecimal bigDecimal = calculateEnergySaving(startTime, controlLightCommandVOS.get(i));
+                bigDecimalResult[0] = bigDecimalResult[0].add(bigDecimal);
+                if (controlLightCommandVOS.size() == (i + 1)) {
+                    BigDecimal bigDecimal1 = calculateEnergySaving(controlLightCommandVOS.get(i), endTime);
+                    bigDecimalResult[0] = bigDecimalResult[0].add(bigDecimal1);
+                    break;
+                }
+                startTime = controlLightCommandVOS.get(i);
+//                    saving.add(bigDecimal);
+            }
+        } else {//鏃犳帶鐏寚浠� 鐩存帴璁$畻
+            BigDecimal bigDecimal = calculateEnergySaving(startTime, endTime);
+//                saving.add(bigDecimal);
+            bigDecimalResult[0] = bigDecimalResult[0].add(bigDecimal);
+        }
+        return bigDecimalResult[0];
+
+        /**
+         * 鑺傝兘鐜囪绠楃粨鏉�
+         */
+    }
+
 
     /**
      * 涓�澶╃殑鑳借��
@@ -637,10 +678,10 @@
                         System.out.println(bigEnergy2 + "鏃堕暱*浜害===========================");
 
                         //璁$畻鑳借��(鎬�   鏃堕暱*浜害*鍔熺巼)
-                      if(bigEnergy2.compareTo(new BigDecimal(0)) != 0){
-                          BigDecimal totalEnergy3 = totalEnergy(bigEnergy2, Task.getLightAdress(), poleTaskLightPowerBos);
-                          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);
@@ -650,7 +691,7 @@
                 //璁$畻鑳借��(閮ㄥ垎   鏃堕暱*浜害)
                 BigDecimal Energy = calculateEnergyConsumption(startTime, endTime);
                 //璁$畻鑳借��(鎬�   鏃堕暱*浜害*鍔熺巼)
-           //鍒ゆ柇 Energy==0 鍒欎笉璁$畻
+                //鍒ゆ柇 Energy==0 鍒欎笉璁$畻
                 if (Energy.compareTo(new BigDecimal(0)) != 0) {
                     BigDecimal totalEnergy = totalEnergy(Energy, Task.getLightAdress(), poleTaskLightPowerBos);
                     bigEnergy[0] = bigEnergy[0].add(totalEnergy);

--
Gitblit v1.9.3