diff --git a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java index 3f302e47..b929ec4a 100644 --- a/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java +++ b/src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java @@ -14,6 +14,7 @@ import com.dispose.pojo.po.AbilityInfo; import com.dispose.pojo.po.MulReturnType; import com.dispose.service.DeviceTaskManagerService; import com.dispose.service.DisposeAbilityRouterService; +import com.pengxin.dispose.common.PengXinTaskStatus; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled; @@ -442,6 +443,8 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { // 设置任务状态为启动中 deviceTaskManager.changeDisposeDeviceTaskInfoStatus(deviceTask.getId(), DisposeTaskStatus.TASK_STARTING); + // 设置设备任务状态为启动中 + deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(deviceTask.getId(), (long) PengXinTaskStatus.TASK_STARTING.getValue()); // 设置启动任务攻击类型状态 deviceTaskManager.setExecAttackType(deviceTask.getId(), NetflowDirection.DIRECTION_BI, deviceTask.getTaskAttackType()); @@ -468,6 +471,9 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { } else if (deviceTask.getErrRetry() < DisposeConfigValue.CALL_ERROR_RETRY_TIMES) { // 设置该任务为新任务,待下次重试启动 deviceTaskManager.changeDisposeDeviceTaskInfoStatus(deviceTask.getId(), DisposeTaskStatus.TASK_NEW); + // 设置设备任务状态为启动处置任务失败 + deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(deviceTask.getId(), + (long) PengXinTaskStatus.TASK_STARTED_FAILED.getValue()); // 记录任务出错重试次数 deviceTaskManager.setTaskErrRetryTimes(deviceTask.getId(), deviceTask.getErrRetry() + 1); log.error("PENGXIN_PLATFORM setup task times {} error {}: {}", deviceTask.getErrRetry(), @@ -476,6 +482,9 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { // 任务出错,不在重试,当做失败任务处理 deviceTaskManager.setAttackTypeStatus(deviceTask.getId(), disposeTask.getFlowDirection(), 0L); + // 设置设备任务状态为启动处置任务失败 + deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(deviceTask.getId(), + (long) PengXinTaskStatus.TASK_STARTED_FAILED.getValue()); log.error("PENGXIN_PLATFORM setup task error {}: {}", ret.getFirstParam(), deviceTask); } } @@ -490,6 +499,10 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { private void pengXinDeviceTaskStop(AbilityInfo ai, DeviceTask deviceTask, DisposeTask disposeTask) { MulReturnType ret; + // 设置设备任务状态为解封中 + deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(deviceTask.getId(), + (long) PengXinTaskStatus.TASK_UNBLOCKING.getValue()); + // 停止处置任务 ret = ai.getDb().stopDispose(disposeTask.getDisposeObject(), disposeTask.getDisposeCapacity(), null, null, deviceTask.getExternId()); @@ -501,11 +514,17 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { deviceTaskManager.setTaskErrRetryTimes(deviceTask.getId(), 0); deviceTaskManager.setAttackTypeStatus(deviceTask.getId(), disposeTask.getFlowDirection(), 0L); } else if (deviceTask.getErrRetry() < DisposeConfigValue.CALL_ERROR_RETRY_TIMES) { + // 设置设备任务状态为解封失败 + deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(deviceTask.getId(), + (long) PengXinTaskStatus.TASK_UNBLOCKED_FAILED.getValue()); // 记录任务出错重试次数 deviceTaskManager.setTaskErrRetryTimes(deviceTask.getId(), deviceTask.getErrRetry() + 1); log.error("PENGXIN_PLATFORM stop task times {} error {}: {}", deviceTask.getErrRetry(), ret.getSecondParam(), deviceTask); } else { + // 设置设备任务状态为解封失败 + deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(deviceTask.getId(), + (long) PengXinTaskStatus.TASK_UNBLOCKED_FAILED.getValue()); log.error("PENGXIN_PLATFORM stop task error {}: {}", ret.getFirstParam(), deviceTask); } } @@ -808,7 +827,7 @@ public class DeviceTaskManagerServiceImpl implements DeviceTaskManagerService { MulReturnType ret = ai.getDb().taskStatus(v.getExternId()); if (ret.getFirstParam() == ErrorCode.ERR_OK) { - deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(v.getExternId(), + deviceTaskManager.changeDisposeDeviceTaskInfoDevStatus(v.getId(), ret.getSecondParam()); } } diff --git a/src/main/java/com/pengxin/dispose/common/PengXinTaskStatus.java b/src/main/java/com/pengxin/dispose/common/PengXinTaskStatus.java new file mode 100644 index 00000000..179068aa --- /dev/null +++ b/src/main/java/com/pengxin/dispose/common/PengXinTaskStatus.java @@ -0,0 +1,92 @@ +package com.pengxin.dispose.common; + +import com.dispose.common.BaseEnum; + +/** + * The enum Dispose task status. + * + * @author + */ +public enum PengXinTaskStatus implements BaseEnum { + /** + * The Task starting. + */ + TASK_STARTING(0, "启动中"), + /** + * The Task started. + */ + TASK_STARTED(1, "封堵中"), + /** + * The user aborted Task finished . + */ + TASK_FINISHED_USER(2, "用户中止"), + /** + * The Task finished automatically when the scheduled time is reached. + */ + TASK_FINISHED_TIME(3, "已结束"), + /** + * The Task started failed. + */ + TASK_STARTED_FAILED(4, "设备启动处置任务失败"), + /** + * The Task reviewing. + */ + TASK_REVIEWING(5, "待审核"), + /** + * The Task reviewed failed. + */ + TASK_REVIEWED_FAILED(6, "审核失败"), + /** + * The Task unblocked failed. + */ + TASK_UNBLOCKED_FAILED(7, "解封失败"), + /** + * The Task unblocked. + */ + TASK_UNBLOCKED(8, "解封成功"), + /** + * The Task unblocking. + */ + TASK_UNBLOCKING(9, "解封中"), + ; + + /** + * The Code. + */ + private final Integer code; + /** + * The Readme. + */ + private final String readme; + + /** + * Instantiates a new Dispose task status. + * + * @param code the code + * @param readme the readme + */ + PengXinTaskStatus(int code, String readme) { + this.code = code; + this.readme = readme; + } + + /** + * Gets value. + * + * @return the value + */ + @Override + public Integer getValue() { + return this.code; + } + + /** + * Gets description. + * + * @return the description + */ + @Override + public String getDescription() { + return this.readme; + } +}