From a89f1faab22c204627d49d6731be9c94d8160184 Mon Sep 17 00:00:00 2001
From: duyongjia <adu_555@163.com>
Date: 星期五, 22 十一月 2024 11:23:47 +0800
Subject: [PATCH] 优化修改提交

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/DoubleStackerCraneJob.cs |  154 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 113 insertions(+), 41 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/DoubleStackerCraneJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/DoubleStackerCraneJob.cs"
index fdac4dc..b5d847a 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/DoubleStackerCraneJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/DoubleStackerCraneJob.cs"
@@ -1,5 +1,6 @@
 锘縰sing HslCommunication;
 using Microsoft.AspNetCore.Components.Routing;
+using Newtonsoft.Json;
 using Quartz;
 using System;
 using System.Collections.Generic;
@@ -49,29 +50,23 @@
             _locationInfoRepository = locationInfoRepository;
         }
 
-        public Task Execute(IJobExecutionContext context)
+        public  Task Execute(IJobExecutionContext context)
         {
+            WriteDebug("灏忓爢鍨涙満杩愯鏃ュ織", "寮�濮嬫椂闂�" + DateTime.Now);
+            CommonStackerCrane? stackerCraneOne = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC02") as CommonStackerCrane;
+            CommonStackerCrane? stackerCraneTwo = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC03") as CommonStackerCrane;
+            WriteDebug(nameof(DoubleStackerCraneJob), $"灏忓爢鍨涙満浠诲姟鎵ц涓�...");
+          
             try
             {
-                CommonStackerCrane? stackerCraneOne = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC02") as CommonStackerCrane;
-                CommonStackerCrane? stackerCraneTwo = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC03") as CommonStackerCrane;
-
-                //Dt_DeviceInfo deviceSC02= _deviceInfoRepository.QueryFirst(x => x.DeviceCode == "SC02");
-                //Dt_DeviceInfo deviceSC03 = _deviceInfoRepository.QueryFirst(x => x.DeviceCode == "SC03");
-                //if(deviceSC02.DeviceStatus=="0")
-                //{
-                //    stackerCraneOne = null;
-                //}
-                //if(deviceSC03.DeviceStatus=="0")
-                //{
-                //    stackerCraneTwo = null;
-                //}
-                stackerCraneOne.CheckStackerCraneTaskCompleted();
+               
                 Dt_Task? task = GetTask();
+                
                 if (task != null)
                 {
-                    CommonStackerCrane? StackerCrane= GetStrackerCrane(task, stackerCraneOne, stackerCraneTwo);
-                    if(StackerCrane != null)
+                    WriteDebug("灏忓爢鍨涙満杩愯鏃ュ織", $"灏忓爢鍨涙満浠诲姟鍙穥task.TaskNum}");
+                    CommonStackerCrane? StackerCrane = GetStrackerCrane(task, stackerCraneOne, stackerCraneTwo);
+                    if (StackerCrane != null)
                     {
                         StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task);
                         if (stackerCraneTaskCommand != null)
@@ -86,16 +81,16 @@
                             else
                             {
                                 _taskService.UpdateTaskExceptionMessage(task.TaskNum, "鍫嗗灈鏈烘墽琛屼换鍔″懡浠ゅけ璐ワ紒");
-                                WriteDebug(nameof(CommonStackerCraneJob), "鍫嗗灈鏈烘墽琛屼换鍔″懡浠ゅけ璐ワ紒");
+                                WriteDebug(nameof(DoubleStackerCraneJob), "鍫嗗灈鏈烘墽琛屼换鍔″懡浠ゅけ璐ワ紒");
                             }
                         }
 
                     }
                     else
                     {
-                        WriteDebug(nameof(CommonStackerCraneJob), "鏈煡璇㈠埌褰撳墠鍙互鎵ц涓婃枡浠诲姟鐨勫皬鍫嗗灈鏈猴紒");
+                        WriteDebug(nameof(DoubleStackerCraneJob), "鏈煡璇㈠埌褰撳墠鍙互鎵ц涓婃枡浠诲姟鐨勫皬鍫嗗灈鏈猴紒");
                     }
-                  
+
                 }
 
             }
@@ -103,6 +98,53 @@
             {
                 WriteError(nameof(CommonStackerCraneJob), "灏忓爢鍨涙満鎵ц浠诲姟寮傚父锛�", ex);
             }
