From 9b2a125b8e539859774176979fc4956c379f05cc Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期四, 06 十一月 2025 16:22:00 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs |   49 ++++++++++++++++++++++++++++---------------------
 1 files changed, 28 insertions(+), 21 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 88114f3..8af5db4 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"
@@ -60,6 +60,7 @@
         {
             try
             {
+
                 SpeStackerCrane speStackerCrane = (SpeStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
                 if (speStackerCrane != null)
                 {
@@ -89,7 +90,7 @@
                                         speStackerCrane.LastTaskType = task.TaskType;
                                         task.Dispatchertime = DateTime.Now;
                                         task.ExceptionMessage = "";
-                                        _taskService.UpdateTask(task, TaskStatusEnum.SC_Executing);
+                                        WebResponseContent webResponseContent = _taskService.UpdateTaskStatusToNext(task.TaskNum);
                                         //寤舵椂1s
                                         Thread.Sleep(1000);
                                     }
@@ -123,7 +124,7 @@
                 }
             }
         }
-        
+
         /// <summary>
         /// 鑾峰彇浠诲姟
         /// </summary>
@@ -140,9 +141,14 @@
             }
 
             task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);         //鑾峰彇鍏ュ簱浠诲姟
-            if(task != null)
+            if (task != null)
             {
-                return task;    //濡傛灉鏈変换鍔″垯鐩存帴涓嬪彂缁欏爢鍨涙満
+                if(task.Roadway=="SC02") return task;    //濡傛灉鏈変换鍔″垯鐩存帴涓嬪彂缁欏爢鍨涙満
+                if(task.Depth==1) return task;
+                //2娣变綅杩涜鍒ゆ柇鏄惁瑕佺Щ搴�
+
+                Dt_Task dt_Task = _taskService.RequestWMSTaskMovelibrary(task);
+                if (dt_Task != null) return dt_Task;
             }
             else
             {
@@ -152,11 +158,11 @@
                 {
                     if (OutTaskStationIsOccupied(item) != null)
                     {
-                        if(item.Roadway== "SC01")
+                        if (item.Roadway == "SC01")
                         {
                             if (item.Depth == 1) return item;
                             //璋冨彇WMS鎺ュ彛杩涜鍒ゆ柇鏄惁闇�瑕佽繘琛岀Щ搴�
-                            Dt_Task dt_Task= OutTaskMovelibrary(item);
+                            Dt_Task dt_Task = OutTaskMovelibrary(item);
                             if (dt_Task != null) return dt_Task;
 
                         }
@@ -187,7 +193,7 @@
             string SourceAddress = string.Join("-", targetCodes); //缁勮娴呭簱浣嶅湴鍧�
             Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress); //鎵炬祬搴撲綅鏄惁鏈変换鍔�
             if (tasks != null) return tasks;
-        //鍚憌ms鐢宠鍒ゆ柇娴呭簱浣嶆槸鍚︽湁璐э紝鏄惁闇�瑕佽繘琛岀Щ搴�
+            //鍚憌ms鐢宠鍒ゆ柇娴呭簱浣嶆槸鍚︽湁璐э紝鏄惁闇�瑕佽繘琛岀Щ搴�
             Dt_Task? taskst = _taskService.RequestWMSTaskMovelibrary(task);
             if (taskst != null) return taskst;
             return null;
@@ -203,26 +209,27 @@
         /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns>
         private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task)
         {
-            Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault();
-            if (router != null)
+            try
             {
-                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode);
+                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "CL01");
                 if (device != null)
                 {
-                    CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
-                    if (conveyorLine.IsOccupied(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤
+                    OtherDevice conveyorLine = (OtherDevice)device;
+                    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);        //鍒ゆ柇杈撻�佺嚎鏄惁鍏佽鏀捐揣淇″彿
+                        if (!B_Event_Test)
+                        {
+                            return task;
+                        }
                     }
                 }
-                else
-                {
-                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒板嚭搴撶珯鍙般�恵router.ChildPosiDeviceCode}銆戝搴旂殑閫氳瀵硅薄锛屾棤娉曞垽鏂嚭搴撶珯鍙版槸鍚﹁鍗犵敤");
-                }
             }
-            else
+            catch (Exception ex)
             {
-                _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鏍¢獙绔欏彴");
+
+                throw;
             }
             return null;
         }
@@ -241,10 +248,10 @@
             stackerCraneTaskCommand.TaskNum = task.TaskNum;
             stackerCraneTaskCommand.WorkType = 1;
             stackerCraneTaskCommand.TrayType = 1;
-            if (task.TaskType==(int)TaskInboundTypeEnum.Inbound)//鍒ゆ柇鏄惁鏄叆搴撲换鍔�
+            if (task.TaskType == (int)TaskInboundTypeEnum.Inbound)//鍒ゆ柇鏄惁鏄叆搴撲换鍔�
             {
 
-                Dt_StationManger dt_StationManger=_stationMangerRepository.QueryFirst(x=>x.StationCode==task.SourceAddress);
+                Dt_StationManger dt_StationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.SourceAddress);
 
 
                 string[] startCodes = dt_StationManger.StackerCraneStationCode.Split("-");

--
Gitblit v1.9.3