‘liusuyi’
2023-11-09 092d7c56bb8653075b8f4b27220e69e6bb8e5d37
src/main/java/com/ard/alarm/external/service/impl/ArdEquipExternalServiceImpl.java
@@ -19,6 +19,8 @@
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * externalService业务层处理
@@ -35,12 +37,12 @@
    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){
    public void run(ApplicationArguments args) {
        //获取全部海康报警主机尝试登录
        ArdEquipExternal alarmHost = new ArdEquipExternal();
        alarmHost.setFactory("1");
@@ -55,6 +57,13 @@
        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();
    }
@@ -99,10 +108,10 @@
                //endregion
                //region 定时同步门禁主机
                alarmHost = new ArdEquipExternal();
                alarmHost.setFactory("1");
                alarmHost.setType("6");
                List<ArdEquipExternal> newAccessHostList = selectArdEquipExternalList(alarmHost);
                ArdEquipExternal accessHost = new ArdEquipExternal();
                accessHost.setFactory("1");
                accessHost.setType("6");
                List<ArdEquipExternal> newAccessHostList = selectArdEquipExternalList(accessHost);
                //需要更新的数据
                updateList = sameListWithDifferent(ardAccessHostList, newAccessHostList);
                if (updateList.size() > 0) {
@@ -128,6 +137,36 @@
                    }
                }
                //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());
            }
@@ -148,7 +187,7 @@
    @Override
    public ArdEquipExternal selectArdEquipExternal(ArdEquipExternal ardEquipExternal) {
        QueryWrapper<ArdEquipExternal> queryWrapper=new QueryWrapper<>(ardEquipExternal);
        QueryWrapper<ArdEquipExternal> queryWrapper = new QueryWrapper<>(ardEquipExternal);
        return ardEquipExternalMapper.selectOne(queryWrapper);
    }
@@ -160,7 +199,7 @@
     */
    @Override
    public List<ArdEquipExternal> selectArdEquipExternalList(ArdEquipExternal ardEquipExternal) {
        QueryWrapper<ArdEquipExternal> queryWrapper=new QueryWrapper<>(ardEquipExternal);
        QueryWrapper<ArdEquipExternal> queryWrapper = new QueryWrapper<>(ardEquipExternal);
        return ardEquipExternalMapper.selectList(queryWrapper);
    }