From 58a8a8843f101b2a1ba25622e2ef8ade605e0c49 Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@WIN-16OJST5SSCB>
Date: 星期一, 02 十二月 2024 16:28:23 +0800
Subject: [PATCH] OCV2-包装代码

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs |   83 ++++++++++++++++++++++++++---------------
 1 files changed, 53 insertions(+), 30 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
index 262eaa4..2d8259a 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -1,4 +1,5 @@
-锘縰sing HslCommunication;
+锘縰sing Autofac.Core;
+using HslCommunication;
 using Newtonsoft.Json;
 using Quartz;
 using System.Diagnostics.CodeAnalysis;
@@ -170,42 +171,64 @@
         /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns>
         private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task)
         {
-            if (task.Roadway.Contains("GW"))
-            {
-                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1015");
-                if (device != null)
-                {
-                    CommonConveyorLine_GW conveyorLine = (CommonConveyorLine_GW)device;
-                    if (conveyorLine.IsOccupied(task.TargetAddress))//鍑哄簱绔欏彴鏈鍗犵敤
-                    {
-                        return task;
-                    }
-                }
-                else
-                {
-                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒板嚭搴撶珯鍙般�恵task.TargetAddress}銆戝搴旂殑閫氳瀵硅薄锛屾棤娉曞垽鏂嚭搴撶珯鍙版槸鍚﹁鍗犵敤");
-                }
-            }
             Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault();
-            if (router != null)
+            if (task.Roadway.Contains("GW") || task.Roadway.Contains("CW"))
             {
-                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode);
-                if (device != null)
+                if (router != null)
                 {
-                    CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
-                    if (conveyorLine.IsOccupied(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤
+
+                    IDevice? device = null;
+                    if (task.Roadway.Contains("CW"))
                     {
-                        return task;
+                        device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode);
+                    }
+
+                    else
+                    {
+                        device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1015");
+                    }
+
+                    if (device != null)
+                    {
+                        CommonConveyorLine_GW conveyorLine = (CommonConveyorLine_GW)device;
+                        if (conveyorLine.IsOccupied(task.TargetAddress))//鍑哄簱绔欏彴鏈鍗犵敤
+                        {
+                            return task;
+                        }
+                    }
+                    else
+                    {
+                        _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒板嚭搴撶珯鍙般�恵task.TargetAddress}銆戝搴旂殑閫氳瀵硅薄锛屾棤娉曞垽鏂嚭搴撶珯鍙版槸鍚﹁鍗犵敤");
                     }
                 }
                 else
                 {
-                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒板嚭搴撶珯鍙般�恵router.ChildPosiDeviceCode}銆戝搴旂殑閫氳瀵硅薄锛屾棤娉曞垽鏂嚭搴撶珯鍙版槸鍚﹁鍗犵敤");
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鏍¢獙绔欏彴");
                 }
             }
             else
             {
-                _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鏍¢獙绔欏彴");
+                //Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault();
+                if (router != null)
+                {
+                    IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode);
+                    if (device != null)
+                    {
+                        CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
+                        if (conveyorLine.IsOccupied(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤
+                        {
+                            return task;
+                        }
+                    }
+                    else
+                    {
+                        _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒板嚭搴撶珯鍙般�恵router.ChildPosiDeviceCode}銆戝搴旂殑閫氳瀵硅薄锛屾棤娉曞垽鏂嚭搴撶珯鍙版槸鍚﹁鍗犵敤");
+                    }
+                }
+                else
+                {
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鏍¢獙绔欏彴");
+                }
             }
             return null;
         }
@@ -237,7 +260,7 @@
                     string[] targetCodes = task.NextAddress.Split("-");
                     if (targetCodes.Length == 3)
                     {
-                        stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]);
+                        stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2;
                         stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
                         stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
                     }
@@ -263,7 +286,7 @@
                     stackerCraneTaskCommand.EndColumn = Convert.ToInt16(endCodes[1]);
                     stackerCraneTaskCommand.EndLayer = Convert.ToInt16(endCodes[2]);
                     string[] sourceCodes = task.SourceAddress.Split("-");
-                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]);
+                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2;
                     stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
                     stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
                 }
@@ -279,7 +302,7 @@
                         string[] sourceCodes = task.CurrentAddress.Split("-");
                         if (sourceCodes.Length == 3)
                         {
-                            stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]);
+                            stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2;
                             stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
                             stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
                         }
@@ -302,7 +325,7 @@
                 string[] targetCodes = task.NextAddress.Split("-");
                 if (targetCodes.Length == 3)
                 {
-                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]);
+                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2;
                     stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
                     stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
                 }
@@ -315,7 +338,7 @@
                 string[] sourceCodes = task.CurrentAddress.Split("-");
                 if (sourceCodes.Length == 3)
                 {
-                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]);
+                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2;
                     stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
                     stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
                 }

--
Gitblit v1.9.3