From 098d3347a0df808908aab8c554cd7c4febc5e6d9 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期一, 26 八月 2024 11:43:59 +0800 Subject: [PATCH] !577 发布 5.2.2 正式版 安全性提升 Merge pull request !577 from 疯狂的狮子Li/dev --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActTaskController.java | 68 +++++++++++++++++++++++++++++----- 1 files changed, 58 insertions(+), 10 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActTaskController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActTaskController.java index 56c17a0..25724b6 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActTaskController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActTaskController.java @@ -1,5 +1,6 @@ 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; @@ -12,14 +13,19 @@ 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; /** @@ -33,9 +39,10 @@ @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; /** @@ -46,7 +53,7 @@ @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); } @@ -217,18 +224,18 @@ @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)); } @@ -244,4 +251,45 @@ 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)); + } + } -- Gitblit v1.9.3