From 79603e53c78e535dba4bfbc69b8c3b5c184012c5 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 08 四月 2024 09:16:05 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java |   68 ++++++++++++++++++++++++++++++----
 1 files changed, 60 insertions(+), 8 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java
index 9dbe686..7ef0cb4 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/MotionTimer.java
@@ -61,13 +61,13 @@
                     continue;
                 }
 
-                // 鏇存柊wrkMast
-                switch (TaskStsType.query(task.getTaskSts())) {
+                // 鏇存柊Task
+                switch (TaskStsType.queryById(task.getTaskSts())) {
                     case ANALYZE_INBOUND:
-                        task.setTaskSts(TaskStsType.EXECUTE_INBOUND.sts);
+                        task.setTaskSts(TaskStsType.EXECUTE_INBOUND.getId());
                         break;
                     case ANALYZE_OUTBOUND:
-                        task.setTaskSts(TaskStsType.EXECUTE_OUTBOUND.sts);
+                        task.setTaskSts(TaskStsType.EXECUTE_OUTBOUND.getId());
                         break;
                 }
                 task.setUpdateTime(now);
@@ -90,13 +90,13 @@
                         continue;
                     }
 
-                    // 鏇存柊wrkMast
-                    switch (TaskStsType.query(task.getTaskSts())) {
+                    // 鏇存柊Task
+                    switch (TaskStsType.queryById(task.getTaskSts())) {
                         case EXECUTE_INBOUND:
-                            task.setTaskSts(TaskStsType.COMPLETE_INBOUND.sts);
+                            task.setTaskSts(TaskStsType.COMPLETE_INBOUND.getId());
                             break;
                         case EXECUTE_OUTBOUND:
-                            task.setTaskSts(TaskStsType.COMPLETE_OUTBOUND.sts);
+                            task.setTaskSts(TaskStsType.COMPLETE_OUTBOUND.getId());
                             break;
                     }
                     task.setUpdateTime(now);
@@ -173,7 +173,59 @@
 
 //    @Scheduled(cron = "0/1 * * * * ? ")
     public synchronized void executeManualTask() {
+        Date now = new Date();
+        // ANALYZE_MANUAL
+        for (Task task : taskService.selectByAnalyzeSts()) {
+            Motion executingMotion = motionService.selectOfTop1(task.getUuid(), MotionStsType.EXECUTING.val(), task.getHostId());
+            if (executingMotion != null) {//瀛樺湪姝e湪鎵ц鐨刴otion
+                continue;
+            }
 
+            Motion motion = motionService.selectOfTop1(task.getUuid(), MotionStsType.INIT.val(), task.getHostId());
+            if (null != motion) {
+                boolean result = this.executeMotion(motion);
+                if (!result) {
+                    continue;
+                }
+                // 鏇存柊Task
+                switch (TaskStsType.queryById(task.getTaskSts())) {
+                    case ANALYZE_MANUAL:
+                        task.setTaskSts(TaskStsType.EXECUTE_MANUAL.getId());
+                        break;
+                }
+                task.setUpdateTime(now);
+                if (!taskService.updateById(task)) {
+                    log.error("{}鍏朵粬宸ヤ綔妗f洿鏂扮姸鎬佸け璐ワ紒", task.getTaskNo());
+                }
+            }
+        }
+        // EXECUTE_MANUAL
+        for (Task task : taskService.selectManualByExecuteSts()) {
+            if (!motionService.hasRunningMotion(task.getUuid(), task.getHostId())) {
+                Motion motion = motionService.selectOfTop1(task.getUuid(), MotionStsType.WAITING.val(), task.getHostId());
+                if (null != motion) {
+                    boolean result = this.executeMotion(motion);
+                    if (!result) {
+                        continue;
+                    }
+                } else {
+                    if (motionService.selectOfTop1(task.getUuid(), MotionStsType.EXECUTING.val(), task.getHostId()) != null) {
+                        continue;
+                    }
+
+                    // 鏇存柊Task
+                    switch (TaskStsType.queryById(task.getTaskSts())) {
+                        case EXECUTE_MANUAL:
+                            task.setTaskSts(TaskStsType.COMPLETE_MANUAL.getId());
+                            break;
+                    }
+                    task.setUpdateTime(now);
+                    if (!taskService.updateById(task)) {
+                        log.error("{}浠栧伐浣滄。鏇存柊鐘舵�佸け璐ワ紒", task.getTaskNo());
+                    }
+                }
+            }
+        }
     }
 
     @Scheduled(cron = "0/1 * * * * ? ")

--
Gitblit v1.9.1