package com.aizuda.boot.modules.flw.controller; import com.aizuda.boot.modules.flw.FlowHelper; import com.aizuda.boot.modules.flw.entity.dto.AssigneeTaskDTO; import com.aizuda.boot.modules.flw.entity.dto.ExecuteTaskDTO; import com.aizuda.boot.modules.flw.entity.dto.ProcessTaskDTO; import com.aizuda.boot.modules.flw.entity.dto.RejectTaskDTO; import com.aizuda.boot.modules.flw.entity.vo.*; import com.aizuda.boot.modules.flw.service.IProcessTaskService; import com.aizuda.core.api.ApiController; import com.aizuda.core.api.PageParam; import com.baomidou.kisso.annotation.Permission; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.simpleframework.xml.core.Validate; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 流程任务 前端控制器 * * @author 青苗 * @since 2023-12-11 */ @Tag(name = "流程任务") @RestController @AllArgsConstructor @RequestMapping("/v1/process-task") public class ProcessTaskController extends ApiController { private IProcessTaskService processTaskService; @Operation(summary = "待认领任务分页列表") @Permission("flw:processTask:pagePendingClaim") @PostMapping("/page-pending-claim") public Page pagePendingClaim(@RequestBody PageParam pageParam) { return processTaskService.pagePendingClaim(pageParam); } @Operation(summary = "待审批任务分页列表") @Permission("flw:processTask:pagePendingApproval") @PostMapping("/page-pending-approval") public Page pagePendingApproval(@RequestBody PageParam pageParam) { return processTaskService.pagePendingApproval(pageParam); } @Operation(summary = "我收到的任务分页列表") @Permission("flw:processTask:pageMyReceived") @PostMapping("/page-my-received") public Page pageMyReceived(@RequestBody PageParam pageParam) { return processTaskService.pageMyReceived(pageParam); } @Operation(summary = "我的申请任务分页列表") @Permission("flw:processTask:pageMyApplication") @PostMapping("/page-my-application") public Page pageMyApplication(@RequestBody PageParam pageParam) { return processTaskService.pageMyApplication(pageParam); } @Operation(summary = "已审批任务分页列表") @Permission("flw:processTask:pageApproved") @PostMapping("/page-approved") public Page pageApproved(@RequestBody PageParam pageParam) { return processTaskService.pageApproved(pageParam); } @Operation(summary = "审批信息") @Permission("flw:processTask:viewed") @PostMapping("/approval-info-{taskId}") public TaskApprovalVO approvalInfo(@PathVariable("taskId") Long taskId) { return processTaskService.approvalInfo(taskId); } @Operation(summary = "设置已阅读") @Permission("flw:processTask:viewed") @PostMapping("/viewed-{taskId}") public boolean viewed(@PathVariable("taskId") Long taskId) { return processTaskService.viewed(taskId, FlowHelper.getFlowCreator()); } @Operation(summary = "拿回任务") @Permission("flw:processTask:reclaim") @PostMapping("/reclaim-{taskId}") public boolean reclaim(@PathVariable("taskId") Long taskId) { return processTaskService.reclaim(taskId, FlowHelper.getFlowCreator()); } @Operation(summary = "认领任务") @Permission("flw:processTask:resume") @PostMapping("/claim-{taskId}") public boolean claim(@PathVariable("taskId") Long taskId) { return processTaskService.claim(taskId, FlowHelper.getFlowCreator()); } @Operation(summary = "转办任务") @Permission("flw:processTask:transfer") @PostMapping("/transfer") public boolean transfer(@Validate @RequestBody AssigneeTaskDTO dto) { return processTaskService.transfer(FlowHelper.getFlowCreator(), dto); } @Operation(summary = "委派任务") @Permission("flw:processTask:resume") @PostMapping("/delegate") public boolean delegate(@Validate @RequestBody AssigneeTaskDTO dto) { return processTaskService.delegate(FlowHelper.getFlowCreator(), dto); } @Operation(summary = "执行任务") @Permission("flw:processTask:execute") @PostMapping("/execute") public boolean execute(@Validate @RequestBody ExecuteTaskDTO dto) { return processTaskService.execute(FlowHelper.getFlowCreator(), dto); } @Operation(summary = "驳回至上一步任务") @Permission("flw:processTask:reject") @PostMapping("/reject") public boolean reject(@Validate @RequestBody RejectTaskDTO dto) { return processTaskService.reject(FlowHelper.getFlowCreator(), dto); } @Operation(summary = "查询流程实例ID的审批历史") @Permission("flw:processTask:reject") @PostMapping("/list-his-task/{instanceId}") public List listHisTask(@PathVariable("instanceId") Long instanceId) { return processTaskService.listHisTaskByInstanceId(instanceId); } }