TriggerTaskController.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package jnpf.flowable.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import io.swagger.v3.oas.annotations.Operation;
  5. import io.swagger.v3.oas.annotations.tags.Tag;
  6. import jnpf.base.ActionResult;
  7. import jnpf.base.entity.SystemEntity;
  8. import jnpf.base.vo.PaginationVO;
  9. import jnpf.constant.MsgCode;
  10. import jnpf.flowable.model.monitor.MonitorModel;
  11. import jnpf.flowable.model.trigger.TriggerInfoListModel;
  12. import jnpf.flowable.model.trigger.TriggerPagination;
  13. import jnpf.flowable.model.trigger.TriggerTaskModel;
  14. import jnpf.flowable.model.util.FlowNature;
  15. import jnpf.flowable.service.TriggerTaskService;
  16. import jnpf.flowable.util.ServiceUtil;
  17. import jnpf.util.JsonUtil;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.*;
  21. import java.util.ArrayList;
  22. import java.util.List;
  23. import java.util.Objects;
  24. import java.util.stream.Collectors;
  25. /**
  26. * 任务流程
  27. *
  28. * @author JNPF@YinMai Info. Co., Ltd
  29. * @version 5.0.x
  30. * @since 2024/9/21 9:57
  31. */
  32. @Tag(name = "任务流程实例", description = "triggerTask")
  33. @RestController
  34. @RequestMapping("/api/workflow/trigger/task")
  35. @Slf4j
  36. public class TriggerTaskController {
  37. @Autowired
  38. private ServiceUtil serviceUtil;
  39. @Autowired
  40. private TriggerTaskService triggerTaskService;
  41. /**
  42. * 获取任务下的触发记录
  43. *
  44. * @param taskId 任务主键
  45. */
  46. @Operation(summary = "获取任务下的触发记录")
  47. @GetMapping("/List")
  48. public ActionResult list(@RequestParam("taskId") String taskId, @RequestParam("nodeCode") String nodeCode) {
  49. List<TriggerInfoListModel> list = triggerTaskService.getListByTaskId(taskId, nodeCode);
  50. return ActionResult.success(list);
  51. }
  52. /**
  53. * 任务流程列表
  54. *
  55. * @param pagination 分页参数
  56. */
  57. @Operation(summary = "任务流程列表")
  58. @GetMapping
  59. public ActionResult list(TriggerPagination pagination) {
  60. List<TriggerTaskModel> list = triggerTaskService.getList(pagination);
  61. List<SystemEntity> systemList = serviceUtil.getSystemList(list.stream().map(TriggerTaskModel::getSystemName).collect(Collectors.toList()));
  62. List<TriggerTaskModel> voList = new ArrayList<>();
  63. for (TriggerTaskModel model : list) {
  64. model.setIsRetry(ObjectUtil.equals(model.getParentId(), FlowNature.ParentId) ? 0 : 1);
  65. SystemEntity system = systemList.stream().filter(t -> Objects.equals(model.getSystemName(), t.getId())).findFirst().orElse(null);
  66. model.setSystemName(system != null ? system.getFullName() : "");
  67. voList.add(model);
  68. }
  69. PaginationVO paginationVO = JsonUtil.getJsonToBean(pagination, PaginationVO.class);
  70. return ActionResult.page(voList, paginationVO);
  71. }
  72. /**
  73. * 重试
  74. *
  75. * @param id 主键
  76. */
  77. @Operation(summary = "重试")
  78. @PostMapping("/Retry/{id}")
  79. @SaCheckPermission(value = {"workFlow.flowMonitor"})
  80. public ActionResult retry(@PathVariable("id") String id) throws Exception {
  81. try {
  82. triggerTaskService.retry(id);
  83. } catch (Exception e) {
  84. // triggerUtil.createErrorRecord();
  85. throw e;
  86. }
  87. return ActionResult.success(MsgCode.SU005.get());
  88. }
  89. /**
  90. * 批量删除
  91. *
  92. * @param model 参数
  93. */
  94. @Operation(summary = "批量删除")
  95. @DeleteMapping
  96. @SaCheckPermission(value = {"workFlow.flowMonitor"})
  97. public ActionResult delete(@RequestBody MonitorModel model) {
  98. triggerTaskService.batchDelete(model.getIds());
  99. return ActionResult.success(MsgCode.SU003.get());
  100. }
  101. }