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/schedules/TaskSchedules.java |   33 ++++++++++++++++++++-------------
 1 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
index 4d7b7a0..2df0126 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -122,7 +122,7 @@
     public synchronized void missionTaskEXECUTE() {
         try{
             List<FlowStepInstance> flowStepInstanceList = flowStepInstanceService.list(new LambdaQueryWrapper<FlowStepInstance>()
-                    .eq(FlowStepInstance::getStatus, 1).in(FlowStepInstance::getStepType,MissionStepType.getTaskISSUE()));
+                    .eq(FlowStepInstance::getStatus,  (short) 1).in(FlowStepInstance::getStepType,MissionStepType.getTaskISSUE()));
             for (FlowStepInstance flowStepInstance : flowStepInstanceList) {
                 FlowInstance flowInstance = flowInstanceService.getById(flowStepInstance.getFlowInstanceId());
                 if (Cools.isEmpty(flowInstance)) { continue;}
@@ -201,7 +201,7 @@
                                     flowStepInstanceService.updateById(flowStepInstance);
                                     log.error("浠诲姟涓嬪彂澶辫触,婧愮偣鏈煡璇㈠埌鐩爣鐐规湭鏌ヨ鍒帮紝绛夊緟閲嶈瘯....");
                                 }
-                                return;
+                                continue;
                             } else {
                                 missionTaskIssueParam.setSourceCode(basStation.getStationName());
                             }
@@ -226,7 +226,7 @@
                                 flowStepInstanceService.updateById(flowStepInstance);
                                 log.error("浠诲姟涓嬪彂澶辫触,婧愮偣鏈煡璇㈠埌鐩爣鐐规湭鏌ヨ鍒帮紝绛夊緟閲嶈瘯....");
                             }
-                            return;
+                            continue;
                         } else {
                             missionTaskIssueParam.setSourceCode(basStation.getStationName());
                         }
@@ -252,7 +252,7 @@
                                     flowStepInstanceService.updateById(flowStepInstance);
                                     log.error("浠诲姟涓嬪彂澶辫触,鐩爣鐐规湭鏌ヨ鍒帮紝绛夊緟閲嶈瘯....");
                                 }
-                                return;
+                                continue;
                             } else {
                                 missionTaskIssueParam.setTargetCode(basStation.getStationName());
                             }
@@ -278,7 +278,7 @@
                                 flowStepInstanceService.updateById(flowStepInstance);
                                 log.error("浠诲姟涓嬪彂澶辫触,鐩爣鐐规湭鏌ヨ鍒帮紝绛夊緟閲嶈瘯....");
                             }
-                            return;
+                            continue;
                         } else {
                             missionTaskIssueParam.setTargetCode(basStation.getStationName());
                         }
@@ -455,7 +455,10 @@
                         || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
                     task.setTaskStatus(TaskStsType.COMPLETE_IN.id);
                 } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)){
-                    if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)){
+                    if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)
+                            || task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_UP.val)
+                            || task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_NOT_OUT.val)
+                    ){
                         task.setTaskStatus(TaskStsType.AWAIT.id);
                     } else {
                         task.setTaskStatus(TaskStsType.COMPLETE_OUT.id);
@@ -467,9 +470,13 @@
                 } else if (task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
                         || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
                         || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)) {
-                    if ((!Cools.isEmpty(task.getResource()) && task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val))
-                            // 鐩樼偣鍑哄簱鍏堝埌 196(闈炴尝娆�)
-                            ||task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
+                    if ((!Cools.isEmpty(task.getResource())
+                            && (task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)
+                                || task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_UP.val)
+                                || task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_NOT_OUT.val)
+                           )
+                        )// 鐩樼偣鍑哄簱鍏堝埌 196(闈炴尝娆�)
+                        ||task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
                     ) {
                         task.setTaskStatus(TaskStsType.AWAIT.id);
                     } else {
@@ -934,8 +941,8 @@
                             || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_IN.type)
                             || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
                             || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
-                        if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
-                                .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_IN.id))) {
+                        task.setTaskStatus(TaskStsType.WCS_EXECUTE_IN.id);
+                        if (!taskService.updateById(task)) {
                             throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
                         }
                         /**鎺掗櫎绉诲簱鍔熻兘*/
@@ -955,8 +962,8 @@
                             || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
                             || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_OUT.type)
                             || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)) {
-                        if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode())
-                                .set(Task::getTaskStatus, TaskStsType.WCS_EXECUTE_OUT.id))) {
+                        task.setTaskStatus(TaskStsType.WCS_EXECUTE_OUT.id);
+                        if (!taskService.updateById(task)) {
                             throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
                         }
                         /**濡傛灉鏄櫘閫氱珯鐐癸紝淇敼绔欑偣鐘舵�佷负鍏ュ簱棰勭害*/

--
Gitblit v1.9.1