+
+            //璇诲彇鍫嗗灈鏈轰换鍔″彿鍜屼换鍔″畬鎴愮‘璁ょ姸鎬�
+            //Task.Run(delegate
+            //{
+               
+                try
+                {
+                    if (stackerCraneOne != null)
+                    {    
+                        byte IsFinish = stackerCraneOne.Communicator.Read<byte>("DB106.22");
+                        int tasknum = stackerCraneOne.Communicator.Read<int>("DB106.18");
+                        if (IsFinish == 6)
+                        {
+                            if (stackerCraneOne.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5)
+                            {
+                                //鏆傛椂 鍏堝啓5:瀹屾垚纭 淇″彿
+                                _taskService.StackCraneTaskCompleted(tasknum);
+                                stackerCraneOne.SetValue(StackerCraneDBName.WorkType, 5);
+
+                            }
+                        }
+                    }
+
+                    if (stackerCraneTwo != null)
+                    {
+                        //璇诲彇鍫嗗灈鏈轰换鍔″彿鍜屼换鍔″畬鎴愮‘璁ょ姸鎬�
+                        byte IsFinish = stackerCraneTwo.Communicator.Read<byte>("DB106.22");
+                        int tasknum = stackerCraneTwo.Communicator.Read<int>("DB106.18");
+                        if (IsFinish == 6)
+                        {
+                            if (stackerCraneTwo.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5)
+                            {
+                                _taskService.StackCraneTaskCompleted(tasknum);
+                                stackerCraneTwo.SetValue(StackerCraneDBName.WorkType, 5);
+                            }
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    WriteError(nameof(DoubleStackerCraneJob), "鏌ヨ鎴栧啓鍏LC鐘舵�佸け璐ワ紒", ex);
+                }
+
+
+            //});
+
+            WriteDebug("灏忓爢鍨涙満杩愯鏃ュ織", "缁撴潫鏃堕棿" + DateTime.Now);
             return Task.CompletedTask;
         }
 
@@ -147,13 +189,9 @@
             {
                 if (stackerCraneOne != null)
                 {
-                    if (!stackerCraneOne.IsEventSubscribed)
-                    {
-                        stackerCraneOne.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
-                    }
+
                     if (stackerCraneOne.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneOne.StackerCraneStatusValue == StackerCraneStatus.Normal)
                     {
-                        stackerCraneOne.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
                         if (stackerCraneOne.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
                         {
                             return stackerCraneOne;
@@ -166,15 +204,17 @@
 
                         if (deviceSC02.DeviceStatus=="0"&& stackerCraneTwo != null)
                         {
-                            if (!stackerCraneTwo.IsEventSubscribed)
-                            {
-                                stackerCraneTwo.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
-                            }
+                            //if (!stackerCraneTwo.IsEventSubscribed)
+                            //{
+                            //    stackerCraneTwo.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
+                            //}
                             if (stackerCraneTwo.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneTwo.StackerCraneStatusValue == StackerCraneStatus.Normal)
                             {
-                                stackerCraneTwo.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
+                                //stackerCraneTwo.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
                                 if (stackerCraneTwo.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
                                 {
+                                    //todo:浠诲姟琛ㄤ腑鐨凴oadWay鍒囨崲涓篠C03
+
                                     return stackerCraneTwo;
                                 }
                             }
@@ -184,18 +224,34 @@
 
                     }
                 }
+                else
+                {
+                    if(stackerCraneTwo != null)
+                    {
+                        if (stackerCraneTwo.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneTwo.StackerCraneStatusValue == StackerCraneStatus.Normal)
+                        {
+                            if (stackerCraneTwo.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
+                            {
+                                //todo:浠诲姟琛ㄤ腑鐨凴oadWay鍒囨崲涓篠C03
+
+                                return stackerCraneTwo;
+                            }
+                        }
+                    }
+
+                }
             }
             else if (task.Roadway=="SC03")
             {
                 if (stackerCraneTwo != null)
-                {
-                    if (!stackerCraneTwo.IsEventSubscribed)
-                    {
-                        stackerCraneTwo.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
-                    }
+                 {
+                //    if (!stackerCraneTwo.IsEventSubscribed)
+                //    {
+                //        stackerCraneTwo.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
+                //    }
                     if (stackerCraneTwo.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneOne.StackerCraneStatusValue == StackerCraneStatus.Normal)
                     {
-                        stackerCraneTwo.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
+                        //stackerCraneTwo.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
                         if (stackerCraneTwo.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
                         {
                             return stackerCraneTwo;
@@ -206,15 +262,16 @@
                         Dt_DeviceInfo deviceSC03 = _deviceInfoRepository.QueryFirst(x => x.DeviceCode == "SC03");
                         if (deviceSC03.DeviceStatus=="0"&&stackerCraneOne != null)
                         {
-                            if (!stackerCraneOne.IsEventSubscribed)
-                            {
-                                stackerCraneOne.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
-                            }
+                            //if (!stackerCraneOne.IsEventSubscribed)
+                            //{
+                            //    stackerCraneOne.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
+                            //}
                             if (stackerCraneOne.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneTwo.StackerCraneStatusValue == StackerCraneStatus.Normal)
                             {
-                                stackerCraneOne.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
+                                //stackerCraneOne.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
                                 if (stackerCraneOne.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
                                 {
+                                    //todo锛氫换鍔¤〃涓殑RoadWay鍒囨崲涓篠C03
                                     return stackerCraneOne;
                                 }
                             }
@@ -222,6 +279,21 @@
 
                     }
                 }
+                else
+                {
+                    if(stackerCraneOne != null)
+                    {
+                        if (stackerCraneOne.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && stackerCraneOne.StackerCraneStatusValue == StackerCraneStatus.Normal)
+                        {
+                            if (stackerCraneOne.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
+                            {
+                                return stackerCraneOne;
+                            }
+
+                        }
+
+                    }
+                }
 
             }
             return null;

--
Gitblit v1.9.3