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/MonitorService.java |  519 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 479 insertions(+), 40 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
index 0e434a9..4188b54 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -1,79 +1,518 @@
 package com.sandu.ximon.admin.service;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.sandu.common.domain.CommonPage;
 import com.sandu.common.execption.BusinessException;
+import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.service.impl.BaseServiceImpl;
-import com.sandu.ximon.admin.param.BannerParam;
+import com.sandu.common.util.SpringContextHolder;
+import com.sandu.ximon.admin.dto.YSY_AccessTokenDto;
+import com.sandu.ximon.admin.dto.YSY_MonitorDto;
 import com.sandu.ximon.admin.param.MonitorParam;
-import com.sandu.ximon.dao.domain.Banner;
+import com.sandu.ximon.admin.redis.DeviceRedisKey;
+import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.ListPagingUtils;
+import com.sandu.ximon.admin.utils.RedisUtils;
+import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
+import com.sandu.ximon.admin.vo.EquipmentInfomation;
+import com.sandu.ximon.admin.vo.RedisDeviceStatus;
+import com.sandu.ximon.dao.bo.MonitorBo;
 import com.sandu.ximon.dao.domain.Monitor;
+import com.sandu.ximon.dao.domain.PoleBinding;
+import com.sandu.ximon.dao.enums.OrderByEnums;
+import com.sandu.ximon.dao.enums.PoleBindingEnums;
 import com.sandu.ximon.dao.mapper.MonitorMapper;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
 
 @Service
 @AllArgsConstructor
