From 73e42333948a8143c54218cd26435c2233daf279 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期五, 16 一月 2026 14:13:14 +0800
Subject: [PATCH] agv出入库逻辑

---
 src/main/java/com/zy/asrs/task/handler/AgvHandler.java |   35 +++++++++++++++++++++++++++--------
 1 files changed, 27 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/AgvHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
index 60afb65..3529881 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
@@ -87,19 +87,38 @@
                 log.info("浠诲姟ID锛歿}宸插垎閰嶇珯鐐癸細{}", task.getId(), staNo);
             }
             
-            // 妫�鏌ョ洰鏍囩珯鐐规槸鍚︽湁鏈畬鎴愮殑AGV浠诲姟
-            // 濡傛灉绔欑偣鏈夋湭瀹屾垚鐨勪换鍔★紝鍒欒烦杩囨湰娆″彂閫侊紝绛夊緟涓嬫
-            if (staNo != null && !staNo.isEmpty()) {
-                List<Task> unfinishedTasks = taskService.selectList(new EntityWrapper<Task>()
+            // 妫�鏌ョ洰鏍囩珯鐐规槸鍚︽湁姝e湪鎼繍鐨勫悓绫诲瀷AGV浠诲姟锛堝嚭搴撳拰鍏ュ簱浜掍笉骞叉壈锛�
+            // 鍙湁鐘舵��8锛堝凡鍛煎彨AGV锛屾鍦ㄦ惉杩愶級鐨勪换鍔℃墠浼氶樆濉烇紝鐘舵��7锛堝緟鍛煎彨锛夌殑浠诲姟涓嶉樆濉�
+            // 杩欐牱鍙互閬垮厤鎵�鏈変换鍔¢兘鍗″湪鍛煎彨鐘舵�侊紝鎸塱d鏈�灏忕殑浼樺厛鍛煎彨
+            if (staNo != null && !staNo.isEmpty() && task.getIoType() != null) {
+                // 鏍规嵁褰撳墠浠诲姟绫诲瀷锛屽彧妫�鏌ュ悓绫诲瀷鐨勬鍦ㄦ惉杩愪换鍔★紙鐘舵��8锛�
+                // 鍏ュ簱浠诲姟锛坕oType < 100锛夛細鍙鏌ュ叆搴撶被鍨嬬殑姝e湪鎼繍浠诲姟
+                // 鍑哄簱浠诲姟锛坕oType >= 100锛夛細鍙鏌ュ嚭搴撶被鍨嬬殑姝e湪鎼繍浠诲姟
+                List<Integer> ioTypes;
+                String taskType;
+                if (task.getIoType() < 100) {
+                    // 鍏ュ簱浠诲姟锛氬彧妫�鏌ュ叆搴撶被鍨嬶紙1, 10, 53, 57锛�
+                    ioTypes = Arrays.asList(1, 10, 53, 57);
+                    taskType = "鍏ュ簱";
+                } else {
+                    // 鍑哄簱浠诲姟锛氬彧妫�鏌ュ嚭搴撶被鍨嬶紙101, 110, 103, 107锛�
+                    ioTypes = Arrays.asList(101, 110, 103, 107);
+                    taskType = "鍑哄簱";
+                }
+                
+                // 鍙鏌ョ姸鎬佷负8锛堝凡鍛煎彨AGV锛屾鍦ㄦ惉杩愶級鐨勫悓绫诲瀷浠诲姟
+                List<Task> transportingTasks = taskService.selectList(
+                    new EntityWrapper<Task>()
                         .eq("sta_no", staNo)
                         .eq("task_type", "agv")
+                        .eq("wrk_sts", 8L) // 鍙鏌ユ鍦ㄦ惉杩愮姸鎬佺殑浠诲姟
+                        .in("io_type", ioTypes)
                         .ne("id", task.getId()) // 鎺掗櫎褰撳墠浠诲姟鏈韩
-                        .last("AND wrk_sts NOT IN (5, 15)") // 鎺掗櫎宸插畬鎴愮姸鎬�
                 );
                 
-                if (!unfinishedTasks.isEmpty()) {
-                    log.info("绔欑偣{}鏈墈}涓湭瀹屾垚鐨凙GV浠诲姟锛岃烦杩囨湰娆″彂閫侊紝绛夊緟浠诲姟瀹屾垚銆傚綋鍓嶄换鍔D锛歿}", 
-                            staNo, unfinishedTasks.size(), task.getId());
+                if (!transportingTasks.isEmpty()) {
+                    log.info("绔欑偣{}鏈墈}涓鍦ㄦ惉杩愮殑{}AGV浠诲姟锛岃烦杩囨湰娆″彂閫侊紝绛夊緟鎼繍瀹屾垚銆傚綋鍓嶄换鍔D锛歿}", 
+                            staNo, transportingTasks.size(), taskType, task.getId());
                     continue; // 璺宠繃鏈鍙戦�侊紝绛夊緟涓嬫
                 }
             }

--
Gitblit v1.9.1