TaskController.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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("/addPatentNoTask")
  58. @Operation(summary = "根据专利号导入专利任务")
  59. public String addPatentNoTask(@RequestBody TaskAddNewDTO taskAddNewDTO) throws IOException {
  60. uploadTaskService.addPatentNoTask(taskAddNewDTO);
  61. return Response.success();
  62. }
  63. @PostMapping("/queryTasks")
  64. @Operation(summary = "查询任务列表")
  65. public String queryTasks(@RequestBody QueryTaskDTO queryTaskDTO) throws IOException {
  66. return Response.success(taskService.queryTasks(queryTaskDTO));
  67. }
  68. @PostMapping("/queryQrtzTaskLogs")
  69. @Operation(summary = "查询定时任务执行日志")
  70. public String queryQrtzTaskLogs(@RequestBody QueryQrtzTaskLogsDTO queryQrtzTaskLogsDTO) {
  71. return Response.success(taskService.queryQrtzTaskLogs(queryQrtzTaskLogsDTO));
  72. }
  73. @GetMapping("/pause")
  74. @Operation(summary = "暂停任务")
  75. public Response pauseTask(Integer taskId) throws InterruptedException {
  76. log.info("开始处理【暂停任务】的请求,请求参数为:taskId={}", taskId);
  77. Integer taskStatus = taskService.pauseTask(taskId);
  78. return Response.ok(taskStatus);
  79. }
  80. @GetMapping("/continue")
  81. @Operation(summary = "继续任务")
  82. public Response continueTask(Integer taskId) {
  83. log.info("开始处理【继续任务】的请求,请求参数为:taskId={}", taskId);
  84. Integer taskStatus = taskService.continueTask(taskId);
  85. return Response.ok(taskStatus);
  86. }
  87. @GetMapping("/cancelTask")
  88. @Operation(summary = "取消任务")
  89. public String cancelTask(Integer taskId) throws SchedulerException, InterruptedException {
  90. log.info("开始处理【取消任务】的请求,请求参数为:taskId={}", taskId);
  91. taskService.cancelTask(taskId);
  92. return Response.success("任务取消成功");
  93. }
  94. @GetMapping("list")
  95. @Operation(summary = "任务列表")
  96. public String getPageList(TaskVO params) throws IOException {
  97. return Response.success(taskService.getPageList(params));
  98. }
  99. @PostMapping("delete")
  100. @Operation(summary = "删除任务")
  101. public String delete(Integer id) {
  102. return taskService.delete(id);
  103. }
  104. @GetMapping("queue")
  105. @Operation(summary = "获取进行中的任务")
  106. public String getQueueList(Integer type, Integer projectId, Integer productId) {
  107. return Response.success(taskService.getQueueList(type, projectId, productId));
  108. }
  109. @PostMapping("update")
  110. @Operation(summary = "更新任务")
  111. public String update(@RequestBody Task task) {
  112. taskService.updateStatus(task.getId(), task.getStatus(), task.getEndTime());
  113. return Response.success(true);
  114. }
  115. }