From 2f8e173048d22c5b40612c3538b9c1aa5a5397f6 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期五, 27 三月 2026 13:38:05 +0800
Subject: [PATCH] #乐观锁

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
index 9c47abf..ca127a2 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
@@ -15,6 +15,7 @@
 import com.vincent.rsf.server.common.domain.BaseParam;
 import com.vincent.rsf.server.common.domain.KeyValVo;
 import com.vincent.rsf.server.common.domain.PageParam;
+import com.vincent.rsf.server.common.utils.OptimisticLockUtils;
 import com.vincent.rsf.server.manager.service.*;
 import com.vincent.rsf.server.system.controller.BaseController;
 import com.vincent.rsf.server.system.service.impl.ConfigServiceImpl;
@@ -27,7 +28,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 import java.util.*;
 
 @RestController
@@ -38,19 +39,25 @@
     @Autowired
     private TaskService taskService;
 
+    /** 鍒嗛〉鏌ヨ浠诲姟鍒楄〃锛屽苟鏍规嵁 mission_flow_step_instance 鍒ゆ柇姣忔潯鏄惁鍙偣瀹屾垚锛坈anComplete锛夛紝渚涘墠绔睍绀哄畬鎴愭寜閽� */
     @PreAuthorize("hasAuthority('manager:task:list')")
     @PostMapping("/task/page")
     public R page(@RequestBody Map<String, Object> map) {
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<Task, BaseParam> pageParam = new PageParam<>(baseParam, Task.class);
         QueryWrapper<Task> queryWrapper = pageParam.buildWrapper(true);
-        return R.ok().add(taskService.page(pageParam, queryWrapper));
+        Page<Task> pageResult = taskService.page(pageParam, queryWrapper);
+        taskService.fillCanComplete(pageResult.getRecords());
+        return R.ok().add(pageResult);
     }
 
+    /** 鏌ヨ浠诲姟鍒楄〃锛屽悓鏍锋牴鎹� flowStepInstance 濉厖 canComplete */
     @PreAuthorize("hasAuthority('manager:task:list')")
     @PostMapping("/task/list")
     public R list(@RequestBody Map<String, Object> map) {
-        return R.ok().add(taskService.list());
+        List<Task> list = taskService.list();
+        taskService.fillCanComplete(list);
+        return R.ok().add(list);
     }
 
     @PreAuthorize("hasAuthority('manager:task:list')")
@@ -83,6 +90,7 @@
     @OperationLog("Update 浠诲姟宸ヤ綔妗�")
     @PostMapping("/task/update")
     public R update(@RequestBody Task task) {
+        OptimisticLockUtils.requireVersion("浠诲姟", task.getVersion());
         task.setUpdateBy(getLoginUserId());
         task.setUpdateTime(new Date());
         if (!taskService.updateById(task)) {
@@ -92,7 +100,7 @@
     }
 
     @PreAuthorize("hasAuthority('manager:task:remove')")
-    @ApiOperation("鍙栨秷/鍒犻櫎宸ヤ綔鏋佹。")
+    @ApiOperation("鍙栨秷/鍒犻櫎宸ヤ綔妗�")
     @PostMapping("/task/remove/{ids}")
     public R remove(@PathVariable Long[] ids) {
         if (Objects.isNull(ids) || ids.length < 1) {

--
Gitblit v1.9.1