From bfce748e37a753c729e15dd233600379f504d019 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期四, 28 四月 2022 13:59:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java |  190 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 138 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 7e9cbd8..9c98ae6 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
@@ -21,6 +21,7 @@
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -54,63 +55,85 @@
      * 妯$硦鏌ヨ
      */
     public List<MonitorBo> listMonitorByKeyword(BaseConditionVO baseConditionVO, MonitorParam monitorParam) {
-        Long clientId = SecurityUtils.getClientId();
-        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+        List<String> list;
+        if (SecurityUtils.getClientId() == null) {
+            list = monitorMapper.listMonitorDeviceSerial(null, monitorParam.getKeyword());
+        } else {
+            list = monitorMapper.listMonitorDeviceSerial(SecurityUtils.getUserId(), monitorParam.getKeyword());
+        }
+
+        //娌℃湁鏁版嵁鏃跺�欑洿鎺ヨ繑鍥炵┖鏁扮粍
+        if (list.size() == 0 || list == null) {
+            List<MonitorBo> nullList = new ArrayList<>();
+            return nullList;
+        }
+
+        MonitorParam monitorParam1;
+        for (String devices_serial : list) {
+            monitorParam1 = new MonitorParam();
+            monitorParam1.setAccessToken(getAccessToken());
+            monitorParam1.setDeviceSerial(devices_serial);
+            getYSYMonitorInfoAndaddMonitorToTable(monitorParam1);
+        }
+
+        if (baseConditionVO != null) {
+            PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+        }
         List<MonitorBo> monitorList;
         //缁戝畾鐘舵�侊細宸茬粦瀹�/鏈粦瀹�/鍏ㄩ儴
-        if (monitorParam.getBindingState() == null || 2 == monitorParam.getBindingState()) {
+        if (monitorParam.getBindingState() == null) {
             //鍏ㄩ儴
-            int bindingState = 2;
-            monitorList = monitorMapper.listMonitorByIds(monitorParam.getKeyword(), clientId, bindingState);
-        } else {
-            monitorList = monitorMapper.listMonitorByIds(monitorParam.getKeyword(), clientId, monitorParam.getBindingState());
+            monitorParam.setBindingState(2);
         }
+        if (monitorParam.getEquipmentState() == null) {
+            //鍏ㄩ儴
+            monitorParam.setEquipmentState(2);
+        }
+
+        monitorList = monitorMapper.listMonitorByIds(list, monitorParam.getBindingState(), monitorParam.getEquipmentState());
+
         return monitorList;
     }
 
+    public Monitor getYSYMonitorInfoAndaddMonitorToTable(MonitorParam monitorParam) {
+        YSY_MonitorDto getMonitorDto = getYSYMonitorInfo(getAccessToken(), monitorParam.getDeviceSerial());
 
-//    /**
-//     * 鏌ヨ鍏ㄩ儴鎽勫儚澶�
-//     */
-//    public List<Monitor> listMonitor() {
-//        LambdaQueryWrapper<Monitor> wrapper = Wrappers.lambdaQuery(Monitor.class);
-//        List<Monitor> list = list(wrapper);
-//
-//        return list;
-//    }
-//
-//    /**
-//     * 妯$硦鏌ヨ
-//     */
-//    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();
-//        }
-//
-//        //缁戝畾鐘舵�侊細宸茬粦瀹�/鏈粦瀹�/鍏ㄩ儴
-//        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);
-//        return monitorMapper.listMonitorByKeyword1(baseConditionVO, monitorParam.getKeyword(), bindingState1, bindingState2);
-//    }
+        if ("200".equals(getMonitorDto.getCode())) {
+            Monitor monitor = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, monitorParam.getDeviceSerial()));
+            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());
+                monitor.setIsEncrypt(getMonitorDto.getData().getIsEncrypt());
+                monitor.setAddTime(getMonitorDto.getData().getUpdateTime());
+                monitor.setNetAddress(getMonitorDto.getData().getNetAddress());
+                //鏇存柊鎽勫儚澶寸姸鎬�
+                updateById(monitor);
+            } 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());
+                monitor.setIsEncrypt(getMonitorDto.getData().getIsEncrypt());
+                monitor.setAddTime(getMonitorDto.getData().getUpdateTime());
+                monitor.setNetAddress(getMonitorDto.getData().getNetAddress());
+                //鏇存柊鎽勫儚澶寸姸鎬�
+                save(monitor);
+            }
+
+            return monitor;
+        } else {
+            throw new BusinessException(getMonitorDto.getMsg());
+        }
+    }
 
     /**
      * 鍒犻櫎鎽勫儚澶�
@@ -125,7 +148,7 @@
         }
 
         //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
-        poleBindingService.unBindPole(monitor.getDeviceSerial());
+        poleBindingService.unBindPole(null, monitor.getDeviceSerial());
         return removeById(Id);
     }
 
@@ -142,19 +165,38 @@
         return accessTokenDto.getData().getAccessToken();
     }
 
+
+    /**
+     * 鑾峰彇钀ょ煶浜戞憚鍍忓ご淇℃伅  鏃犻渶楠岃瘉accessToken
+     *
+     * @return
+     */
+    public YSY_MonitorDto.MonitorDto getMonitorInfo(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 = JSON.parseObject(s, YSY_MonitorDto.class);
+        return monitorDto.getData();
+    }
+
     /**
      * 娣诲姞钀ょ煶浜戞憚鍍忓ご
      *
      * @param accessToken  鎺堟潈杩囩▼鑾峰彇鐨刟ccess_token
      * @param deviceSerial 璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
-     * @param validateCode 璁惧楠岃瘉鐮侊紝璁惧鏈鸿韩涓婄殑鍏綅澶у啓瀛楁瘝
+     *                     //     * @param validateCode 璁惧楠岃瘉鐮侊紝璁惧鏈鸿韩涓婄殑鍏綅澶у啓瀛楁瘝
      */
     public YSY_MonitorDto addYSYMonitor(String accessToken, String deviceSerial, String validateCode) {
+//    public YSY_MonitorDto addYSYMonitor(String accessToken, String deviceSerial) {
 
         Map<String, Object> paramMap = new HashMap<>();
         paramMap.put("accessToken", accessToken);
         paramMap.put("deviceSerial", deviceSerial);
-        paramMap.put("validateCode", validateCode);
+        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);
@@ -261,5 +303,49 @@
         }
     }
 
+    /**
+     * 淇敼璁惧缁戝畾鐘舵��
+     *
+     * @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));
+        if (one != null) {
+            one.setNote(notes);
+            return updateById(one);
+        } else {
+            throw new BusinessException("鎽勫儚澶磋澶囦笉瀛樺湪锛�");
+        }
+    }
+
 
 }

--
Gitblit v1.9.3