SysJobController.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. package com.ruoyi.quartz.controller;
  2. import java.util.List;
  3. import org.apache.shiro.authz.annotation.RequiresPermissions;
  4. import org.quartz.SchedulerException;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.ui.ModelMap;
  8. import org.springframework.web.bind.annotation.GetMapping;
  9. import org.springframework.web.bind.annotation.PathVariable;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.ResponseBody;
  13. import com.ruoyi.common.annotation.Log;
  14. import com.ruoyi.common.core.controller.BaseController;
  15. import com.ruoyi.common.core.domain.AjaxResult;
  16. import com.ruoyi.common.core.page.TableDataInfo;
  17. import com.ruoyi.common.enums.BusinessType;
  18. import com.ruoyi.common.exception.job.TaskException;
  19. import com.ruoyi.common.utils.poi.ExcelUtil;
  20. import com.ruoyi.quartz.domain.SysJob;
  21. import com.ruoyi.quartz.service.ISysJobService;
  22. /**
  23. * 调度任务信息操作处理
  24. *
  25. * @author ruoyi
  26. */
  27. @Controller
  28. @RequestMapping("/monitor/job")
  29. public class SysJobController extends BaseController
  30. {
  31. private String prefix = "monitor/job";
  32. @Autowired
  33. private ISysJobService jobService;
  34. @RequiresPermissions("monitor:job:view")
  35. @GetMapping()
  36. public String job()
  37. {
  38. return prefix + "/job";
  39. }
  40. @RequiresPermissions("monitor:job:list")
  41. @PostMapping("/list")
  42. @ResponseBody
  43. public TableDataInfo list(SysJob job)
  44. {
  45. startPage();
  46. List<SysJob> list = jobService.selectJobList(job);
  47. return getDataTable(list);
  48. }
  49. @Log(title = "定时任务", businessType = BusinessType.EXPORT)
  50. @RequiresPermissions("monitor:job:export")
  51. @PostMapping("/export")
  52. @ResponseBody
  53. public AjaxResult export(SysJob job)
  54. {
  55. List<SysJob> list = jobService.selectJobList(job);
  56. ExcelUtil<SysJob> util = new ExcelUtil<SysJob>(SysJob.class);
  57. return util.exportExcel(list, "定时任务");
  58. }
  59. @Log(title = "定时任务", businessType = BusinessType.DELETE)
  60. @RequiresPermissions("monitor:job:remove")
  61. @PostMapping("/remove")
  62. @ResponseBody
  63. public AjaxResult remove(String ids) throws SchedulerException
  64. {
  65. jobService.deleteJobByIds(ids);
  66. return success();
  67. }
  68. @RequiresPermissions("monitor:job:detail")
  69. @GetMapping("/detail/{jobId}")
  70. public String detail(@PathVariable("jobId") Long jobId, ModelMap mmap)
  71. {
  72. mmap.put("name", "job");
  73. mmap.put("job", jobService.selectJobById(jobId));
  74. return prefix + "/detail";
  75. }
  76. /**
  77. * 任务调度状态修改
  78. */
  79. @Log(title = "定时任务", businessType = BusinessType.UPDATE)
  80. @RequiresPermissions("monitor:job:changeStatus")
  81. @PostMapping("/changeStatus")
  82. @ResponseBody
  83. public AjaxResult changeStatus(SysJob job) throws SchedulerException
  84. {
  85. return toAjax(jobService.changeStatus(job));
  86. }
  87. /**
  88. * 任务调度立即执行一次
  89. */
  90. @Log(title = "定时任务", businessType = BusinessType.UPDATE)
  91. @RequiresPermissions("monitor:job:changeStatus")
  92. @PostMapping("/run")
  93. @ResponseBody
  94. public AjaxResult run(SysJob job) throws SchedulerException
  95. {
  96. jobService.run(job);
  97. return success();
  98. }
  99. /**
  100. * 新增调度
  101. */
  102. @GetMapping("/add")
  103. public String add()
  104. {
  105. return prefix + "/add";
  106. }
  107. /**
  108. * 新增保存调度
  109. */
  110. @Log(title = "定时任务", businessType = BusinessType.INSERT)
  111. @RequiresPermissions("monitor:job:add")
  112. @PostMapping("/add")
  113. @ResponseBody
  114. public AjaxResult addSave(SysJob job) throws Exception
  115. {
  116. return toAjax(jobService.insertJobCron(job));
  117. }
  118. /**
  119. * 修改调度
  120. */
  121. @GetMapping("/edit/{jobId}")
  122. public String edit(@PathVariable("jobId") Long jobId, ModelMap mmap)
  123. {
  124. mmap.put("job", jobService.selectJobById(jobId));
  125. return prefix + "/edit";
  126. }
  127. /**
  128. * 修改保存调度
  129. */
  130. @Log(title = "定时任务", businessType = BusinessType.UPDATE)
  131. @RequiresPermissions("monitor:job:edit")
  132. @PostMapping("/edit")
  133. @ResponseBody
  134. public AjaxResult editSave(SysJob job) throws SchedulerException, TaskException
  135. {
  136. return toAjax(jobService.updateJobCron(job));
  137. }
  138. /**
  139. * 校验cron表达式是否有效
  140. */
  141. @PostMapping("/checkCronExpressionIsValid")
  142. @ResponseBody
  143. public boolean checkCronExpressionIsValid(SysJob job)
  144. {
  145. return jobService.checkCronExpressionIsValid(job.getCronExpression());
  146. }
  147. }