ProcessTaskController.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package com.aizuda.boot.modules.flw.controller;
  2. import com.aizuda.boot.modules.flw.FlowHelper;
  3. import com.aizuda.boot.modules.flw.entity.dto.AssigneeTaskDTO;
  4. import com.aizuda.boot.modules.flw.entity.dto.ExecuteTaskDTO;
  5. import com.aizuda.boot.modules.flw.entity.dto.ProcessTaskDTO;
  6. import com.aizuda.boot.modules.flw.entity.dto.RejectTaskDTO;
  7. import com.aizuda.boot.modules.flw.entity.vo.*;
  8. import com.aizuda.boot.modules.flw.service.IProcessTaskService;
  9. import com.aizuda.core.api.ApiController;
  10. import com.aizuda.core.api.PageParam;
  11. import com.baomidou.kisso.annotation.Permission;
  12. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  13. import io.swagger.v3.oas.annotations.Operation;
  14. import io.swagger.v3.oas.annotations.tags.Tag;
  15. import lombok.AllArgsConstructor;
  16. import org.simpleframework.xml.core.Validate;
  17. import org.springframework.web.bind.annotation.*;
  18. import java.util.List;
  19. /**
  20. * 流程任务 前端控制器
  21. *
  22. * @author 青苗
  23. * @since 2023-12-11
  24. */
  25. @Tag(name = "流程任务")
  26. @RestController
  27. @AllArgsConstructor
  28. @RequestMapping("/v1/process-task")
  29. public class ProcessTaskController extends ApiController {
  30. private IProcessTaskService processTaskService;
  31. @Operation(summary = "待认领任务分页列表")
  32. @Permission("flw:processTask:pagePendingClaim")
  33. @PostMapping("/page-pending-claim")
  34. public Page<PendingClaimTaskVO> pagePendingClaim(@RequestBody PageParam<ProcessTaskDTO> pageParam) {
  35. return processTaskService.pagePendingClaim(pageParam);
  36. }
  37. @Operation(summary = "待审批任务分页列表")
  38. @Permission("flw:processTask:pagePendingApproval")
  39. @PostMapping("/page-pending-approval")
  40. public Page<PendingApprovalTaskVO> pagePendingApproval(@RequestBody PageParam<ProcessTaskDTO> pageParam) {
  41. return processTaskService.pagePendingApproval(pageParam);
  42. }
  43. @Operation(summary = "我收到的任务分页列表")
  44. @Permission("flw:processTask:pageMyReceived")
  45. @PostMapping("/page-my-received")
  46. public Page<ProcessTaskVO> pageMyReceived(@RequestBody PageParam<ProcessTaskDTO> pageParam) {
  47. return processTaskService.pageMyReceived(pageParam);
  48. }
  49. @Operation(summary = "我的申请任务分页列表")
  50. @Permission("flw:processTask:pageMyApplication")
  51. @PostMapping("/page-my-application")
  52. public Page<ProcessTaskVO> pageMyApplication(@RequestBody PageParam<ProcessTaskDTO> pageParam) {
  53. return processTaskService.pageMyApplication(pageParam);
  54. }
  55. @Operation(summary = "已审批任务分页列表")
  56. @Permission("flw:processTask:pageApproved")
  57. @PostMapping("/page-approved")
  58. public Page<ProcessTaskVO> pageApproved(@RequestBody PageParam<ProcessTaskDTO> pageParam) {
  59. return processTaskService.pageApproved(pageParam);
  60. }
  61. @Operation(summary = "审批信息")
  62. @Permission("flw:processTask:viewed")
  63. @PostMapping("/approval-info-{taskId}")
  64. public TaskApprovalVO approvalInfo(@PathVariable("taskId") Long taskId) {
  65. return processTaskService.approvalInfo(taskId);
  66. }
  67. @Operation(summary = "设置已阅读")
  68. @Permission("flw:processTask:viewed")
  69. @PostMapping("/viewed-{taskId}")
  70. public boolean viewed(@PathVariable("taskId") Long taskId) {
  71. return processTaskService.viewed(taskId, FlowHelper.getFlowCreator());
  72. }
  73. @Operation(summary = "拿回任务")
  74. @Permission("flw:processTask:reclaim")
  75. @PostMapping("/reclaim-{taskId}")
  76. public boolean reclaim(@PathVariable("taskId") Long taskId) {
  77. return processTaskService.reclaim(taskId, FlowHelper.getFlowCreator());
  78. }
  79. @Operation(summary = "认领任务")
  80. @Permission("flw:processTask:resume")
  81. @PostMapping("/claim-{taskId}")
  82. public boolean claim(@PathVariable("taskId") Long taskId) {
  83. return processTaskService.claim(taskId, FlowHelper.getFlowCreator());
  84. }
  85. @Operation(summary = "转办任务")
  86. @Permission("flw:processTask:transfer")
  87. @PostMapping("/transfer")
  88. public boolean transfer(@Validate @RequestBody AssigneeTaskDTO dto) {
  89. return processTaskService.transfer(FlowHelper.getFlowCreator(), dto);
  90. }
  91. @Operation(summary = "委派任务")
  92. @Permission("flw:processTask:resume")
  93. @PostMapping("/delegate")
  94. public boolean delegate(@Validate @RequestBody AssigneeTaskDTO dto) {
  95. return processTaskService.delegate(FlowHelper.getFlowCreator(), dto);
  96. }
  97. @Operation(summary = "执行任务")
  98. @Permission("flw:processTask:execute")
  99. @PostMapping("/execute")
  100. public boolean execute(@Validate @RequestBody ExecuteTaskDTO dto) {
  101. return processTaskService.execute(FlowHelper.getFlowCreator(), dto);
  102. }
  103. @Operation(summary = "驳回至上一步任务")
  104. @Permission("flw:processTask:reject")
  105. @PostMapping("/reject")
  106. public boolean reject(@Validate @RequestBody RejectTaskDTO dto) {
  107. return processTaskService.reject(FlowHelper.getFlowCreator(), dto);
  108. }
  109. @Operation(summary = "查询流程实例ID的审批历史")
  110. @Permission("flw:processTask:reject")
  111. @PostMapping("/list-his-task/{instanceId}")
  112. public List<FlwHisTaskVO> listHisTask(@PathVariable("instanceId") Long instanceId) {
  113. return processTaskService.listHisTaskByInstanceId(instanceId);
  114. }
  115. }