From 24fb5d17effaef4e24a4057062407bbcff0c8872 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期三, 22 四月 2026 14:35:09 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java |  111 ++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 84 insertions(+), 27 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
index 788edfd..c5b80a4 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
@@ -445,6 +445,90 @@
         return R.ok();
     }
 
+    @PreAuthorize("hasAuthority('manager:agv:update')")
+    @PostMapping("/control/agv/charge/stop")
+    public R stopCharging(@RequestHeader String appKey,
+                          @RequestBody HandlerPublishParam param) {
+        if (Cools.isEmpty(param.getAgvNo(), appKey)) {
+            return R.error();
+        }
+        if (!APP_KEY.equals(appKey)) {
+            return R.error();
+        }
+
+        Agv agv = agvService.selectByUuid(param.getAgvNo());
+        if (agv == null) {
+            return R.error("AGV涓嶅瓨鍦�");
+        }
+
+        if (!agvService.judgeEnable(agv.getId())) {
+            log.info("{}鍙稟GV涓嶅彲鐢紝鍋滄鍏呯數澶辫触...", agv.getUuid());
+            return R.error();
+        }
+
+        AgvModel agvModel = agvModelService.getByAgvId(agv.getId());
+        if (agvModel == null || !AgvModelType.UNDERDRIVE_AGV.toString().equals(agvModel.getType())) {
+            return R.error("褰撳墠AGV杞﹀瀷涓嶆敮鎸佹柇寮�鍏呯數");
+        }
+        if (!hikInstantActionPublishService.support(agv.getId())) {
+            return R.error("褰撳墠AGV鍗忚涓嶆敮鎸佹柇寮�鍏呯數");
+        }
+
+        hikInstantActionPublishService.publishStopCharging(agv.getUuid());
+        return R.ok("鏂紑鍏呯數鎸囦护宸插彂閫�");
+    }
+
+    @PreAuthorize("hasAuthority('manager:agv:update')")
+    @PostMapping("/control/agv/task/cancel")
+    @Transactional
+    public R cancelAgvTask(@RequestHeader String appKey,
+                           @RequestBody HandlerPublishParam param) {
+        if (Cools.isEmpty(param.getAgvNo(), appKey)) {
+            return R.error();
+        }
+        if (!APP_KEY.equals(appKey)) {
+            return R.error();
+        }
+
+        Agv agv = agvService.selectByUuid(param.getAgvNo());
+        if (agv == null) {
+            return R.error("AGV涓嶅瓨鍦�");
+        }
+
+        if (!agvService.judgeEnable(agv.getId())) {
+            log.info("{}鍙稟GV涓嶅彲鐢紝鍙栨秷浠诲姟澶辫触...", agv.getUuid());
+            return R.error();
+        }
+
+        AgvModel agvModel = agvModelService.getByAgvId(agv.getId());
+        if (agvModel == null || !AgvModelType.UNDERDRIVE_AGV.toString().equals(agvModel.getType())) {
+            return R.error("褰撳墠AGV杞﹀瀷涓嶆敮鎸佸彇娑堜换鍔�");
+        }
+
+        if (!hikInstantActionPublishService.support(agv.getId())) {
+            return R.error("褰撳墠AGV鍗忚涓嶆敮鎸佸彇娑堜换鍔�");
+        }
+
+        hikInstantActionPublishService.publishCancelOrder(agv.getUuid());
+//        List<Task> tasks = taskService.selectInSts(agv.getId(), TaskStsType.WAITING, TaskStsType.ASSIGN, TaskStsType.PROGRESS);
+//        if (Cools.isEmpty(tasks)) {
+//            return R.error("褰撳墠AGV娌℃湁鍙彇娑堢殑浠诲姟");
+//        }
+//
+//        Long userId = getLoginUserId();
+//        Date now = new Date();
+//        List<Long> taskIds = tasks.stream().map(Task::getId).collect(Collectors.toList());
+//        for (Task task : tasks) {
+//            taskService.cancel(task.getId(), userId, Constants.HANDLE);
+//        }
+//        actionService.update(new LambdaUpdateWrapper<Action>()
+//                .in(Action::getTaskId, taskIds)
+//                .set(Action::getActionSts, ActionStsType.FINISH.val())
+//                .set(Action::getUpdateBy, userId)
+//                .set(Action::getUpdateTime, now));
+        return R.ok("鍙栨秷浠诲姟鎸囦护宸插彂閫�");
+    }
+
     @RequestMapping(value = "/restore/agv", method = {RequestMethod.GET, RequestMethod.POST})
     public R restoreAgv(@RequestHeader String appKey, @RequestBody HandlerPublishParam param) {
         if (Cools.isEmpty(appKey)) {
@@ -495,33 +579,6 @@
         }
 
         return R.ok();
-    }
-
-    @PreAuthorize("hasAuthority('manager:agv:update')")
-    @PostMapping("/control/agv/charge/stop")
-    public R stopCharging(@RequestHeader String appKey,
-                          @RequestBody HandlerPublishParam param) {
-        if (Cools.isEmpty(param.getAgvNo(), appKey)) {
-            return R.error();
-        }
-        if (!APP_KEY.equals(appKey)) {
-            return R.error();
-        }
-
-        Agv agv = agvService.selectByUuid(param.getAgvNo());
-        if (agv == null) {
-            return R.error("AGV涓嶅瓨鍦�");
-        }
-        AgvModel agvModel = agvModelService.getByAgvId(agv.getId());
-        if (agvModel == null || !AgvModelType.UNDERDRIVE_AGV.toString().equals(agvModel.getType())) {
-            return R.error("褰撳墠AGV杞﹀瀷涓嶆敮鎸佹柇寮�鍏呯數");
-        }
-        if (!hikInstantActionPublishService.support(agv.getId())) {
-            return R.error("褰撳墠AGV鍗忚涓嶆敮鎸佹柇寮�鍏呯數");
-        }
-
-        hikInstantActionPublishService.publishStopCharging(agv.getUuid());
-        return R.ok("鏂紑鍏呯數鎸囦护宸插彂閫�");
     }
 
     private void publishRestoreCancelIfNeeded(Agv agv) {

--
Gitblit v1.9.1