+@Slf4j
 public class MonitorService extends BaseServiceImpl<MonitorMapper, Monitor> {
     private final MonitorMapper monitorMapper;
+    //钀ょ煶浜慉ppKey
+    private static final String AppKey = "51a534ebadf54c31a0848dc575dfa206";
+    //钀ょ煶浜� AppKey Secret
+    private static final String Secret = "8c32c67a73c87b9e461b2e3bdf58967a";
+
+    //钀ょ煶浜戝湴鍧�
+    private static final String YSY_URL = "https://open.ys7.com/api/lapp";
+    //鑾峰彇钀ょ煶浜慳ccessToken鍦板潃
+    private static final String ACCESSTOKEN_URL = "/token/get";
+    //娣诲姞钀ょ煶浜戞憚鍍忓ご
+    private static final String ADD_DEVICE_URL = "/device/add";
+    //鍒犻櫎钀ょ煶浜戞憚鍍忓ご
+    private static final String DELETE_DEVICE_URL = "/device/delete";
+    //鑾峰彇钀ょ煶浜戝崟涓澶囦俊鎭�
+    private static final String GET_DEVICE_URL = "/device/info";
+    //鑾峰彇钀ょ煶浜戞憚鍍忓ご鎾斁鍦板潃URL
+    private static final String GET_VEDIO_URL = "/v2/live/address/get";
+
+
+    private final PoleBindingService poleBindingService;
+
+    private final RedisUtils redisUtils;
 
     /**
-     * 鏌ヨ鍏ㄩ儴鎽勫儚澶�
+     * 鎽勫儚澶村垪琛ㄦā绯婃煡璇�
      */
-    public List<Monitor> listMonitor() {
-        LambdaQueryWrapper<Monitor> wrapper = Wrappers.lambdaQuery(Monitor.class);
-        List<Monitor> list = list(wrapper);
+    public CommonPage listMonitorByKeyword(BaseConditionVO baseConditionVO, Integer order, Integer seq, MonitorParam monitorParam) {
+        //缁戝畾鐘舵�侊細宸茬粦瀹�/鏈粦瀹�/鍏ㄩ儴
+        if (monitorParam.getBindingState() == null) {
+            //鍏ㄩ儴
+            monitorParam.setBindingState(2);
+        }
+        //鎺掑簭瀛楁
+        String orderByResult = "id";
+        //姝e簭銆佸�掑彊
+        String orderBySeq = OrderByEnums.ASC.getCode();
+        if (order != null) {
+            switch (order) {
+                case 1:
+                    orderByResult = OrderByEnums.MONITOR_POLE_NAME.getCode();
+                    break;
+                case 2:
+                    orderByResult = OrderByEnums.MONITOR_CREATE_TIME.getCode();
+                    break;
+                default:
+            }
+        }
+        if (seq != null) {
+            switch (seq) {
+                case 1:
+                    orderBySeq = " ASC";
+                    break;
+                case 2:
+                    orderBySeq = " DESC";
+                    break;
+                default:
+                    break;
+            }
+        }
+        //鎺掑簭鏂瑰紡
+        String orderBy = orderByResult + " " + orderBySeq;
+
+        List<MonitorBo> list;
+        if (SecurityUtils.getClientId() == null) {
+            list = monitorMapper.listMonitorDeviceSerial1(null, monitorParam.getKeyword(), monitorParam.getBindingState(), orderBy);
+        } else {
+            list = monitorMapper.listMonitorDeviceSerial1(SecurityUtils.getUserId(), monitorParam.getKeyword(), monitorParam.getBindingState(), orderBy);
+        }
+
+        //娌℃湁鏁版嵁鏃跺�欑洿鎺ヨ繑鍥炵┖鏁扮粍
+        if (list.size() == 0 || list == null) {
+            return new CommonPage();
+        }
+        List<String> device_serialList = new ArrayList<>(list.size());
+        CountDownLatch latch = new CountDownLatch(list.size());
+        for (Monitor demo : list) {
+            device_serialList.add(demo.getDeviceSerial());
+            getMonitorInfo_Async(demo, latch);
+        }
+        try {
+            latch.await();
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+        if (monitorParam.getEquipmentState() == null) {
+            //鍏ㄩ儴
+            monitorParam.setEquipmentState(2);
+        }
+
+        List<MonitorBo> temp = new ArrayList<>();
+        if (monitorParam.getEquipmentState() == 2) {
+            temp.addAll(list);
+        } else {
+            for (MonitorBo monitorBo : list) {
+                //绛涢�夌姸鎬佹暟鎹�
+                if (monitorBo.getEquipmentState().equals(monitorParam.getEquipmentState())) {
+                    temp.add(monitorBo);
+                }
+            }
+        }
+
+        if (baseConditionVO == null) {
+            baseConditionVO = new BaseConditionVO();
+            baseConditionVO.setPageSize(null);
+            baseConditionVO.setPageNo(null);
+        }
+        CommonPage commonPage = ListPagingUtils.pages(temp, baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+        return commonPage;
+    }
+
+    /**
+     * 鎽勫儚澶村垪琛ㄥ湴锛堢敤浜庨椤垫暟鎹粺璁★級
+     *
+     * @return
+     */
+    public List<MonitorBo> listMonitorOnHome() {
+
+        List<MonitorBo> list;
+        if (SecurityUtils.getClientId() == null) {
+            list = monitorMapper.listMonitorDeviceSerial1(null, null, 2, null);
+        } else {
+            list = monitorMapper.listMonitorDeviceSerial1(SecurityUtils.getUserId(), null, 2, null);
+        }
+
+        //娌℃湁鏁版嵁鏃跺�欑洿鎺ヨ繑鍥炵┖鏁扮粍
+        if (list == null) {
+            return new ArrayList<>();
+        }
 
         return list;
     }
 
     /**
-     * 妯$硦鏌ヨ
+     * 鍒犻櫎鎽勫儚澶�
+     *
+     * @param
+     * @return
      */
-    public List<Monitor> listMonitorByKeyword(MonitorParam monitorParam) {
-        //璁惧鐘舵��:鍦ㄧ嚎/绂荤嚎/鍏ㄩ儴
-        int equipmentState1;
-        int equipmentState2;
-        if (2 == monitorParam.getEquipmentState()) {
-            //鍦ㄧ嚎
-            equipmentState1 = 1;
-            //绂荤嚎
-            equipmentState2 = 0;
-        } else {
-            equipmentState1 = monitorParam.getEquipmentState();
-            equipmentState2 = monitorParam.getEquipmentState();
+    public boolean deleteMonitor(List<Long> ids) {
+        List<Long> idList = new ArrayList<Long>();
+        List<Monitor> monitors = listByIds(ids);
+        if (!monitors.isEmpty()) {
+            monitors.forEach(
+                    monitor -> {
+                        if (monitor == null) {
+                            throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
+                        }
+                        PoleBinding one = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, monitor.getDeviceSerial()));
+                        if (one != null) {
+                            //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
+                            poleBindingService.unBindPole(null, monitor.getDeviceSerial());
+                        }
+                        /**
+                         * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曞紑濮�
+                         */
+                        String content = "{鎽勫儚澶碈ode锛�" + monitor.getDeviceSerial() + "锛� 鎽勫儚澶村悕绉帮細" + monitor.getDeviceName() + " }";
+                        List<String> listCode = new ArrayList<>();
+                        listCode.add(monitor.getDeviceSerial());
+                        StoreOperationRecordsUtils.storeOperationData(listCode, null, "鍒犻櫎鎽勫儚澶�", content);
+                        /**
+                         * 鍒犻櫎鎽勫儚澶存棩蹇楄褰曠粨鏉�
+                         */
+                        idList.add(monitor.getId());
+                    }
+            );
         }
+        //鍏ㄩ儴鍒犻櫎鎴愬姛
+        return removeByIds(idList);
 
-        //缁戝畾鐘舵�侊細宸茬粦瀹�/鏈粦瀹�/鍏ㄩ儴
-        int bindingState1;
-        int bindingState2;
-        if (2 == monitorParam.getBindingState()) {
-            //宸茬粦瀹�
-            bindingState1 = 1;
-            //鏈粦瀹�
-            bindingState2 = 0;
-        } else {
-            bindingState1 = monitorParam.getBindingState();
-            bindingState2 = monitorParam.getBindingState();
-        }
-        return monitorMapper.listMonitorByKeyword(monitorParam.getKeyword(), equipmentState1, equipmentState2, bindingState1, bindingState2);
     }
 
     /**
-     * 鍒犻櫎鎽勫儚澶�
+     * 鑾峰彇钀ょ煶浜慳ccessToken
+     */
+
+    public String getAccessToken() {
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("appKey", AppKey);
+        paramMap.put("appSecret", Secret);
+        String s = HttpUtil.post(YSY_URL + ACCESSTOKEN_URL, paramMap);
+        if (!s.startsWith("{") || !s.endsWith("}")) {
+            log.error("鑾峰彇鎽勫儚澶磘oken澶辫触,鏍煎紡鏈夎!");
+        }
+        YSY_AccessTokenDto accessTokenDto = JSON.parseObject(s, YSY_AccessTokenDto.class);
+
+        //浜屾鑾峰彇
+        if (accessTokenDto == null) {
+            log.error("鑾峰彇鎽勫儚澶磘oken澶辫触,鏍煎紡鏈夎!");
+            s = HttpUtil.post(YSY_URL + ACCESSTOKEN_URL, paramMap);
+            accessTokenDto = JSON.parseObject(s, YSY_AccessTokenDto.class);
+        }
+        return accessTokenDto.getData().getAccessToken();
+    }
+
+
+    /**
+     * 鑾峰彇钀ょ煶浜戞憚鍍忓ご淇℃伅(寮傛)
      *
-     * @param Id
      * @return
      */
-    public boolean deleteMonitor(Long Id) {
-        Monitor monitor = getById(Id);
-        if (monitor == null) {
-            throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
+    public void getMonitorInfo_Async(Monitor monitor, CountDownLatch countDownLatch) {
+        Thread t = new Thread() {
+            @Override
+            public void run() {
+                String token = getAccessToken();
+                Map<String, Object> paramMap = new HashMap<>();
+                paramMap.put("accessToken", token);
+                paramMap.put("deviceSerial", monitor.getDeviceSerial());
+                String s = HttpUtil.post(YSY_URL + GET_DEVICE_URL, paramMap);
+                YSY_MonitorDto monitorDto = null;
+                try {
+                    monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
+                    System.out.println(s + "       ----------");
+                    monitor.setEquipmentState(monitorDto.getData().getStatus());
+                    countDownLatch.countDown();
+                } catch (Exception e) {
+                    monitor.setEquipmentState(0);
+                    countDownLatch.countDown();
+                }
+            }
+        };
+        t.start();
+
+    }
+
+    /**
+     * 鑾峰彇钀ょ煶浜戞憚鍍忓ご淇℃伅  鏃犻渶楠岃瘉accessToken
+     *
+     * @return
+     */
+    public EquipmentInfomation getMonitorInfo(String deviceSerial) {
+        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
+        equipmentInfo.setEquipmentType("鎽勫儚澶�");
+        if (deviceSerial == null || deviceSerial.trim().length() == 0) {
+            return equipmentInfo;
         }
-        return removeById(Id);
+
+        Monitor one = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, deviceSerial));
+        if (one != null) {
+            equipmentInfo.setEquipmentCreateTime(one.getAddTime());
+            equipmentInfo.setEquipmentMac(one.getDeviceSerial());
+            equipmentInfo.setEquipmentName(one.getDeviceName());
+        }
+
+        String token = getAccessToken();
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("accessToken", token);
+        paramMap.put("deviceSerial", deviceSerial);
+        String s = HttpUtil.post(YSY_URL + GET_DEVICE_URL, paramMap);
+
+        try {
+            YSY_MonitorDto monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
+            if (monitorDto != null) {
+                //鍦ㄧ嚎鐘舵�侊細0-涓嶅湪绾匡紝1-鍦ㄧ嚎
+                if (monitorDto.getData().getStatus() == 1) {
+                    equipmentInfo.setEquipmentState("鍦ㄧ嚎");
+                } else {
+                    equipmentInfo.setEquipmentState("绂荤嚎");
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return equipmentInfo;
+    }
+
+    /**
+     * 娣诲姞钀ょ煶浜戞憚鍍忓ご
+     *
+     * @param deviceSerial 璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
+     *                     //     * @param validateCode 璁惧楠岃瘉鐮侊紝璁惧鏈鸿韩涓婄殑鍏綅澶у啓瀛楁瘝
+     */
+    public boolean addYSYMonitor(String deviceSerial, String validateCode) {
+        List<Monitor> list = list(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, deviceSerial));
+        if (list.size() != 0) {
+            throw new BusinessException("璇ユ憚鍍忓ご宸插瓨鍦紝鏃犳硶閲嶅娣诲姞锛�");
+        }
+
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("accessToken", getAccessToken());
+        paramMap.put("deviceSerial", deviceSerial);
+        if (validateCode != null && validateCode.trim().length() != 0) {
+            paramMap.put("validateCode", validateCode);
+        }
+        String s = HttpUtil.post(YSY_URL + ADD_DEVICE_URL, paramMap);
+        if (!s.startsWith("{") && !s.endsWith("}")) {
+            throw new BusinessException("钀ょ煶浜戞暟鎹紓甯�");
+        }
+
+        YSY_MonitorDto monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
+
+        boolean result;
+        if ("20017".equals(monitorDto.getCode())) {
+            //褰撳墠鎽勫儚澶村凡缁忚钀ょ煶浜戝畼缃戞坊鍔犺繃,Code:20017
+            monitorDto = getYSYMonitorInfo(getAccessToken(), deviceSerial);
+
+        } else if (!"200".equals(monitorDto.getCode())) {
+            //褰撳墠鎽勫儚澶存垚鍔熻钀ょ煶浜戝畼缃戞坊鍔�,Code:200
+            throw new BusinessException(monitorDto.getMsg());
+        }
+
+        if (monitorDto.getData() == null) {
+            throw new BusinessException("钀ょ煶浜戞暟鎹紓甯革紒");
+        }
+        Monitor monitor = new Monitor();
+        monitor.setDeviceSerial(monitorDto.getData().getDeviceSerial());
+        monitor.setDevicesCode(validateCode);
+        monitor.setDeviceName(monitorDto.getData().getDeviceName());
+        monitor.setEquipmentState(monitorDto.getData().getStatus());
+        monitor.setIsEncrypt(monitorDto.getData().getIsEncrypt());
+        monitor.setDeviceType(monitorDto.getData().getModel());
+        monitor.setNetAddress(monitorDto.getData().getNetAddress());
+        result = addMonitorInfoToTable(monitor);
+
+        /**
+         * 鏂板鎽勫儚澶村紑濮�
+         */
+        String content = "{鎽勫儚澶碈ode锛�" + monitor.getDeviceSerial() + "锛� 鎽勫儚澶村悕绉帮細" + monitor.getDeviceName() + " }";
+        List<String> listCode = new ArrayList<>();
+        listCode.add(monitor.getDeviceSerial());
+        StoreOperationRecordsUtils.storeOperationData(listCode, null, "鏂板鎽勫儚澶�", content);
+        /**
+         * 鏂板鎽勫儚澶寸粨鏉�
+         */
+        return result;
+    }
+
+    /**
+     * 鑾峰彇钀ょ煶浜戞憚鍍忓ご鍗曚釜璁惧淇℃伅
+     *
+     * @param accessToken  鎺堟潈杩囩▼鑾峰彇鐨刟ccess_token
+     * @param deviceSerial 璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
+     */
+    public YSY_MonitorDto getYSYMonitorInfo(String accessToken, String deviceSerial) {
+
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("accessToken", accessToken);
+        paramMap.put("deviceSerial", deviceSerial);
+        String s = HttpUtil.post(YSY_URL + GET_DEVICE_URL, paramMap);
+        System.out.println(s);
+        YSY_MonitorDto monitor = JSON.parseObject(s, YSY_MonitorDto.class);
+        return monitor;
+    }
+
+    /**
+     * 灏嗘憚鍍忓ご璁惧鐩稿叧淇℃伅瀛樺偍鍒版暟鎹簱
+     *
+     * @param monitor 鎽勫儚澶村璞�
+     * @return
+     */
+    public boolean addMonitorInfoToTable(Monitor monitor) {
+        Monitor one = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, monitor.getDeviceSerial()));
+        if (one == null) {
+            return save(monitor);
+        } else {
+            monitor.setId(one.getId());
+            return updateById(monitor);
+        }
+    }
+
+    /**
+     * 杩斿洖鎽勫儚澶村疄鏃剁敾闈㈡挱鏀惧湴鍧�
+     *
+     * @param accessToken
+     * @param deviceSerial
+     * @return
+     */
+    public String getMonitorVideoUrl(String accessToken, String deviceSerial, int protocol, int expireTime) {
+        if (expireTime < 30 || expireTime > 62208000) {
+            throw new BusinessException("璁剧疆鐨刄RL鎾斁鍦板潃杩囨湡鏃堕暱鏁版嵁閿欒");
+        }
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("accessToken", accessToken);
+        paramMap.put("deviceSerial", deviceSerial);
+        paramMap.put("protocol", protocol);
+        paramMap.put("expireTime", expireTime);
+        String s = HttpUtil.post(YSY_URL + GET_VEDIO_URL, paramMap);
+        System.out.println(s);
+        YSY_MonitorDto monitor = JSON.parseObject(s, YSY_MonitorDto.class);
+        if ("200".equals(monitor.getCode())) {
+            return monitor.getData().getUrl();
+        } else {
+            throw new BusinessException(monitor.getMsg());
+        }
+    }
+
+    /**
+     * 淇敼璁惧缁戝畾鐘舵��
+     *
+     * @param flag true涓虹粦瀹�  false 涓鸿В缁�
+     */
+    public void updateBingdingState(boolean flag, String deviceCode) {
+        if (flag) {//缁戝畾
+            Monitor monitor = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, deviceCode));
+            if (monitor == null) {
+                return;
+            }
+            monitor.setBindingState(1);
+            updateById(monitor);
+        } else {//瑙g粦
+            Monitor monitor = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, deviceCode));
+            if (monitor == null) {
+                return;
+            }
+            monitor.setBindingState(0);
+            updateById(monitor);
+        }
+    }
+
+
+    /**
+     * 淇敼note
+     *
+     * @param deviceSerial
+     * @param notes
+     * @return
+     */
+    public boolean updateNotes(String deviceSerial, String notes) {
+        if (deviceSerial == null || deviceSerial.trim().length() == 0 || notes == null) {
+            throw new BusinessException("淇敼澶囨敞鍙傛暟鏈夎锛�");
+        }
+        Monitor one = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, deviceSerial));
+
+        boolean belong = SpringContextHolder.getBean(PoleBindingService.class).isBelong(one.getDeviceSerial(), PoleBindingEnums.MONITOR);
+        if (!belong) {
+            throw new BusinessException("璇ヨ澶囦笉灞炰簬鎮�,涓嶈兘淇敼璁惧淇℃伅");
+        }
+        if (one != null) {
+            one.setNote(notes);
+
+            /**
+             * 娣诲姞鎽勫儚澶村娉ㄦ棩蹇楄褰曞紑濮�
+             */
+            String content = "缂栬緫鎽勫儚澶达細" + deviceSerial + "缂栬緫鍐呭锛�" + notes;
+            List<String> list = new ArrayList<>();
+            list.add(deviceSerial);
+            StoreOperationRecordsUtils.storeOperationData(list, null, "缂栬緫鎽勫儚澶�", content);
+            /**
+             * 娣诲姞鎽勫儚澶村娉ㄦ棩蹇楄褰曠粨鏉�
+             */
+            return updateById(one);
+        } else {
+            throw new BusinessException("鎽勫儚澶磋澶囦笉瀛樺湪锛�");
+        }
+    }
+
+
+    /**
+     * 鍚慠edis涓瓨鍏ヨ澶囩姸鎬�
+     */
+    public void setCacheData() {
+        list().forEach(
+                device -> {
+                    RedisDeviceStatus deviceStatus = new RedisDeviceStatus();
+                    deviceStatus.setDeviceId(device.getDeviceSerial());
+                    if (device != null) {
+                        EquipmentInfomation monitorInfo = getMonitorInfo(device.getDeviceSerial());
+                        if (monitorInfo != null) {
+                            if ("鍦ㄧ嚎".equals(monitorInfo.getEquipmentState())) {
+                                deviceStatus.setStatus(0);
+                            } else {
+                                deviceStatus.setStatus(1);
+                            }
+
+                        } else {
+                            deviceStatus.setStatus(1);
+                        }
+                    }
+                    redisUtils.set(DeviceRedisKey.MONITOR + device.getDeviceSerial(), JSON.toJSONString(deviceStatus));
+//                    redisUtils.delete(DeviceRedisKey.MONITOR + device.getDeviceSerial());
+                }
+        );
+
     }
 
 

--
Gitblit v1.9.3