TimeTaskController.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package jnpf.scheduletask.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import io.swagger.v3.oas.annotations.tags.Tag;
  4. import io.swagger.v3.oas.annotations.Operation;
  5. import jnpf.base.ActionResult;
  6. import jnpf.base.UserInfo;
  7. import jnpf.base.Pagination;
  8. import jnpf.constant.MsgCode;
  9. import jnpf.scheduletask.entity.HandlerNameEntity;
  10. import jnpf.scheduletask.entity.TimeTaskEntity;
  11. import jnpf.exception.DataException;
  12. import jnpf.scheduletask.model.*;
  13. import jnpf.scheduletask.rest.RestScheduleTaskUtil;
  14. import jnpf.util.JsonUtil;
  15. import jnpf.util.JsonUtilEx;
  16. import jnpf.util.UserProvider;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.web.bind.annotation.*;
  19. import jakarta.validation.Valid;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. /**
  23. * 任务调度
  24. *
  25. * @author JNPF开发平台组
  26. * @version V3.1.0
  27. * @copyright 引迈信息技术有限公司
  28. * @date 2019年9月27日 上午9:18
  29. */
  30. @Tag(name = "任务调度", description = "TimeTask")
  31. @RestController
  32. @RequestMapping("/api/scheduletask")
  33. public class TimeTaskController {
  34. /**
  35. * 获取任务调度列表
  36. *
  37. * @param pagination
  38. * @return
  39. */
  40. @Operation(summary = "获取任务调度列表")
  41. @GetMapping
  42. public JSONObject list(Pagination pagination) {
  43. UserInfo userInfo = UserProvider.getUser();
  44. return RestScheduleTaskUtil.getList(pagination, userInfo);
  45. }
  46. /**
  47. * 获取本地任务列表
  48. *
  49. * @return
  50. */
  51. @Operation(summary = "获取任务调度列表")
  52. @GetMapping("/TaskMethods")
  53. public ActionResult<List<TaskMethodsVO>> taskMethods() {
  54. List<TaskMethodsVO> list = new ArrayList<>(16);
  55. // 获取所有handlerName
  56. List<HandlerNameEntity> handlerNameEntities = RestScheduleTaskUtil.getHandlerList();
  57. for (HandlerNameEntity entity : handlerNameEntities) {
  58. TaskMethodsVO taskMethodsVO = new TaskMethodsVO();
  59. taskMethodsVO.setId(entity.getId());
  60. taskMethodsVO.setFullName(entity.getHandlerName());
  61. list.add(taskMethodsVO);
  62. }
  63. return ActionResult.success(list);
  64. }
  65. /**
  66. * 获取任务调度日志列表
  67. *
  68. * @param pagination
  69. * @param taskId 任务Id
  70. * @return
  71. */
  72. @Operation(summary = "获取任务调度日志列表")
  73. @GetMapping("/{id}/TaskLog")
  74. public JSONObject list(@PathVariable("id") String taskId, TaskPage pagination) {
  75. return RestScheduleTaskUtil.getLogList(taskId, UserProvider.getUser(), pagination);
  76. }
  77. /**
  78. * 获取任务调度信息
  79. *
  80. * @param id 主键值
  81. * @return
  82. */
  83. @Operation(summary = "获取任务调度信息")
  84. @GetMapping("/Info/{id}")
  85. public ActionResult<TaskInfoVO> info(@PathVariable("id") String id) throws DataException {
  86. TimeTaskEntity entity = RestScheduleTaskUtil.getInfo(id, UserProvider.getUser());
  87. TaskInfoVO vo = JsonUtilEx.getJsonToBeanEx(entity, TaskInfoVO.class);
  88. return ActionResult.success(vo);
  89. }
  90. /**
  91. * 新建任务调度
  92. *
  93. * @param taskCrForm
  94. * @return
  95. */
  96. @Operation(summary = "新建任务调度")
  97. @PostMapping
  98. public ActionResult create(@RequestBody @Valid TaskCrForm taskCrForm) {
  99. taskCrForm.setUserInfo(UserProvider.getUser());
  100. JSONObject jsonObject = RestScheduleTaskUtil.create(taskCrForm);
  101. return JsonUtil.getJsonToBean(jsonObject, ActionResult.class);
  102. }
  103. /**
  104. * 修改任务调度
  105. *
  106. * @param id 主键值
  107. * @param taskUpForm
  108. * @return
  109. */
  110. @Operation(summary = "修改任务调度")
  111. @PutMapping("/{id}")
  112. public ActionResult update(@PathVariable("id") String id, @RequestBody @Valid TaskUpForm taskUpForm) {
  113. taskUpForm.setUserInfo(UserProvider.getUser());
  114. JSONObject jsonObject = RestScheduleTaskUtil.update(id, taskUpForm);
  115. return JsonUtil.getJsonToBean(jsonObject, ActionResult.class);
  116. }
  117. /**
  118. * 删除任务
  119. *
  120. * @param id 主键值
  121. * @return
  122. */
  123. @Operation(summary = "删除任务")
  124. @DeleteMapping("/{id}")
  125. public ActionResult delete(@PathVariable("id") String id) {
  126. JSONObject jsonObject = RestScheduleTaskUtil.delete(id, UserProvider.getUser());
  127. return JsonUtil.getJsonToBean(jsonObject, ActionResult.class);
  128. }
  129. /**
  130. * 停止任务调度
  131. *
  132. * @param id 主键值
  133. * @return
  134. */
  135. @Operation(summary = "停止任务调度")
  136. @PutMapping("/{id}/Actions/Stop")
  137. public ActionResult stop(@PathVariable("id") String id) {
  138. UpdateTaskModel updateTaskModel = new UpdateTaskModel();
  139. TimeTaskEntity entity = RestScheduleTaskUtil.getInfo(id, UserProvider.getUser());
  140. if (entity != null) {
  141. entity.setEnabledMark(0);
  142. entity.setRunCount(entity.getRunCount());
  143. updateTaskModel.setEntity(entity);
  144. updateTaskModel.setUserInfo(UserProvider.getUser());
  145. RestScheduleTaskUtil.updateTask(updateTaskModel);
  146. return ActionResult.success(MsgCode.SU005.get());
  147. }
  148. return ActionResult.fail(MsgCode.SC001.get());
  149. }
  150. /**
  151. * 启动任务调度
  152. *
  153. * @param id 主键值
  154. * @return
  155. */
  156. @Operation(summary = "启动任务调度")
  157. @PutMapping("/{id}/Actions/Enable")
  158. public ActionResult enable(@PathVariable("id") String id) {
  159. UpdateTaskModel updateTaskModel = new UpdateTaskModel();
  160. TimeTaskEntity entity = RestScheduleTaskUtil.getInfo(id, UserProvider.getUser());
  161. if (entity != null) {
  162. entity.setEnabledMark(1);
  163. updateTaskModel.setEntity(entity);
  164. updateTaskModel.setUserInfo(UserProvider.getUser());
  165. RestScheduleTaskUtil.updateTask(updateTaskModel);
  166. return ActionResult.success(MsgCode.SU005.get());
  167. }
  168. return ActionResult.fail(MsgCode.SC001.get());
  169. }
  170. }