TaskController.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package cn.cslg.pas.controller;
  2. import cn.cslg.pas.common.core.base.Constants;
  3. import cn.cslg.pas.common.model.dto.QueryQrtzTaskLogsDTO;
  4. import cn.cslg.pas.common.model.dto.TaskAddNewDTO;
  5. import cn.cslg.pas.common.model.dto.QueryTaskDTO;
  6. import cn.cslg.pas.common.model.vo.TaskVO;
  7. import cn.cslg.pas.common.utils.Response;
  8. import cn.cslg.pas.domain.Task;
  9. import cn.cslg.pas.domain.asso.TaskCondition;
  10. import cn.cslg.pas.service.TaskService;
  11. import cn.cslg.pas.service.upLoadPatent.JobService;
  12. import cn.cslg.pas.service.upLoadPatent.UploadTaskService;
  13. import io.swagger.v3.oas.annotations.Operation;
  14. import io.swagger.v3.oas.annotations.tags.Tag;
  15. import lombok.RequiredArgsConstructor;
  16. import lombok.extern.slf4j.Slf4j;
  17. import org.quartz.SchedulerException;
  18. import org.springframework.context.annotation.Lazy;
  19. import org.springframework.web.bind.annotation.*;
  20. import java.io.IOException;
  21. import java.util.List;
  22. /**
  23. * <p>
  24. * 任务 前端控制器
  25. * </p>
  26. *
  27. * @author 王岩
  28. * @since 2022-02-17
  29. */
  30. @Slf4j
  31. @Tag(name = "系统任务")
  32. @RestController
  33. @RequestMapping(Constants.API_VERSION_V2 + "/task")
  34. @RequiredArgsConstructor(onConstructor_ = {@Lazy})
  35. public class TaskController {
  36. private final TaskService taskService;
  37. private final UploadTaskService uploadTaskService;
  38. private final JobService jobService;
  39. @PostMapping("/addTask")
  40. @Operation(summary = "新增网站导入任务")
  41. public String add(@RequestBody TaskAddNewDTO taskAddNewDTO) throws IOException, SchedulerException {
  42. log.info("开始处理【新增网站导入专利任务】的请求,请求参数为:{}", taskAddNewDTO);
  43. TaskCondition taskCondition = new TaskCondition();
  44. //新增欧专局网站导入任务
  45. if (taskAddNewDTO.getTaskType2().equals(3)) {
  46. taskCondition = uploadTaskService.addEpoTask(taskAddNewDTO);
  47. //新增专利之星网站导入任务
  48. } else if (taskAddNewDTO.getTaskType2().equals(4)) {
  49. taskCondition = uploadTaskService.addPatentStarTask(taskAddNewDTO);
  50. }
  51. //若是定时任务,则新增添加定时任务的job
  52. if (taskCondition.getTaskType() == 1) {
  53. jobService.addJob(taskCondition);
  54. }
  55. return Response.success("添加任务完成");
  56. }
  57. @PostMapping("/queryTasks")
  58. @Operation(summary = "查询任务列表")
  59. public String queryTasks(@RequestBody QueryTaskDTO queryTaskDTO) throws IOException {
  60. return Response.success(taskService.queryTasks(queryTaskDTO));
  61. }
  62. @GetMapping("/queryTaskById")
  63. @Operation(summary = "根据id查询任务")
  64. public String queryTaskByTaskId(Integer taskId) {
  65. return Response.success(taskService.getById(taskId));
  66. }
  67. @PostMapping("/queryQrtzTaskLogs")
  68. @Operation(summary = "查询定时任务执行日志")
  69. public String queryQrtzTaskLogs(@RequestBody QueryQrtzTaskLogsDTO queryQrtzTaskLogsDTO) {
  70. return Response.success(taskService.queryQrtzTaskLogs(queryQrtzTaskLogsDTO));
  71. }
  72. @GetMapping("/pause")
  73. @Operation(summary = "暂停任务")
  74. public Response pauseTask(Integer taskId) throws InterruptedException {
  75. log.info("开始处理【暂停任务】的请求,请求参数为:taskId={}", taskId);
  76. Integer taskStatus = taskService.pauseTask(taskId);
  77. return Response.ok(taskStatus);
  78. }
  79. @GetMapping("/continue")
  80. @Operation(summary = "继续任务")
  81. public Response continueTask(Integer taskId) {
  82. log.info("开始处理【继续任务】的请求,请求参数为:taskId={}", taskId);
  83. Integer taskStatus = taskService.continueTask(taskId);
  84. return Response.ok(taskStatus);
  85. }
  86. @GetMapping("/cancelTask")
  87. @Operation(summary = "取消任务")
  88. public String cancelTask(Integer taskId) throws SchedulerException, InterruptedException {
  89. log.info("开始处理【取消任务】的请求,请求参数为:taskId={}", taskId);
  90. taskService.cancelTask(taskId);
  91. return Response.success("任务取消成功");
  92. }
  93. @GetMapping("list")
  94. @Operation(summary = "任务列表")
  95. public String getPageList(TaskVO params) throws IOException {
  96. return Response.success(taskService.getPageList(params));
  97. }
  98. @PostMapping("delete")
  99. @Operation(summary = "删除任务")
  100. public String delete(Integer id) {
  101. return taskService.delete(id);
  102. }
  103. @GetMapping("queue")
  104. @Operation(summary = "获取进行中的任务")
  105. public String getQueueList(Integer type, Integer projectId, Integer productId) {
  106. return Response.success(taskService.getQueueList(type, projectId, productId));
  107. }
  108. @PostMapping("update")
  109. @Operation(summary = "更新任务")
  110. public String update(@RequestBody Task task) {
  111. taskService.updateStatus(task.getId(), task.getStatus(), task.getEndTime());
  112. return Response.success(true);
  113. }
  114. }