From 620a3be8596434a8796469a8213a0066c836a1d4 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期四, 28 四月 2022 18:22:43 +0800
Subject: [PATCH] fix

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java |  121 +++++++++++++++++++++++-----------------
 1 files changed, 69 insertions(+), 52 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 9c98ae6..b54253a 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,10 +1,8 @@
 package com.sandu.ximon.admin.service;
 
 
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.sandu.common.execption.BusinessException;
@@ -12,13 +10,14 @@
 import com.sandu.common.service.impl.BaseServiceImpl;
 import com.sandu.ximon.admin.param.MonitorParam;
 import com.sandu.ximon.admin.security.SecurityUtils;
-import com.sandu.ximon.dao.bo.AirEquipmentBo;
 import com.sandu.ximon.dao.bo.MonitorBo;
 import com.sandu.ximon.dao.domain.Monitor;
 import com.sandu.ximon.admin.dto.YSY_AccessTokenDto;
 import com.sandu.ximon.admin.dto.YSY_MonitorDto;
+import com.sandu.ximon.dao.domain.PoleBinding;
 import com.sandu.ximon.dao.mapper.MonitorMapper;
 import lombok.AllArgsConstructor;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -55,11 +54,11 @@
      * 妯$硦鏌ヨ
      */
     public List<MonitorBo> listMonitorByKeyword(BaseConditionVO baseConditionVO, MonitorParam monitorParam) {
-        List<String> list;
+        List<Monitor> list;
         if (SecurityUtils.getClientId() == null) {
-            list = monitorMapper.listMonitorDeviceSerial(null, monitorParam.getKeyword());
+            list = monitorMapper.listMonitorDeviceSerial1(null, monitorParam.getKeyword());
         } else {
-            list = monitorMapper.listMonitorDeviceSerial(SecurityUtils.getUserId(), monitorParam.getKeyword());
+            list = monitorMapper.listMonitorDeviceSerial1(SecurityUtils.getUserId(), monitorParam.getKeyword());
         }
 
         //娌℃湁鏁版嵁鏃跺�欑洿鎺ヨ繑鍥炵┖鏁扮粍
@@ -67,14 +66,16 @@
             List<MonitorBo> nullList = new ArrayList<>();
             return nullList;
         }
+        List<String> device_serialList = new ArrayList<>(list.size());
+        for (Monitor demo : list) {
+            device_serialList.add(demo.getDeviceSerial());
 
-        MonitorParam monitorParam1;
-        for (String devices_serial : list) {
-            monitorParam1 = new MonitorParam();
-            monitorParam1.setAccessToken(getAccessToken());
-            monitorParam1.setDeviceSerial(devices_serial);
-            getYSYMonitorInfoAndaddMonitorToTable(monitorParam1);
+            YSY_MonitorDto.MonitorDto monitorInfo = getMonitorInfo_Async(demo.getDeviceSerial());
+            if (monitorInfo != null) {
+                demo.setEquipmentState(monitorInfo.getStatus());
+            }
         }
+        updateBatchById(list);
 
         if (baseConditionVO != null) {
             PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
@@ -90,21 +91,19 @@
             monitorParam.setEquipmentState(2);
         }
 
-        monitorList = monitorMapper.listMonitorByIds(list, monitorParam.getBindingState(), monitorParam.getEquipmentState());
+        monitorList = monitorMapper.listMonitorByIds(device_serialList, monitorParam.getBindingState(), monitorParam.getEquipmentState());
 
         return monitorList;
     }
 
