From e55c8b0a92eb9715edd90c31dfd4de51a47b588b Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期五, 04 十一月 2022 17:40:08 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightService.java |   36 ++++++++++++++++++++++++++----------
 1 files changed, 26 insertions(+), 10 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 f0238af..998120c 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.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.aliyuncs.iot.model.v20180120.BatchGetDeviceStateResponse;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -29,6 +30,7 @@
 import com.sandu.ximon.admin.redis.DeviceRedisKey;
 import com.sandu.ximon.admin.redis.LightKey;
 import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.RedisUtils;
 import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
 import com.sandu.ximon.admin.vo.ControlLightCommandVO;
 import com.sandu.ximon.admin.vo.EquipmentInfomation;
@@ -63,6 +65,7 @@
     private final LightReportDataService lightReportDataService;
     private final PoleBindingService bindingService;
     private final PoleService poleService;
+    private final RedisUtils redisUtils;
 
     /**
      * 褰曞叆褰撳墠璁惧鐮佺殑璺伅鏁版嵁
@@ -199,13 +202,17 @@
      */
     public Light getLight(String deviceCode) {
         Light one = getOne(Wrappers.<Light>lambdaQuery().eq(Light::getDeviceCode, deviceCode));
-        Object o = redisService.get(LightKey.REPORT_MAC.key(deviceCode));
-        if (o != null) {
-            one.setOnlineStatus(1);
+        if (one == null) {
+            return null;
         } else {
-            one.setOnlineStatus(0);
+            Object o = redisService.get(LightKey.REPORT_MAC.key(deviceCode));
+            if (o != null) {
+                one.setOnlineStatus(1);
+            } else {
+                one.setOnlineStatus(0);
+            }
+            return one;
         }
-        return one;
     }
 
     /**
@@ -930,10 +937,15 @@
     public void setCacheData() {
 
         List<String> collect = list().stream().map(Light::getDeviceCode).collect(Collectors.toList());
+//        collect.forEach(
+//                code -> {
+//                    redisUtils.delete(DeviceRedisKey.LIGHT_DEVICE + code);
+//                }
+//        );
         List<List<String>> split = CollectionUtil.split(collect, 100);
 
-        List<BatchGetDeviceStateResponse.DeviceStatus> deviceStatuses = null;
-        List<RedisDeviceStatus> statusList = null;
+        List<BatchGetDeviceStateResponse.DeviceStatus> deviceStatuses = new ArrayList<>();
+        List<RedisDeviceStatus> statusList = new ArrayList<>();
         for (List<String> splist : split) {
             deviceStatuses = MainBoardInvokeSyncService.getInstance().batchGetDeviceState(splist);
             if (deviceStatuses != null) {
@@ -944,6 +956,10 @@
                         device.setStatus(0);
                     } else if ("OFFLINE".equals(deviceStatus.getStatus())) {
                         device.setStatus(1);
+                    } else if ("UNACTIVE".equals(deviceStatus.getStatus())) {
+                        device.setStatus(0);
+                    } else if ("DISABLE".equals(deviceStatus.getStatus())) {
+                        device.setStatus(0);
                     } else {
                         device.setStatus(2);
                     }
@@ -954,11 +970,10 @@
         }
 
         statusList.forEach(status -> {
-            redisUtils.set(DeviceRedisKey.LIGHT_DEVICE + status.getDeviceId(), status);
+            redisUtils.set(DeviceRedisKey.LIGHT_DEVICE + status.getDeviceId(), JSON.toJSONString(status));
         });
 
     }
-
 
 
     /**
@@ -986,7 +1001,7 @@
         }
 
         A5LightSetCalendarReqInnerFrame setCalendarReqInnerFrame =
-                new A5LightSetCalendarReqInnerFrame(address, year, month, day, hour, min, sec);
+                new A5LightSetCalendarReqInnerFrame(address, year % 100, month + 1, day, hour, min, sec);
 
         A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_LIGHT_DATA.getCode(), setCalendarReqInnerFrame);
         System.out.println(a5Frame + "            -----a5Frame");
@@ -1014,6 +1029,7 @@
         Light light = getLight(deviceCode);
         if (light == null) {
             log.error("鍗曠伅涓诲姩鍚屾鏃堕棿璇锋眰寮傚父锛屽崟鐏俊鎭笉瀛樺湪锛�");
+            return;
         }
         //鍗曠伅浠诲姟淇℃伅
         LightTaskPoleRelation lightTaskPoleRelation = SpringContextHolder.getBean(LightTaskPoleRelationService.class)

--
Gitblit v1.9.3