From ebdfec3e9db0977bccca0527be7d2226fbbd0229 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 12 六月 2024 11:02:16 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java |   48 +++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 43 insertions(+), 5 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 5b7672b..6773aea 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
@@ -9,6 +9,7 @@
 import com.zy.asrs.common.utils.HttpHandler;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.SnowflakeIdWorker;
+import com.zy.asrs.framework.exception.CoolException;
 import com.zy.asrs.wcs.core.domain.dto.MatDto;
 import com.zy.asrs.wcs.core.domain.dto.RedisMapDto;
 import com.zy.asrs.wcs.core.domain.dto.StaDto;
@@ -17,6 +18,7 @@
 import com.zy.asrs.wcs.core.model.MapNode;
 import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
 import com.zy.asrs.wcs.core.model.enums.MotionStsType;
+import com.zy.asrs.wcs.core.model.enums.TaskCtgType;
 import com.zy.asrs.wcs.core.model.enums.TaskStsType;
 import com.zy.asrs.wcs.core.service.*;
 import com.zy.asrs.wcs.core.utils.RedisUtil;
@@ -179,7 +181,7 @@
 
                         //鑾峰彇鍏ュ簱浠诲姟绫诲瀷
                         TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
-                                .eq(TaskCtg::getFlag, "IN")
+                                .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN))
                                 .eq(TaskCtg::getStatus, 1));
 
                         // 鍒ゆ柇閲嶅宸ヤ綔妗�
@@ -270,7 +272,7 @@
                 int lev = Integer.parseInt(split[1]);
 
                 Object data = redisUtil.get(DeviceRedisConstant.MAP + lev);
-                if (data == null) {
+                if (data != null) {
                     continue;
                 }
 
@@ -440,7 +442,7 @@
     /**
      * 鍑哄簱 ====>> 鍚屼竴鏃堕棿涓�鍙扮┛姊溅鍙兘鏈変竴涓嚭搴撲换鍔�
      */
-    public synchronized void generateOutboundWrkMast() {
+    public synchronized void analyzeOutBoundTask() {
         List<Task> tasks = taskService.selectPakOut();
         if (tasks.isEmpty()) {
             return;
@@ -476,6 +478,23 @@
 //                    continue;//娴呭簱浣嶅瓨鍦ㄦ湭鎵ц浠诲姟
 //                }
 
+                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.generateMotion(task);
                 if (Cools.isEmpty(motionList)) {
@@ -495,6 +514,25 @@
         }
     }
 
+    // 瑙f瀽灏忚溅绉诲姩宸ヤ綔妗�
+    public synchronized void analyzeMoveTask() {
+        for (Task task : taskService.selectWaitAnalyzeMoveTask()) {
+            // generate motion list
+            List<Motion> motionList = analyzeService.generateMotion(task);
+            if (motionList.isEmpty()) {
+                continue;
+            }
+            motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()));
+
+            // 鏇存柊宸ヤ綔涓绘。
+            task.setTaskSts(TaskStsType.ANALYZE_MOVE.sts); // 宸ヤ綔鐘舵��
+            task.setUpdateTime(new Date());
+            if (!taskService.updateById(task)) {
+                News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo());
+            }
+        }
+    }
+
     /**
      * 鍥涘悜绌挎杞︾數閲忔娴� ===>> 鍙戣捣鍏呯數
      */
@@ -509,7 +547,7 @@
 
         //鑾峰彇鍏呯數浠诲姟绫诲瀷
         TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
-                .eq(TaskCtg::getFlag, "CHARGE")
+                .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.CHARGE))
                 .eq(TaskCtg::getStatus, 1));
         if (taskCtg == null) {
             return;
@@ -653,7 +691,7 @@
 
         //鑾峰彇杩佺Щ浠诲姟绫诲瀷
         TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>()
-                .eq(TaskCtg::getFlag, "MOVE")
+                .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MOVE))
                 .eq(TaskCtg::getStatus, 1));
         if (taskCtg == null) {
             return;

--
Gitblit v1.9.1