diff --git a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java index fb9aff18..c818c560 100644 --- a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java +++ b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java @@ -1,6 +1,14 @@ package com.dispose.service.impl; -import com.dispose.common.*; +import com.dispose.common.DisposeConfigValue; +import com.dispose.common.DisposeDeviceType; +import com.dispose.common.DisposeObjectType; +import com.dispose.common.DisposeTaskStatus; +import com.dispose.common.DpTechAttackType; +import com.dispose.common.ErrorCode; +import com.dispose.common.Helper; +import com.dispose.common.NetflowDirection; +import com.dispose.common.ObjectStatus; import com.dispose.manager.DeviceTaskManager; import com.dispose.manager.DisposeTaskManager; import com.dispose.pojo.entity.DeviceTask; @@ -497,6 +505,8 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { // 为当前所有可用处置设备创建对应的处置任务 disposeAbilityRouterService.getAllAbilityDevices().stream() + // 过滤非正常状态设备 + .filter(f -> f.getDev().getStatus().equals(ObjectStatus.NORMAL)) // 判断是否是当前设备的处置任务 .filter(f -> v.getDeviceId() == -1 || f.getDev().getId().equals(v.getDeviceId())) // 判断是否是当前区域处置 diff --git a/src/main/java/com/dispose/service/impl/DisposeAbilityRouterServiceImpl.java b/src/main/java/com/dispose/service/impl/DisposeAbilityRouterServiceImpl.java index a3dcd041..86ed2833 100644 --- a/src/main/java/com/dispose/service/impl/DisposeAbilityRouterServiceImpl.java +++ b/src/main/java/com/dispose/service/impl/DisposeAbilityRouterServiceImpl.java @@ -202,16 +202,16 @@ public class DisposeAbilityRouterServiceImpl implements DisposeAbilityRouterServ public void runPeriodTask() { synchronized (this) { - List rmKey = new ArrayList<>(); for (AbilityInfo v : getAllAbilityDevices()) { DisposeDevice dev = disposeDeviceManager.getDisposeDeviceById(v.getDev().getId()); - if (dev == null || !dev.getStatus().equals(ObjectStatus.NORMAL)) { - rmKey.add(getAbilityDeviceHashKey(v.getDev().getIpAddr(), v.getDev().getIpPort(), - String.valueOf(v.getDev().getDeviceType()))); - } else { + if (dev != null && !dev.getStatus().equals(ObjectStatus.NORMAL)) { + // 更新设备状态 + v.getDev().setStatus(dev.getStatus()); + v.getDb().periodTaskRuntime(); + // 同步最新处置平台业务信息到设备 v.getDb().upgradeServiceGroup(serviceGroupMapper.selectAll()); @@ -241,8 +241,6 @@ public class DisposeAbilityRouterServiceImpl implements DisposeAbilityRouterServ })); } } - - rmKey.forEach(disposeAbilityMap::remove); } }