1. 在静态和动态实体类中添加验证审批状态方法,用于批量验证审批状态中
2. 在任务状态修改函数中,添加更新动静态规则审批状态方法,用以更新规则审批状态为使用中/已审批 3. 在部分Mapper的update函数中修改modify_time为NOW() 4. 修复部分NullPointerException bug 5. 在新建任务时立刻检查所有规则的审批状态,必须为已审批才可以添加到任务中 6. 在taskService中添加更新动静态规则审批状态函数。该函数不能用于除已审批/使用中的其他审批状态更新
This commit is contained in:
@@ -36,14 +36,14 @@ public class StateHandler {
|
||||
}
|
||||
|
||||
// 如果审核状态不为已通过审核,则报错
|
||||
if (taskAuditStatus != AuditStatusEnum.AUDITED.getNum()) {
|
||||
if (!taskAuditStatus.equals(AuditStatusEnum.AUDITED.getNum())) {
|
||||
throw new IllegalArgumentException("无效的task_id,因为未通过审核");
|
||||
}
|
||||
|
||||
return switch (TaskTypeEnum.getTaskTypeByNum(task.getTaskType())) {
|
||||
case STATIC -> handleStaticTaskStart(commandService, taskService, taskId);
|
||||
case DYNAMIC -> handleDynamicTaskStart(taskService, taskId);
|
||||
case JUDGED -> handleJudgedTaskStart(taskService, taskId);
|
||||
case STATIC -> handleStaticTaskStart(commandService, taskService, task);
|
||||
case DYNAMIC -> handleDynamicTaskStart(taskService, task);
|
||||
case JUDGED -> handleJudgedTaskStart(taskService, task);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -57,49 +57,60 @@ public class StateHandler {
|
||||
return true;
|
||||
}
|
||||
|
||||
protected Boolean handleStop(CommandService commandService, Long taskId) {
|
||||
protected Boolean handleStop(CommandService commandService, TaskService taskService, Long taskId) {
|
||||
commandService.removeCommandsByTaskId(taskId);
|
||||
taskService.updateDynamicRuleAuditStatusInTask(taskService.queryTask(taskId), AuditStatusEnum.AUDITED);
|
||||
taskService.updateStaticRuleAuditStatusInTask(taskService.queryTask(taskId), AuditStatusEnum.AUDITED);
|
||||
return true;
|
||||
}
|
||||
|
||||
protected Boolean handleFinish(CommandService commandService, Long taskId) {
|
||||
protected Boolean handleFinish(CommandService commandService, TaskService taskService, Long taskId) {
|
||||
commandService.removeCommandsByTaskId(taskId);
|
||||
taskService.updateDynamicRuleAuditStatusInTask(taskService.queryTask(taskId), AuditStatusEnum.AUDITED);
|
||||
taskService.updateStaticRuleAuditStatusInTask(taskService.queryTask(taskId), AuditStatusEnum.AUDITED);
|
||||
return true;
|
||||
}
|
||||
|
||||
protected Boolean handleFailed(CommandService commandService, Long taskId) {
|
||||
protected Boolean handleFailed(CommandService commandService, TaskService taskService, Long taskId) {
|
||||
commandService.removeCommandsByTaskId(taskId);
|
||||
taskService.updateDynamicRuleAuditStatusInTask(taskService.queryTask(taskId), AuditStatusEnum.AUDITED);
|
||||
taskService.updateStaticRuleAuditStatusInTask(taskService.queryTask(taskId), AuditStatusEnum.AUDITED);
|
||||
return true;
|
||||
}
|
||||
|
||||
// todo: 如果是实时任务或者研判后处置任务,那么就需要在任务启动之后,立刻向动态规则中指定的系统发送日志筛选请求。
|
||||
// 筛选完成后,系统返回日志,需要由接收端点提取字段,并且合成一条静态规则,再按照任务开始时间、结束时间和任务类型进行指令创建
|
||||
private Boolean handleJudgedTaskStart(TaskService taskService, Long taskId) {
|
||||
return sendFilters(taskService, taskId);
|
||||
private Boolean handleJudgedTaskStart(TaskService taskService, Task task) {
|
||||
return sendFilters(taskService, task);
|
||||
}
|
||||
|
||||
private Boolean handleDynamicTaskStart(TaskService taskService, Long taskId) {
|
||||
return sendFilters(taskService, taskId);
|
||||
private Boolean handleDynamicTaskStart(TaskService taskService, Task task) {
|
||||
return sendFilters(taskService, task);
|
||||
}
|
||||
|
||||
private Boolean handleStaticTaskStart(CommandService commandService, TaskService taskService, Long taskId) {
|
||||
private Boolean handleStaticTaskStart(CommandService commandService, TaskService taskService, Task task) {
|
||||
// 如果未能获取staticTaskCommandInfos,需要报错
|
||||
List<TaskCommandInfo> staticTaskCommandInfos = taskService.getStaticCommandInfos(taskId);
|
||||
List<TaskCommandInfo> staticTaskCommandInfos = taskService.getStaticCommandInfos(task.getTaskId());
|
||||
if (staticTaskCommandInfos == null || staticTaskCommandInfos.isEmpty()) {
|
||||
throw new IllegalArgumentException("静态规则列表为空,请至少选择一个静态规则以启动任务");
|
||||
}
|
||||
|
||||
// 将所有关联的静态规则全部设置为已使用状态
|
||||
taskService.updateStaticRuleAuditStatusInTask(task, AuditStatusEnum.USING);
|
||||
|
||||
commandService.createCommands(staticTaskCommandInfos);
|
||||
return true;
|
||||
}
|
||||
|
||||
private Boolean sendFilters(TaskService taskService, Long taskId) {
|
||||
List<DynamicTaskInfo> dynamicTaskInfos = taskService.getDynamicTaskInfos(taskId);
|
||||
private Boolean sendFilters(TaskService taskService, Task task) {
|
||||
List<DynamicTaskInfo> dynamicTaskInfos = taskService.getDynamicTaskInfos(task.getTaskId());
|
||||
|
||||
if (dynamicTaskInfos == null || dynamicTaskInfos.isEmpty()) {
|
||||
throw new IllegalArgumentException("动态规则列表为空,请至少选择一个动态规则以启动动态/研判后类型任务");
|
||||
}
|
||||
|
||||
taskService.updateDynamicRuleAuditStatusInTask(task, AuditStatusEnum.AUDITED);
|
||||
|
||||
AtomicReference<Boolean> success = new AtomicReference<>(false);
|
||||
|
||||
Mono<SimpleResponse> mono = client.post()
|
||||
|
||||
@@ -11,8 +11,8 @@ public class FailedState extends StateHandler implements State {
|
||||
public Boolean handle(State newState, CommandService commandService, TaskService taskService, Long taskId) throws DorisStartException {
|
||||
return switch (StateEnum.getStateEnumByState(newState)) {
|
||||
case RUNNING -> handleStart(taskService, commandService, taskId);
|
||||
case STOP -> handleStop(commandService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskId);
|
||||
case STOP -> handleStop(commandService, taskService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskService, taskId);
|
||||
default -> throw new IllegalStateException("Unexpected value: " + StateEnum.getStateEnumByState(newState));
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,8 +10,8 @@ public class GeneratingState extends StateHandler implements State {
|
||||
public Boolean handle(State newState, CommandService commandService, TaskService taskService, Long taskId) {
|
||||
return switch (StateEnum.getStateEnumByState(newState)) {
|
||||
case RUNNING -> true;
|
||||
case FAILED -> handleFailed(commandService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskId);
|
||||
case FAILED -> handleFailed(commandService, taskService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskService, taskId);
|
||||
default -> throw new IllegalStateException("Unexpected value: " + StateEnum.getStateEnumByState(newState));
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,9 +10,9 @@ public class PauseState extends StateHandler implements State {
|
||||
public Boolean handle(State newState, CommandService commandService, TaskService taskService, Long taskId) {
|
||||
return switch (StateEnum.getStateEnumByState(newState)) {
|
||||
case RUNNING -> handleResume(commandService, taskId);
|
||||
case STOP -> handleStop(commandService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskId);
|
||||
case FAILED -> handleFailed(commandService, taskId);
|
||||
case STOP -> handleStop(commandService, taskService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskService, taskId);
|
||||
case FAILED -> handleFailed(commandService, taskService, taskId);
|
||||
default -> throw new IllegalStateException("Unexpected value: " + StateEnum.getStateEnumByState(newState));
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,9 +10,9 @@ public class PendingState extends StateHandler implements State {
|
||||
@Override
|
||||
public Boolean handle(State newState, CommandService commandService, TaskService taskService, Long taskId) throws DorisStartException {
|
||||
return switch (StateEnum.getStateEnumByState(newState)) {
|
||||
case FAILED -> handleFailed(commandService, taskId);
|
||||
case FAILED -> handleFailed(commandService, taskService, taskId);
|
||||
case RUNNING -> handleStart(taskService, commandService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskService, taskId);
|
||||
default -> throw new IllegalStateException(taskId + " meets unexpected value: "
|
||||
+ StateEnum.getStateEnumByState(newState));
|
||||
};
|
||||
|
||||
@@ -10,9 +10,9 @@ public class RunningState extends StateHandler implements State {
|
||||
public Boolean handle(State newState, CommandService commandService, TaskService taskService, Long taskId) {
|
||||
return switch (StateEnum.getStateEnumByState(newState)) {
|
||||
case PAUSED -> handlePause(commandService, taskId);
|
||||
case STOP -> handleStop(commandService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskId);
|
||||
case FAILED -> handleFailed(commandService, taskId);
|
||||
case STOP -> handleStop(commandService, taskService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskService, taskId);
|
||||
case FAILED -> handleFailed(commandService, taskService, taskId);
|
||||
default -> throw new IllegalStateException("Unexpected value: " + StateEnum.getStateEnumByState(newState));
|
||||
};
|
||||
}
|
||||
|
||||
@@ -12,8 +12,8 @@ public class StopState extends StateHandler implements State {
|
||||
public Boolean handle(State newState, CommandService commandService, TaskService taskService, Long taskId) throws DorisStartException {
|
||||
return switch (StateEnum.getStateEnumByState(newState)) {
|
||||
case RUNNING -> handleStart(taskService, commandService, taskId);
|
||||
case FAILED -> handleFailed(commandService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskId);
|
||||
case FAILED -> handleFailed(commandService, taskService, taskId);
|
||||
case FINISHED -> handleFinish(commandService, taskService, taskId);
|
||||
default -> throw new IllegalStateException("Unexpected value: " + StateEnum.getStateEnumByState(newState));
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user