From 2825b82e8a4eca618ab3c2306de2db74a2ecbd1d Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 06 四月 2026 15:54:58 +0800
Subject: [PATCH] #任务取消优化

---
 src/main/java/com/zy/asrs/controller/OpenController.java |   49 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 35 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index a4ee7ac..b9436ce 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -27,12 +27,15 @@
 import com.zy.core.thread.StationThread;
 import com.zy.system.entity.Config;
 import com.zy.system.service.ConfigService;
+import com.zy.system.service.HighPrivilegeGrantService;
 
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
+
+import jakarta.servlet.http.HttpServletRequest;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -60,6 +63,10 @@
     private ConfigService configService;
     @Autowired
     private DeviceConfigService deviceConfigService;
+    @Autowired
+    private HighPrivilegeGrantService highPrivilegeGrantService;
+    @Autowired
+    private HttpServletRequest request;
 
     // 绉诲簱浠诲姟
     @PostMapping("/createLocMoveTask")
@@ -111,19 +118,11 @@
         if (param == null) {
             return R.error("鍙傛暟涓嶈兘涓虹┖");
         }
-
-        List<CreateOutTaskParam> taskList = param.getTaskList();
-        if (taskList == null || taskList.size() == 0) {
-            return R.error("浠诲姟鍒楄〃涓嶈兘涓虹┖");
+        boolean result = commonService.createOutTaskBatch(param);
+        if (result) {
+            return R.ok();
         }
-
-        for (CreateOutTaskParam createOutTaskParam : taskList) {
-            if (createOutTaskParam == null) {
-                throw new CoolException("浠诲姟鍙傛暟涓嶈兘涓虹┖");
-            }
-            commonService.createOutTask(createOutTaskParam);
-        }
-        return R.ok();
+        return R.error("鐢熸垚鎵归噺鍑哄簱浠诲姟澶辫触");
     }
 
     @PostMapping("/completeTask")
@@ -145,7 +144,13 @@
         if (param == null) {
             return R.error("鍙傛暟涓嶈兘涓虹┖");
         }
-        boolean completeTask = commonService.cancelTask(param);
+        boolean directCancel = false;
+        try {
+            highPrivilegeGrantService.assertGranted(request.getHeader("token"), "鍙栨秷浠诲姟");
+            directCancel = true;
+        } catch (CoolException ignore) {
+        }
+        boolean completeTask = commonService.cancelTask(param, directCancel);
         if (completeTask) {
             return R.ok();
         }
@@ -171,7 +176,13 @@
         if (param == null) {
             return R.error("鍙傛暟涓嶈兘涓虹┖");
         }
-        CancelTaskBatchResult result = commonService.cancelTaskBatch(param);
+        boolean directCancel = false;
+        try {
+            highPrivilegeGrantService.assertGranted(request.getHeader("token"), "鍙栨秷浠诲姟");
+            directCancel = true;
+        } catch (CoolException ignore) {
+        }
+        CancelTaskBatchResult result = commonService.cancelTaskBatch(param, directCancel);
         return R.ok().add(result);
     }
 
@@ -188,6 +199,16 @@
         return R.error("淇敼浠诲姟浼樺厛绾у拰鎵规搴忓彿澶辫触");
     }
 
+    @PostMapping("/cancelOutTaskBatchInfo")
+    @OpenApiLog(memo = "鍙栨秷鍑哄簱浠诲姟鎵规鍜屾壒娆″簭鍙�")
+    public R cancelOutTaskBatchInfo(@RequestBody CancelTaskBatchParam param) {
+        if (param == null) {
+            return R.error("鍙傛暟涓嶈兘涓虹┖");
+        }
+        CancelTaskBatchResult result = commonService.cancelOutTaskBatchInfo(param);
+        return R.ok().add(result);
+    }
+
     @PostMapping("/deviceStatus")
     // @OpenApiLog(memo = "鑾峰彇璁惧鐘舵��")
     public R getDeviceStatus() {

--
Gitblit v1.9.1