| | |
| | | package org.dromara.workflow.controller; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.convert.Convert; |
| | | import jakarta.validation.constraints.NotBlank; |
| | | import lombok.RequiredArgsConstructor; |
| | |
| | | import org.dromara.common.idempotent.annotation.RepeatSubmit; |
| | | import org.dromara.common.log.annotation.Log; |
| | | import org.dromara.common.log.enums.BusinessType; |
| | | import org.dromara.common.mybatis.core.page.PageQuery; |
| | | import org.dromara.common.mybatis.core.page.TableDataInfo; |
| | | import org.dromara.common.satoken.utils.LoginHelper; |
| | | import org.dromara.common.web.core.BaseController; |
| | | import org.dromara.workflow.domain.WfTaskBackNode; |
| | | import org.dromara.workflow.domain.bo.*; |
| | | import org.dromara.workflow.domain.vo.TaskVo; |
| | | import org.dromara.workflow.domain.vo.VariableVo; |
| | | import org.dromara.workflow.service.IActTaskService; |
| | | import org.dromara.workflow.utils.WorkflowUtils; |
| | | import org.dromara.workflow.service.IWfTaskBackNodeService; |
| | | import org.dromara.workflow.utils.QueryUtils; |
| | | import org.flowable.engine.TaskService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | |
| | | @RequestMapping("/workflow/task") |
| | | public class ActTaskController extends BaseController { |
| | | |
| | | @Autowired(required = false) |
| | | private TaskService taskService; |
| | | private final IActTaskService actTaskService; |
| | | |
| | | private final TaskService taskService; |
| | | private final IWfTaskBackNodeService wfTaskBackNodeService; |
| | | |
| | | |
| | | /** |
| | |
| | | @Log(title = "任务管理", businessType = BusinessType.INSERT) |
| | | @RepeatSubmit() |
| | | @PostMapping("/startWorkFlow") |
| | | public R<Map<String, Object>> startWorkFlow(@RequestBody StartProcessBo startProcessBo) { |
| | | public R<Map<String, Object>> startWorkFlow(@Validated(AddGroup.class) @RequestBody StartProcessBo startProcessBo) { |
| | | Map<String, Object> map = actTaskService.startWorkFlow(startProcessBo); |
| | | return R.ok("提交成功", map); |
| | | } |
| | |
| | | * |
| | | * @param taskBo 参数 |
| | | */ |
| | | @GetMapping("/getTaskWaitByPage") |
| | | public TableDataInfo<TaskVo> getTaskWaitByPage(TaskBo taskBo) { |
| | | return actTaskService.getTaskWaitByPage(taskBo); |
| | | @GetMapping("/getPageByTaskWait") |
| | | public TableDataInfo<TaskVo> getPageByTaskWait(TaskBo taskBo, PageQuery pageQuery) { |
| | | return actTaskService.getPageByTaskWait(taskBo, pageQuery); |
| | | } |
| | | |
| | | /** |
| | |
| | | * |
| | | * @param taskBo 参数 |
| | | */ |
| | | @GetMapping("/getAllTaskWaitByPage") |
| | | public TableDataInfo<TaskVo> getAllTaskWaitByPage(TaskBo taskBo) { |
| | | return actTaskService.getAllTaskWaitByPage(taskBo); |
| | | @GetMapping("/getPageByAllTaskWait") |
| | | public TableDataInfo<TaskVo> getPageByAllTaskWait(TaskBo taskBo, PageQuery pageQuery) { |
| | | return actTaskService.getPageByAllTaskWait(taskBo, pageQuery); |
| | | } |
| | | |
| | | /** |
| | |
| | | * |
| | | * @param taskBo 参数 |
| | | */ |
| | | @GetMapping("/getTaskFinishByPage") |
| | | public TableDataInfo<TaskVo> getTaskFinishByPage(TaskBo taskBo) { |
| | | return actTaskService.getTaskFinishByPage(taskBo); |
| | | @GetMapping("/getPageByTaskFinish") |
| | | public TableDataInfo<TaskVo> getPageByTaskFinish(TaskBo taskBo, PageQuery pageQuery) { |
| | | return actTaskService.getPageByTaskFinish(taskBo, pageQuery); |
| | | } |
| | | |
| | | /** |
| | |
| | | * |
| | | * @param taskBo 参数 |
| | | */ |
| | | @GetMapping("/getTaskCopyByPage") |
| | | public TableDataInfo<TaskVo> getTaskCopyByPage(TaskBo taskBo) { |
| | | return actTaskService.getTaskCopyByPage(taskBo); |
| | | @GetMapping("/getPageByTaskCopy") |
| | | public TableDataInfo<TaskVo> getPageByTaskCopy(TaskBo taskBo, PageQuery pageQuery) { |
| | | return actTaskService.getPageByTaskCopy(taskBo, pageQuery); |
| | | } |
| | | |
| | | /** |
| | |
| | | * |
| | | * @param taskBo 参数 |
| | | */ |
| | | @GetMapping("/getAllTaskFinishByPage") |
| | | public TableDataInfo<TaskVo> getAllTaskFinishByPage(TaskBo taskBo) { |
| | | return actTaskService.getAllTaskFinishByPage(taskBo); |
| | | @GetMapping("/getPageByAllTaskFinish") |
| | | public TableDataInfo<TaskVo> getPageByAllTaskFinish(TaskBo taskBo, PageQuery pageQuery) { |
| | | return actTaskService.getPageByAllTaskFinish(taskBo, pageQuery); |
| | | } |
| | | |
| | | /** |
| | |
| | | @Log(title = "任务管理", businessType = BusinessType.INSERT) |
| | | @RepeatSubmit() |
| | | @PostMapping("/backProcess") |
| | | public R<String> backProcess(@RequestBody BackProcessBo backProcessBo) { |
| | | return R.ok(actTaskService.backProcess(backProcessBo)); |
| | | public R<String> backProcess(@Validated({AddGroup.class}) @RequestBody BackProcessBo backProcessBo) { |
| | | return R.ok("操作成功", actTaskService.backProcess(backProcessBo)); |
| | | } |
| | | |
| | | /** |
| | | * 获取流程状态 |
| | | * 获取当前任务 |
| | | * |
| | | * @param taskId 任务id |
| | | */ |
| | | @GetMapping("/getBusinessStatus/{taskId}") |
| | | public R<String> getBusinessStatus(@PathVariable String taskId) { |
| | | return R.ok("操作成功", WorkflowUtils.getBusinessStatusByTaskId(taskId)); |
| | | @GetMapping("/getTaskById/{taskId}") |
| | | public R<TaskVo> getTaskById(@PathVariable String taskId) { |
| | | return R.ok(QueryUtils.getTask(taskId)); |
| | | } |
| | | |
| | | |
| | |
| | | public R<Void> updateAssignee(@PathVariable String[] taskIds, @PathVariable String userId) { |
| | | return toAjax(actTaskService.updateAssignee(taskIds, userId)); |
| | | } |
| | | |
| | | /** |
| | | * 查询流程变量 |
| | | * |
| | | * @param taskId 任务id |
| | | */ |
| | | @GetMapping("/getInstanceVariable/{taskId}") |
| | | public R<List<VariableVo>> getProcessInstVariable(@PathVariable String taskId) { |
| | | return R.ok(actTaskService.getInstanceVariable(taskId)); |
| | | } |
| | | |
| | | /** |
| | | * 获取可驳回得任务节点 |
| | | * |
| | | * @param processInstanceId 流程实例id |
| | | */ |
| | | @GetMapping("/getTaskNodeList/{processInstanceId}") |
| | | public R<List<WfTaskBackNode>> getNodeList(@PathVariable String processInstanceId) { |
| | | return R.ok(CollUtil.reverse(wfTaskBackNodeService.getListByInstanceId(processInstanceId))); |
| | | } |
| | | |
| | | /** |
| | | * 查询工作流任务用户选择加签人员 |
| | | * |
| | | * @param taskId 任务id |
| | | */ |
| | | @GetMapping("/getTaskUserIdsByAddMultiInstance/{taskId}") |
| | | public R<String> getTaskUserIdsByAddMultiInstance(@PathVariable String taskId) { |
| | | return R.ok("操作成功", actTaskService.getTaskUserIdsByAddMultiInstance(taskId)); |
| | | } |
| | | |
| | | /** |
| | | * 查询工作流选择减签人员 |
| | | * |
| | | * @param taskId 任务id |
| | | */ |
| | | @GetMapping("/getListByDeleteMultiInstance/{taskId}") |
| | | public R<List<TaskVo>> getListByDeleteMultiInstance(@PathVariable String taskId) { |
| | | return R.ok(actTaskService.getListByDeleteMultiInstance(taskId)); |
| | | } |
| | | |
| | | } |