-    public Monitor getYSYMonitorInfoAndaddMonitorToTable(MonitorParam monitorParam) {
-        YSY_MonitorDto getMonitorDto = getYSYMonitorInfo(getAccessToken(), monitorParam.getDeviceSerial());
+    public Monitor getYSYMonitorInfoAndaddMonitorToTable(String deviceSerial) {
+        YSY_MonitorDto getMonitorDto = getYSYMonitorInfo(getAccessToken(), deviceSerial);
 
         if ("200".equals(getMonitorDto.getCode())) {
-            Monitor monitor = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, monitorParam.getDeviceSerial()));
+            Monitor monitor = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, deviceSerial));
             if (monitor != null) {
                 monitor.setDeviceSerial(getMonitorDto.getData().getDeviceSerial());
-                if (monitorParam.getValidateCode() != null) {
-                    monitor.setDevicesCode(monitorParam.getValidateCode());
-                }
+
                 monitor.setDeviceName(getMonitorDto.getData().getDeviceName());
                 monitor.setDeviceType(getMonitorDto.getData().getModel());
                 monitor.setEquipmentState(getMonitorDto.getData().getStatus());
@@ -116,9 +115,6 @@
             } else {
                 monitor = new Monitor();
                 monitor.setDeviceSerial(getMonitorDto.getData().getDeviceSerial());
-                if (monitorParam.getValidateCode() != null) {
-                    monitor.setDevicesCode(monitorParam.getValidateCode());
-                }
                 monitor.setDeviceName(getMonitorDto.getData().getDeviceName());
                 monitor.setDeviceType(getMonitorDto.getData().getModel());
                 monitor.setEquipmentState(getMonitorDto.getData().getStatus());
@@ -131,7 +127,7 @@
 
             return monitor;
         } else {
-            throw new BusinessException(getMonitorDto.getMsg());
+            return null;
         }
     }
 
@@ -146,9 +142,11 @@
         if (monitor == null) {
             throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
         }
-
-        //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
-        poleBindingService.unBindPole(null, monitor.getDeviceSerial());
+        PoleBinding one = poleBindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, monitor.getDeviceSerial()));
+        if (one != null) {
+            //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
+            poleBindingService.unBindPole(null, monitor.getDeviceSerial());
+        }
         return removeById(Id);
     }
 
@@ -167,6 +165,28 @@
 
 
     /**
+     * 鑾峰彇钀ょ煶浜戞憚鍍忓ご淇℃伅(寮傛)
+     *
+     * @return
+     */
+    @Async("taskExecutor")
+    public YSY_MonitorDto.MonitorDto getMonitorInfo_Async(String deviceSerial) {
+        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);
+        YSY_MonitorDto monitorDto = null;
+        try {
+            monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
+            return monitorDto.getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
      * 鑾峰彇钀ょ煶浜戞憚鍍忓ご淇℃伅  鏃犻渶楠岃瘉accessToken
      *
      * @return
@@ -177,48 +197,45 @@
         paramMap.put("accessToken", token);
         paramMap.put("deviceSerial", deviceSerial);
         String s = HttpUtil.post(YSY_URL + GET_DEVICE_URL, paramMap);
-        YSY_MonitorDto monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
-        return monitorDto.getData();
+        YSY_MonitorDto monitorDto = null;
+        try {
+            monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
+            return monitorDto.getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
     }
 
     /**
      * 娣诲姞钀ょ煶浜戞憚鍍忓ご
      *
-     * @param accessToken  鎺堟潈杩囩▼鑾峰彇鐨刟ccess_token
      * @param deviceSerial 璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
      *                     //     * @param validateCode 璁惧楠岃瘉鐮侊紝璁惧鏈鸿韩涓婄殑鍏綅澶у啓瀛楁瘝
      */
-    public YSY_MonitorDto addYSYMonitor(String accessToken, String deviceSerial, String validateCode) {
-//    public YSY_MonitorDto addYSYMonitor(String accessToken, String deviceSerial) {
-
+    public boolean addYSYMonitor(String deviceSerial, String validateCode) {
         Map<String, Object> paramMap = new HashMap<>();
-        paramMap.put("accessToken", accessToken);
+        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);
-        System.out.println(s);
         YSY_MonitorDto monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
-        return monitorDto;
-    }
 
-
-    /**
-     * 鍒犻櫎钀ょ煶浜戞憚鍍忓ご
-     *
-     * @param accessToken  鎺堟潈杩囩▼鑾峰彇鐨刟ccess_token
-     * @param deviceSerial 璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
-     */
-    public YSY_MonitorDto deleteYSYMonitor(String accessToken, String deviceSerial) {
-
-        Map<String, Object> paramMap = new HashMap<>();
-        paramMap.put("accessToken", accessToken);
-        paramMap.put("deviceSerial", deviceSerial);
-        String s = HttpUtil.post(YSY_URL + DELETE_DEVICE_URL, paramMap);
-        System.out.println(s);
-        YSY_MonitorDto monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
-        return monitorDto;
+        if ("200".equals(monitorDto.getCode()) || "20017".equals(monitorDto.getCode())) {
+            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());
+            return addMonitorInfoToTable(monitor);
+        } else {
+            return false;
+        }
     }
 
     /**

--
Gitblit v1.9.3