From 01b058c023a32676ea3aecb92aee3e0587cd0cd4 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 09 六月 2025 09:36:00 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index 2b00511..0582f3e 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -169,6 +169,7 @@
                     if (staProtocol.isAutoing() && staProtocol.isLoading()
                             && staProtocol.isInEnable()
                             && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999))
+                            && staProtocol.getIsIn() == (short)1
                             && staProtocol.isPakMk()
                     ) {
 
@@ -668,6 +669,11 @@
                             // generate motion list
                             List<Motion> motionList = analyzeService.generateMotion(task);
                             if (motionList.isEmpty()) {
+                                task.setShuttleNo(null);//淇濆瓨绌挎杞﹀彿
+                                task.setUpdateTime(new Date());
+                                if (!taskService.updateById(task)) {
+                                    News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+                                }
                                 continue;
                             }
                             motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
@@ -774,6 +780,10 @@
      * 鍑哄簱 ====>> 鍚屼竴鏃堕棿涓�鍙扮┛姊溅鍙兘鏈変竴涓嚭搴撲换鍔�
      */
     public synchronized void analyzeOutBoundTask() {
+        List<Task> moveTask = taskService.selectWaitAnalyzeMoveTask();
+        if (!moveTask.isEmpty()) {
+            return;
+        }
         List<Task> tasks = taskService.selectPakOut();
         if (tasks.isEmpty()) {
             return;
@@ -834,6 +844,11 @@
                 // generate motion list
                 List<Motion> motionList = analyzeService.generateMotion(task);
                 if (Cools.isEmpty(motionList)) {
+                    task.setShuttleNo(null);//淇濆瓨绌挎杞﹀彿
+                    task.setUpdateTime(new Date());
+                    if (!taskService.updateById(task)) {
+                        News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+                    }
                     log.error("鍑哄簱 ===>> 鏆傛椂娌℃湁绌洪棽灏忚溅, 浠诲姟鍙�={}", task.getTaskNo());
                     continue;
                 }
@@ -873,6 +888,11 @@
             // generate motion list
             List<Motion> motionList = analyzeService.generateShuttleMoveMotion(task);
             if (motionList.isEmpty()) {
+                task.setShuttleNo(null);//淇濆瓨绌挎杞﹀彿
+                task.setUpdateTime(new Date());
+                if (!taskService.updateById(task)) {
+                    News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+                }
                 continue;
             }
             motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
@@ -1290,4 +1310,39 @@
         }
     }
 
+    // 瑙f瀽灏忚溅杞借揣绉诲姩宸ヤ綔妗�
+    public synchronized void analyzeLadenMoveTask() {
+        for (Task task : taskService.selectWaitAnalyzeLadenMoveTask()) {
+            if (Cools.isEmpty(task.getShuttleNo())) {
+                //鍒嗛厤灏忚溅
+                //鎼滅储绌洪棽杞�
+                ShuttleThread shuttleThread = shuttleDispatcher.searchIdleShuttle(task);
+                if (shuttleThread == null) {
+                    News.info("{}浠诲姟鏈壘鍒扮┖闂茬┛姊溅", task.getTaskNo());
+                    continue;
+                }
+
+                task.setShuttleNo(Integer.valueOf(shuttleThread.getDevice().getDeviceNo()));//淇濆瓨绌挎杞﹀彿
+                task.setUpdateTime(new Date());
+                if (!taskService.updateById(task)) {
+                    News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+                }
+                continue;
+            }
+
+            // generate motion list
+            List<Motion> motionList = analyzeService.generateShuttleLadenMoveMotion(task);
+            if (motionList.isEmpty()) {
+                continue;
+            }
+            motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
+
+            // 鏇存柊宸ヤ綔涓绘。
+            task.setTaskSts(TaskStsType.ANALYZE_LADEN_MOVE.sts); // 宸ヤ綔鐘舵��
+            task.setUpdateTime(new Date());
+            if (!taskService.updateById(task)) {
+                News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo());
+            }
+        }
+    }
 }

--
Gitblit v1.9.1