1、alertmessage添加is_distribute(待删除)、command_uuid、create_time、modify_time、alert_message_uuid属性。 2、AlertMessageController添加queryAlarmsByCommandId方法,根据commandUUID查询alertmessage 3、AlertMessageMapper添加新建、查询alertmessage 4、service重写处理alertmessage逻辑,现在alertmessage的isdistribute不需要了,需要删除 Command: 1、service添加updateCommandVaid方法,用于对研判后任务生成的指令研判下发 Task: 1、TaskCommandInfo类添加taskStatus,减少AlertMessageService的查询,并做了标注 2、Controller添加研判后任务下发指令\停止指令的方法validCommandInfoByTaskId StaticRule、DynamicRule、WhiteList: 1、添加分页查询返回数据总数
149 lines
6.0 KiB
Java
149 lines
6.0 KiB
Java
package com.realtime.protection.server.task;
|
||
|
||
import com.realtime.protection.configuration.entity.task.Task;
|
||
import com.realtime.protection.configuration.entity.task.TaskCommandInfo;
|
||
import com.realtime.protection.configuration.exception.DorisStartException;
|
||
import com.realtime.protection.configuration.response.ResponseResult;
|
||
import com.realtime.protection.server.command.CommandService;
|
||
import com.realtime.protection.server.task.status.StateChangeService;
|
||
import jakarta.validation.Valid;
|
||
import jakarta.validation.constraints.Max;
|
||
import jakarta.validation.constraints.Min;
|
||
import jakarta.validation.constraints.NotNull;
|
||
import org.springframework.web.bind.annotation.*;
|
||
|
||
import java.util.List;
|
||
|
||
@RestController
|
||
@RequestMapping("/task")
|
||
public class TaskController implements TaskControllerApi {
|
||
|
||
private final TaskService taskService;
|
||
private final CommandService commandService;
|
||
private final StateChangeService stateChangeService;
|
||
|
||
public TaskController(TaskService taskService, CommandService commandService, StateChangeService stateChangeService) {
|
||
this.taskService = taskService;
|
||
this.commandService = commandService;
|
||
this.stateChangeService = stateChangeService;
|
||
}
|
||
|
||
@Override
|
||
@PostMapping("/new")
|
||
public ResponseResult newTask(@RequestBody @Valid Task task) {
|
||
Long taskId = taskService.newTask(task);
|
||
|
||
if (taskId > 0) {
|
||
return ResponseResult.ok()
|
||
.setData("task_name", task.getTaskName())
|
||
.setData("task_id", taskId)
|
||
.setData("success", true);
|
||
}
|
||
|
||
return ResponseResult.error()
|
||
.setData("task_name", task.getTaskName())
|
||
.setData("task_id", 0)
|
||
.setData("success", false);
|
||
}
|
||
|
||
// API推送Endpoint
|
||
@Override
|
||
@PostMapping("/api/new")
|
||
public ResponseResult newTaskWithAPI(@RequestBody @Valid TaskCommandInfo taskCommandInfo) {
|
||
Long taskId = taskService.newTaskUsingCommandInfo(taskCommandInfo);
|
||
if (taskId <= 0) {
|
||
return ResponseResult.invalid()
|
||
.setData("taskId", -1)
|
||
.setData("success", false);
|
||
}
|
||
|
||
commandService.createCommand(taskCommandInfo);
|
||
|
||
return ResponseResult.ok()
|
||
.setData("taskId", taskId)
|
||
.setData("success", true);
|
||
}
|
||
|
||
@Override
|
||
@GetMapping("/query")
|
||
public ResponseResult queryTasks(@RequestParam(value = "task_status", required = false) Integer taskStatus,
|
||
@RequestParam(value = "task_type", required = false) String taskType,
|
||
@RequestParam(value = "task_name", required = false) String taskName,
|
||
@RequestParam(value = "task_creator", required = false) String taskCreator,
|
||
@RequestParam("page") @Min(1) Integer page,
|
||
@RequestParam("page_size") @Min(1) Integer pageSize) {
|
||
List<Task> tasks = taskService.queryTasks(taskStatus, taskType, taskName, taskCreator, page, pageSize);
|
||
return ResponseResult.ok()
|
||
.setData("task_list", tasks);
|
||
}
|
||
|
||
@Override
|
||
@GetMapping("/{id}/query")
|
||
public ResponseResult queryTask(@PathVariable @Min(1) Long id) throws IllegalAccessException {
|
||
Task task = taskService.queryTask(id);
|
||
|
||
if (task == null) {
|
||
return ResponseResult.invalid().setMessage("无效Task ID,也许该ID对应的任务不存在?");
|
||
}
|
||
|
||
return ResponseResult.ok().setData("task", task);
|
||
}
|
||
|
||
@Override
|
||
@PostMapping("/{taskId}/update")
|
||
public ResponseResult updateTask(@PathVariable Long taskId, @RequestBody @Valid Task task) {
|
||
task.setTaskId(taskId);
|
||
return ResponseResult.ok()
|
||
.setData("task_id", task.getTaskId())
|
||
.setData("success", taskService.updateTask(task));
|
||
}
|
||
|
||
@Override
|
||
@GetMapping("/{taskId}/audit/{auditStatus}")
|
||
public ResponseResult changeTaskAuditStatus(@PathVariable @NotNull @Max(10) Integer auditStatus,
|
||
@PathVariable @NotNull @Min(1) Long taskId) {
|
||
|
||
return ResponseResult.ok()
|
||
.setData("task_id", taskId)
|
||
.setData("success", taskService.changeTaskAuditStatus(taskId, auditStatus))
|
||
.setData("audit_status", taskService.queryTaskAuditStatus(taskId));
|
||
}
|
||
|
||
@Override
|
||
@DeleteMapping("/{taskId}/delete")
|
||
public ResponseResult deleteTask(@PathVariable @NotNull @Min(1) Long taskId) {
|
||
return ResponseResult.ok()
|
||
.setData("task_id", taskId)
|
||
.setData("success", taskService.deleteTask(taskId));
|
||
}
|
||
|
||
@Override
|
||
@GetMapping("/{taskId}/running/{stateNum}")
|
||
public ResponseResult changeTaskStatus(@PathVariable @NotNull @Min(0) @Max(6) Integer stateNum,
|
||
@PathVariable @NotNull @Min(1) Long taskId) throws DorisStartException {
|
||
return ResponseResult.ok()
|
||
.setData("task_id", taskId)
|
||
// 外部修改状态,需要进行状态检查
|
||
.setData("success", stateChangeService.changeState(stateNum, taskId, false))
|
||
.setData("status_now", taskService.queryTaskStatus(taskId));
|
||
}
|
||
|
||
@Override
|
||
@GetMapping("/{taskId}/commands")
|
||
public ResponseResult queryCommandInfoByTaskId(@PathVariable Long taskId) {
|
||
return ResponseResult.ok()
|
||
.setData("success", true)
|
||
.setData("commands", commandService.queryCommandInfoByTaskId(taskId));
|
||
}
|
||
|
||
//研判后任务 下发指令\停止指令
|
||
@PostMapping("/{commandId}/valid/{isValid}")
|
||
public ResponseResult validCommandInfoByTaskId(@PathVariable Integer isValid,
|
||
@PathVariable String commandId) {
|
||
return ResponseResult.ok()
|
||
.setData("success", commandService.updateCommandVaid(commandId, isValid));
|
||
}
|
||
|
||
|
||
}
|