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