From 9051d96029c8e860c6e6657b7df2106bfbfdc010 Mon Sep 17 00:00:00 2001
From: chenyong <chenyong@hnkhzn.com>
Date: 星期五, 06 三月 2026 15:20:54 +0800
Subject: [PATCH] 111

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs |   78 +++++++++++++++++++++-----------------
 1 files changed, 43 insertions(+), 35 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
index 53bb9e4..d0c18da 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
@@ -161,13 +161,15 @@
             List<Dt_Task> YKtasks = _taskService.QueryStackerCraneYKTasks(commonStackerCrane.DeviceCode);
 
 
+
+
             if (task != null)
             {
 
                 if (task.Roadway == "SC02") return task;    //濡傛灉鏈変换鍔″垯鐩存帴涓嬪彂缁欏爢鍨涙満
                 if (task.Depth == 1) return task;
                 //2娣变綅杩涜鍒ゆ柇鏄惁瑕佺Щ搴�
-                Dt_Task dt_Task = _taskService.RequestWMSTaskMovelibrary(task);
+                Dt_Task dt_Task = OutTaskMovelibrary(task);
                 if (dt_Task != null) return dt_Task;
             }
             else if (YKtasks.Count > 0) //搴撲綅璋冩嫧
@@ -194,17 +196,12 @@
                 //杩涜鑾峰彇鍫嗗灈鏈哄嚭搴撲换鍔�
                 List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode);
 
+                if (commonStackerCrane.DeviceCode == "SC02") {
+                }
+
                     foreach (var item in tasks)
                     {
-                    //if (item.TargetAddress == "2021"||item.TargetAddress == "2020")
-                    //{
-                    //    ////bool IsOccupied = _lineJob.GetPick();
 
-                    //    //if (!IsOccupied)
-                    //    //{
-                    //    //    return null;
-                    //    //}
-                    //}
                     if (OutTaskStationIsOccupied(item) != null)
                         {
                             if (item.Roadway == "SC01")
@@ -230,7 +227,17 @@
 
         private Dt_Task? OutTaskMovelibrary([NotNull] Dt_Task task)
         {
-            string[] targetCodes = task.SourceAddress.Split("-");
+            string[] targetCodes;
+            if (task.TaskType == (int)TaskInboundTypeEnum.Inbound)
+            {
+                targetCodes = task.TargetAddress.Split("-");
+
+            }
+            else
+            {
+                targetCodes = task.SourceAddress.Split("-");
+
+            }
             if (targetCodes[1] == "001")
             {
                 targetCodes[1] = "002";
@@ -266,36 +273,37 @@
                 if (device != null)
                 {
                     OtherDevice conveyorLine = (OtherDevice)device;
-                    DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == task.NextAddress && x.DeviceProParamName == "IsOccupied");    //鏍规嵁鍫嗗灈鏈哄湴鍧�锛屽湴鍧�鍚嶇О鎵惧崗璁�
-                    if (deviceProDTO != null)
+
+                    if (task.TargetAddress == "2021" || task.TargetAddress == "2020" || task.TargetAddress == "2009")
                     {
-                        bool B_Event_Test = conveyorLine.Communicator.Read<bool>(deviceProDTO.DeviceProAddress);        //鍒ゆ柇杈撻�佺嚎鏄惁鍏佽鏀捐揣淇″彿
-                        if (!B_Event_Test)
+                        DeviceProDTO? deviceProDTO2007 = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == "2007" && x.DeviceProParamName == "IsOccupied");    //鏍规嵁鍫嗗灈鏈哄湴鍧�锛屽湴鍧�鍚嶇О鎵惧崗璁�
+                        DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == task.NextAddress && x.DeviceProParamName == "IsOccupied");    //鏍规嵁鍫嗗灈鏈哄湴鍧�锛屽湴鍧�鍚嶇О鎵惧崗璁�
+
+                        if (deviceProDTO != null)
                         {
-                            return task;
+                            bool B_Event_Test = conveyorLine.Communicator.Read<bool>(deviceProDTO.DeviceProAddress);        //鍒ゆ柇杈撻�佺嚎鏄惁鍏佽鏀捐揣淇″彿
+                            bool B_Event_Test2007 = conveyorLine.Communicator.Read<bool>(deviceProDTO2007.DeviceProAddress);        //鍒ゆ柇2007杈撻�佺嚎鏄惁鍏佽鏀捐揣淇″彿
+
+                            if (!B_Event_Test && !B_Event_Test2007)
+                            {
+                                return task;
+                            }
+                        }
+
+                    }
+                    else
+                    {
+                        DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == task.NextAddress && x.DeviceProParamName == "IsOccupied");    //鏍规嵁鍫嗗灈鏈哄湴鍧�锛屽湴鍧�鍚嶇О鎵惧崗璁�
+                        if (deviceProDTO != null)
+                        {
+                            bool B_Event_Test = conveyorLine.Communicator.Read<bool>(deviceProDTO.DeviceProAddress);        //鍒ゆ柇杈撻�佺嚎鏄惁鍏佽鏀捐揣淇″彿
+                            if (!B_Event_Test)
+                            {
+                                return task;
+                            }
                         }
                     }
-                    //if (task.NextAddress == "2021" || task.NextAddress == "2020")
-                    //{
-                    //    DeviceProDTO? deviceProDTO1 = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == "2008" || x.DeviceChildCode == "2009" || x.DeviceChildCode == "2015" || x.DeviceChildCode == "2016" && x.DeviceProParamName == "IsOccupied");    //鏍规嵁鍫嗗灈鏈哄湴鍧�锛屽湴鍧�鍚嶇О鎵惧崗璁�
-                    //    if (deviceProDTO != null)
-                    //    {
-                    //        bool IsOccupied2008 = conveyorLine.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2008");
-                    //        bool IsOccupied2009 = conveyorLine.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2009");
-                    //        bool IsOccupied2015 = conveyorLine.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2015");
-                    //        bool IsOccupied2016 = conveyorLine.GetValue<W_ConveyorLineDB, bool>(W_ConveyorLineDB.IsOccupied, "2016");
 
-                    //        //鍒ゆ柇鏄惁鎴愮珛
-                    //        if (IsOccupied2008 && IsOccupied2009 && IsOccupied2015 && IsOccupied2016)
-                    //        {
-                    //            return null;
-                    //        }
-                    //        else
-                    //        {
-                    //            return task;
-                    //        }
-                    //    }
-                    //}
                 }
             }
             catch (Exception ex)

--
Gitblit v1.9.3