TimeTaskController.java 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package com.zksy.data.controller;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.zksy.common.domain.Result;
  4. import com.zksy.common.domain.dto.PageDTO;
  5. import com.zksy.common.utils.SearchUtil;
  6. import com.zksy.data.domain.dto.TimeTaskDto;
  7. import com.zksy.data.domain.po.XhScheduleType;
  8. import com.zksy.data.domain.po.XhTimeTask;
  9. import com.zksy.data.service.XhScheduleTypeService;
  10. import com.zksy.data.service.XhTimeTaskService;
  11. import com.zksy.data.utils.TaskManager;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import lombok.SneakyThrows;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.web.bind.annotation.*;
  17. import java.util.List;
  18. import java.util.Optional;
  19. @RestController
  20. @RequestMapping("/timeTask")
  21. @Api(tags = "定时任务",description = "定时任务")
  22. public class TimeTaskController {
  23. @Autowired
  24. private TaskManager taskManager;
  25. @Autowired
  26. private XhTimeTaskService xhTimeTaskService;
  27. @Autowired
  28. private XhScheduleTypeService xhScheduleTypeService;
  29. @PostMapping("/addTaskForXhSchedule")
  30. @ApiOperation("添加定时任务")
  31. public Result<String> addTaskForXhSchedule(@RequestBody TimeTaskDto timeTaskDto) {
  32. return xhTimeTaskService.saveTimeTask(timeTaskDto);
  33. }
  34. @PutMapping("/updateAllModifySchedule")
  35. @ApiOperation("修改所有定时任务")
  36. //前端会传一个数组来修改进行全量同步
  37. public Result<String> updateAllModifySchedule(@RequestBody List<XhTimeTask> xhTimeTaskList) {
  38. System.out.println("xhTimeTaskList:"+xhTimeTaskList);
  39. xhTimeTaskService.updateBatchById(xhTimeTaskList);
  40. return Result.ok("修改成功");
  41. }
  42. @DeleteMapping("/deleteTask")
  43. @ApiOperation("删除定时任务")
  44. public Result<String> deleteTask(@RequestParam String taskName) {
  45. return xhTimeTaskService.removeTimeTask(taskName);
  46. }
  47. @GetMapping("/getAllTask")
  48. @ApiOperation("获取所有的定时任务")
  49. public Result<List<XhTimeTask>> getAllTask() {
  50. return xhTimeTaskService.getAllTask();
  51. }
  52. @SneakyThrows
  53. @GetMapping("/list")
  54. @ApiOperation("分页获取所有的可以执行的任务")
  55. public Result<PageDTO<XhTimeTask>> list(@RequestParam Optional<Long> pageNum, @RequestParam Optional<Long> pageSize, @RequestParam Optional<String> conditionJson) {
  56. long defaultPageNum = 1L;
  57. long defaultPageSize = 10L;
  58. String defaultCondition = "";
  59. Page<XhTimeTask> page = xhTimeTaskService.page(
  60. new Page<>(pageNum.orElse(defaultPageNum), pageSize.orElse(defaultPageSize)),
  61. SearchUtil.parseWhereSql(conditionJson.orElse(defaultCondition))
  62. );
  63. PageDTO<XhTimeTask> dto = PageDTO.of(page, XhTimeTask.class);
  64. return Result.ok(dto);
  65. }
  66. @GetMapping("/getAllTaskType")
  67. @ApiOperation("获取所有的定时任务类型")
  68. public Result<List<XhScheduleType>> getAllTaskType() {
  69. return Result.ok(xhScheduleTypeService.list());
  70. }
  71. @GetMapping("/allRunningTask")
  72. @ApiOperation("获取所有正在执行的定时任务")
  73. public String allTask() {
  74. return taskManager.getTaskMap().toString();
  75. }
  76. @GetMapping("/taskStatus")
  77. @ApiOperation("获取指定任务的状态")
  78. public String taskStatus(@RequestParam String taskId) {
  79. return taskManager.getTaskStatus(taskId).toString();
  80. }
  81. @GetMapping("/stopAll")
  82. @ApiOperation("暂停所有定时任务")
  83. public Result<String> stopAll() {
  84. return xhTimeTaskService.stopAllTasks();
  85. }
  86. }