From b6dccb271639d18249f796a51a492ed1a4c3f2a6 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期一, 16 五月 2022 16:17:16 +0800
Subject: [PATCH] 操作日志

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java |   81 +++++++++++++++++++++++++++++++++-------
 1 files changed, 66 insertions(+), 15 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 f990228..ee55573 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
@@ -23,7 +23,9 @@
 import com.sandu.ximon.admin.param.LightRemarkParam;
 import com.sandu.ximon.admin.redis.LightKey;
 import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
 import com.sandu.ximon.admin.vo.ControlLightCommandVO;
+import com.sandu.ximon.admin.vo.EquipmentInfomation;
 import com.sandu.ximon.dao.bo.LightBo;
 import com.sandu.ximon.dao.bo.PoleTaskLightPowerBo;
 import com.sandu.ximon.dao.domain.Light;
@@ -146,6 +148,33 @@
         return one;
     }
 
+    /**
+     * 棣栭〉鐏潌缁戝畾淇℃伅
+     *
+     * @param deviceCode
+     * @return
+     */
+    public EquipmentInfomation getLightInfo(String deviceCode) {
+        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
+        equipmentInfo.setEquipmentType("鍗曠伅");
+        if (deviceCode == null || deviceCode.trim().length() == 0) {
+            return equipmentInfo;
+        }
+        Light one = getOne(Wrappers.<Light>lambdaQuery().eq(Light::getDeviceCode, deviceCode));
+        if (one != null) {
+            equipmentInfo.setEquipmentMac(one.getDeviceCode());
+            equipmentInfo.setEquipmentCreateTime(one.getCreateTime());
+        }
+
+        Object o = redisService.get(LightKey.REPORT_MAC.key(deviceCode));
+        if (o != null) {
+            equipmentInfo.setEquipmentState("鍦ㄧ嚎");
+        } else {
+            equipmentInfo.setEquipmentState("绂荤嚎");
+        }
+        return equipmentInfo;
+    }
+
     public boolean addRemark(LightRemarkParam param) {
         Light light = getById(param.getLightId());
         if (light == null) {
@@ -174,7 +203,9 @@
             Map<String, Object> map = new HashMap<>();
             try {
                 map.put("deviceCode", param.getDeviceCode());
-                WrapResponseCommonFrame<A5LightBrightnessRespInnerFrame> frame = MainBoardInvokeSyncService.getInstance().sendRRPC(param.getDeviceCode(), a5Frame, A5LightBrightnessRespInnerFrame.class);
+                WrapResponseCommonFrame<A5LightBrightnessRespInnerFrame> frame
+                        = MainBoardInvokeSyncService.getInstance().sendRRPC(param.getDeviceCode(), a5Frame, A5LightBrightnessRespInnerFrame.class);
+                StoreOperationRecordsUtils.storeInnerFrameData(param.getDeviceCode(), "鍗曠伅甯�-浜害鎺у埗", a5Frame, frame);
                 if (frame == null) {
                     map.put("status", DeviceRespStatusEnums.OTHER_ERROR.getCode());
                     resultList.add(map);
@@ -196,6 +227,20 @@
                 resultList.add(map);
             }
         }
+
+        /**
+         * 鏈嶅姟绔壒閲忔帶鐏棩蹇楄褰曞紑濮�
+         */
+        String content = "{鎺х伅璇锋眰锛�" + paramList.toString()
+                + "锛� 鎺х伅缁撴灉锛�" + resultList.toString() + "}";
+        List<String> codeList = new ArrayList<>();
+        for (LightControlParam bean : paramList) {
+            codeList.add(bean.getDeviceCode());
+        }
+        StoreOperationRecordsUtils.storeOperationData(codeList, null, "鏈嶅姟绔壒閲忔帶鐏�", content);
+        /**
+         * 鏈嶅姟绔壒閲忔帶鐏棩蹇楄褰曠粨鏉�
+         */
 
         return resultList;
     }
@@ -495,7 +540,7 @@
                     bigDecimalResult[0] = bigDecimalResult[0].add(bigDecimal);
                     if (controlLightCommandVOS.size() == (i + 1)) {
                         BigDecimal bigDecimal1 = calculateEnergySaving(controlLightCommandVOS.get(i), endTime);
-                        System.out.println(bigDecimal1 + "===========================");
+//                        System.out.println(bigDecimal1 + "===========================");
 //                        saving.add(bigDecimal1);
                         bigDecimalResult[0] = bigDecimalResult[0].add(bigDecimal1);
                         break;
@@ -640,28 +685,33 @@
     public BigDecimal calculateEnergySaving(ControlLightCommandVO v1, ControlLightCommandVO v2) {
 
 //        BigDecimal hour = BigDecimal.valueOf((v2.getHour() - v1.getHour()));
-        BigDecimal hour;
+//        BigDecimal hour;
+        double hour;
+        double min;
+        //璁$畻鏃堕暱
         if (v2.getHour() > v1.getHour()) {
-            hour = BigDecimal.valueOf((v2.getHour() - v1.getHour()));
+            hour = v2.getHour() - v1.getHour();
         } else if (v2.getHour() < v1.getHour()) {
-            hour = BigDecimal.valueOf((v2.getHour() + 24 - v1.getHour()));
+            hour = 24 + (v2.getHour() - v1.getHour());
         } else {
-            hour = BigDecimal.valueOf(0);
+            hour = 0;
         }
-//        BigDecimal min = BigDecimal.valueOf((v2.getMin() - v1.getMin()) / 60);
-        BigDecimal min;
+        //璁$畻鍒嗛挓
+
         if (v2.getMin() > v1.getMin()) {
-            min = BigDecimal.valueOf((v2.getMin() - v1.getMin()) / 60);
+            min = v2.getMin() - v1.getMin();
         } else if (v2.getMin() < v1.getMin()) {
-            min = BigDecimal.valueOf((v2.getMin() + 60 - v1.getMin()) / 60);
+            min = 60 + (v1.getMin() - v2.getMin());
+            hour = hour - 1;
         } else {
-            min = BigDecimal.valueOf(0);
+            min = 0;
         }
+        //璁$畻鏃堕暱
+        BigDecimal totalTime = BigDecimal.valueOf(hour * 60 + min);
 
-        BigDecimal totalTime = (hour.add(min));
-
-        BigDecimal energySaving = BigDecimal.valueOf((100 - v1.getBrightness())).divide(BigDecimal.valueOf(100)).multiply(totalTime).divide(BigDecimal.valueOf(24));
-        System.out.println(energySaving);
+        //璁$畻鑺傝兘鐜� ( (1-v1.getBrightness()/100)*totalTime/3600 )   淇濈暀涓や綅灏忔暟
+        BigDecimal energySaving = BigDecimal.valueOf((1 - v1.getBrightness() / 100) * totalTime.doubleValue() / 3600).setScale(2, BigDecimal.ROUND_HALF_UP);
+        System.out.println(energySaving + "鑺傝兘鐜�");
         return energySaving;
     }
 
@@ -682,6 +732,7 @@
             min = BigDecimal.valueOf((v2.getMin() - v1.getMin()) / 60);
         } else if (v2.getMin() < v1.getMin()) {
             min = BigDecimal.valueOf((v2.getMin() + 60 - v1.getMin()) / 60);
+            hour = hour.subtract(BigDecimal.valueOf(1));
         } else {
             min = BigDecimal.valueOf(0);
         }

--
Gitblit v1.9.3