From 092d7c56bb8653075b8f4b27220e69e6bb8e5d37 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 09 十一月 2023 16:49:26 +0800
Subject: [PATCH] 增加超脑业务

---
 src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java |  125 ++++++++++++++++++++++++++++-------------
 1 files changed, 86 insertions(+), 39 deletions(-)

diff --git a/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java b/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
index 9d77347..411eaf2 100644
--- a/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
+++ b/src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
@@ -11,12 +11,15 @@
 import com.ard.alarm.external.mapper.ArdEquipExternalMapper;
 import com.ard.alarm.external.service.IArdEquipExternalService;
 import com.ard.utils.hiksdk.service.impl.HikClientUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
 
 
 /**
@@ -29,26 +32,39 @@
 @Slf4j(topic = "external")
 @Order(5)
 public class ArdEquipExternalServiceImpl implements IArdEquipExternalService, ApplicationRunner {
+
     private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
+
     public static List<ArdEquipExternal> ardAlarmHostList = new ArrayList<>();
     public static List<ArdEquipExternal> ardAccessHostList = new ArrayList<>();
-    @Autowired
+    public static List<ArdEquipExternal> ardSuperBrainHostList = new ArrayList<>();
+    @Resource
     private ArdEquipExternalMapper ardEquipExternalMapper;
 
     @Override
-    public void run(ApplicationArguments args) throws Exception {
+    public void run(ApplicationArguments args) {
         //鑾峰彇鍏ㄩ儴娴峰悍鎶ヨ涓绘満灏濊瘯鐧诲綍
         ArdEquipExternal alarmHost = new ArdEquipExternal();
         alarmHost.setFactory("1");
         alarmHost.setType("1");
-        ardAlarmHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost);
+        ardAlarmHostList = selectArdEquipExternalList(alarmHost);
         HikClientUtil.loginAllAlarmHost(ardAlarmHostList);
+        log.debug("鎶ヨ涓绘満灏濊瘯鐧诲綍");
         //鑾峰彇鍏ㄩ儴闂ㄧ涓绘満灏濊瘯鐧诲綍
         ArdEquipExternal accessControlHost = new ArdEquipExternal();
         accessControlHost.setFactory("1");
         accessControlHost.setType("6");
-        ardAccessHostList = ardEquipExternalMapper.selectArdEquipExternalList(accessControlHost);
+        ardAccessHostList = selectArdEquipExternalList(accessControlHost);
         HikClientUtil.loginAllAccessControlHost(ardAccessHostList);
+        log.debug("闂ㄧ涓绘満灏濊瘯鐧诲綍");
+        //鑾峰彇鍏ㄩ儴瓒呰剳灏濊瘯鐧诲綍
+        ArdEquipExternal superBrainHost = new ArdEquipExternal();
+        superBrainHost.setFactory("1");
+        superBrainHost.setType("5");
+        ardSuperBrainHostList = selectArdEquipExternalList(superBrainHost);
+        HikClientUtil.loginAllSuperBrainHost(ardSuperBrainHostList);
+        log.debug("瓒呰剳灏濊瘯鐧诲綍");
+        //鍚屾浠诲姟
         syncTask();
     }
 
@@ -64,7 +80,7 @@
                 ArdEquipExternal alarmHost = new ArdEquipExternal();
                 alarmHost.setFactory("1");
                 alarmHost.setType("1");
-                List<ArdEquipExternal> newAlarmHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost);
+                List<ArdEquipExternal> newAlarmHostList = selectArdEquipExternalList(alarmHost);
                 //闇�瑕佹洿鏂扮殑鏁版嵁
                 List<ArdEquipExternal> updateList = sameListWithDifferent(ardAlarmHostList, newAlarmHostList);
                 if (updateList.size() > 0) {
@@ -92,12 +108,12 @@
 
                 //endregion
                 //region 瀹氭椂鍚屾闂ㄧ涓绘満
-                alarmHost = new ArdEquipExternal();
-                alarmHost.setFactory("1");
-                alarmHost.setType("6");
-                List<ArdEquipExternal> newAccessHostList = ardEquipExternalMapper.selectArdEquipExternalList(alarmHost);
+                ArdEquipExternal accessHost = new ArdEquipExternal();
+                accessHost.setFactory("1");
+                accessHost.setType("6");
+                List<ArdEquipExternal> newAccessHostList = selectArdEquipExternalList(accessHost);
                 //闇�瑕佹洿鏂扮殑鏁版嵁
-                 updateList = sameListWithDifferent(ardAccessHostList, newAccessHostList);
+                updateList = sameListWithDifferent(ardAccessHostList, newAccessHostList);
                 if (updateList.size() > 0) {
                     HikClientUtil.logoutAllAlarmHost(updateList);
                     HikClientUtil.loginAllAlarmHost(updateList);
@@ -121,10 +137,70 @@
                     }
                 }
                 //endregion
+                //region 瀹氭椂鍚屾瓒呰剳
+                ArdEquipExternal superBrainHost = new ArdEquipExternal();
+                superBrainHost.setFactory("1");
+                superBrainHost.setType("5");
+                List<ArdEquipExternal> newSuperBrainList = selectArdEquipExternalList(superBrainHost);
+                //闇�瑕佹洿鏂扮殑鏁版嵁
+                updateList = sameListWithDifferent(ardSuperBrainHostList, newSuperBrainList);
+                if (updateList.size() > 0) {
+                    HikClientUtil.logoutAllSuperBrainHost(updateList);
+                    HikClientUtil.loginAllSuperBrainHost(updateList);
+                    ardSuperBrainHostList.clear();
+                    ardSuperBrainHostList.addAll(newSuperBrainList);
+                }
+                //闇�瑕佸垹闄ょ殑鏁版嵁
+                delList = diffList(ardSuperBrainHostList, newSuperBrainList);
+                if (delList.size() > 0) {
+                    HikClientUtil.logoutAllSuperBrainHost(delList);
+                    for (ArdEquipExternal ardEquipExternal : delList) {
+                        ardSuperBrainHostList.remove(ardEquipExternal);
+                    }
+                }
+                //闇�瑕佹柊澧炵殑鏁版嵁
+                inserList = diffList(newSuperBrainList, ardSuperBrainHostList);
+                if (inserList.size() > 0) {
+                    HikClientUtil.loginAllSuperBrainHost(inserList);
+                    for (ArdEquipExternal ardEquipExternal : inserList) {
+                        ardSuperBrainHostList.add(ardEquipExternal);
+                    }
+                }
+                //endregion
             } catch (Exception e) {
                 log.error("鍚屾澶栬仈浠诲姟鎵ц鍑洪敊" + e.getMessage());
             }
         }, 10, 10, TimeUnit.SECONDS);
+    }
+
+
+    /**
+     * 鏌ヨexternal
+     *
+     * @param id external涓婚敭
+     * @return external
+     */
+    @Override
+    public ArdEquipExternal selectArdEquipExternalById(String id) {
+        return ardEquipExternalMapper.selectById(id);
+    }
+
+    @Override
+    public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal) {
+        QueryWrapper<ArdEquipExternal> queryWrapper = new QueryWrapper<>(ardEquipExternal);
+        return ardEquipExternalMapper.selectOne(queryWrapper);
+    }
+
+    /**
+     * 鏌ヨexternal鍒楄〃
+     *
+     * @param ardEquipExternal external
+     * @return external
+     */
+    @Override
+    public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal) {
+        QueryWrapper<ArdEquipExternal> queryWrapper = new QueryWrapper<>(ardEquipExternal);
+        return ardEquipExternalMapper.selectList(queryWrapper);
     }
 
 
@@ -157,33 +233,4 @@
                 .collect(Collectors.toList());
         return resultList;
     }
-
-    /**
-     * 鏌ヨexternal
-     *
-     * @param id external涓婚敭
-     * @return external
-     */
-    @Override
-    public ArdEquipExternal selectArdEquipExternalById(String id) {
-        return ardEquipExternalMapper.selectArdEquipExternalById(id);
-    }
-
-    @Override
-    public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal) {
-        return ardEquipExternalMapper.selectArdEquipExternal(ardEquipExternal);
-    }
-
-    /**
-     * 鏌ヨexternal鍒楄〃
-     *
-     * @param ardEquipExternal external
-     * @return external
-     */
-    @Override
-    public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal) {
-        return ardEquipExternalMapper.selectArdEquipExternalList(ardEquipExternal);
-    }
-
-
 }

--
Gitblit v1.9.3