ProcessTaskController.java 5.9 KB

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