From 733e63cb362f17aea4a1020654fa348a0d0c1f06 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期一, 24 二月 2025 00:08:59 +0800
Subject: [PATCH] 优化入库逻辑,优化直接出库逻辑,优化移库任务逻辑

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneExtend/SignalInteraction.cs |   64 ++++++++++++++++++++++----------
 1 files changed, 44 insertions(+), 20 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneExtend/SignalInteraction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneExtend/SignalInteraction.cs"
index b40f16d..f1da526 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneExtend/SignalInteraction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneExtend/SignalInteraction.cs"
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing SqlSugar.Extensions;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -33,34 +34,57 @@
         /// <param name="commonStackerCrane"></param>
         public void ShuttleCarSignal(SpeStackerCrane commonStackerCrane)
         {
+            var ASRSRqtGetAGV = commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtGetAGV);
+            var ASRSRqtGetGoods = commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtGetGoods);
+            var ASRSRqtPutGoods = commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtPutGoods);
+            var ASRSRqtPutAGV = commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtPutAGV);
+            var ASRSGetAGVDone = commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSGetAGVDone);
+            var ASRSGetGoodsDone = commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSGetGoodsDone);
+            var ASRSPutAGoodsDone = commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSPutAGoodsDone);
+            var ASRSPutAGVDone = commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSPutAGVDone);
             //浠诲姟鏌ヨ鐩殑鍦版壘鍒拌溅
-            if (commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtGetAGV)
-                || commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtGetGoods)
-                || commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtPutGoods)
-               || commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtPutAGV))
+            if (ASRSRqtGetAGV || ASRSRqtGetGoods || ASRSRqtPutGoods || ASRSRqtPutAGV || ASRSGetAGVDone || ASRSGetGoodsDone || ASRSPutAGoodsDone || ASRSPutAGVDone)
             {
                 Dt_Task? task = GetTaskInfo(commonStackerCrane);
                 if (task != null)
                 {
-                    Dt_ShuttleCar? shuttleCar1 = GetShuttleCarInfo(commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtPutGoods) ? task.TargetAddress : task.SourceAddress);
-                    if (shuttleCar1 != null)
+                    if ((task.TaskType == TaskInboundTypeEnum.Inbound.ObjToInt()
+                        || task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
+                       && task.TargetIsPickPlace && ASRSRqtPutGoods)//璇锋眰鏀捐揣
                     {
-                        ShuttleCar shuttleCar = Storage.Devices.FirstOrDefault(x => x.DeviceName == shuttleCar1.ShuttleCarName) as ShuttleCar;
-                        if (shuttleCar != null)
+                        commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPuttGoods, ASRSRqtPutGoods);
+                    }
+                    else if ((task.TaskType == TaskOutboundTypeEnum.Outbound.ObjToInt()
+                        || task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
+                        && ASRSRqtGetGoods && task.SourceIsPickPlace)//璇锋眰鍙栬揣
+                    {
+                        commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetGoods, ASRSRqtGetGoods);
+                    }
+                    else
+                    {
+                        Dt_ShuttleCar? shuttleCar1 = GetShuttleCarInfo(commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtPutGoods) ? task.TargetAddress : task.SourceAddress);
+                        if (shuttleCar1 != null)
                         {
-                            shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtGetAGV, commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtGetAGV), shuttleCar.DeviceCode);
-                            shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtGetGoods, commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtGetGoods), shuttleCar.DeviceCode);
-                            shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtPutGoods, commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtPutGoods), shuttleCar.DeviceCode);
+                            ShuttleCar shuttleCar = Storage.Devices.FirstOrDefault(x => x.DeviceName == shuttleCar1.ShuttleCarName) as ShuttleCar;
+                            if (shuttleCar != null)
+                            {
+                                shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtGetAGV, ASRSRqtGetAGV, shuttleCar.DeviceCode);
+                                shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtGetGoods, ASRSRqtGetGoods, shuttleCar.DeviceCode);
+                                shuttleCar.SetValue(ShuttleCarDBName.ASRSRqtPutGoods, ASRSRqtPutGoods, shuttleCar.DeviceCode);
 
-                            commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetAGV, shuttleCar.GetValue<ShuttleCarDBName, bool>(ShuttleCarDBName.AGVAlwASRSGetAGV, shuttleCar.DeviceCode));
-                            commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetGoods, shuttleCar.GetValue<ShuttleCarDBName, bool>(ShuttleCarDBName.AGVAlwASRSGetGoods, shuttleCar.DeviceCode));
-                            commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPuttGoods, shuttleCar.GetValue<ShuttleCarDBName, bool>(ShuttleCarDBName.AGVAlwASRSPuttGoods, shuttleCar.DeviceCode));
-                            commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPutAGV, commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSRqtPutAGV));
+                                var AGVAlwASRSGetAGV = shuttleCar.GetValue<ShuttleCarDBName, bool>(ShuttleCarDBName.AGVAlwASRSGetAGV, shuttleCar.DeviceCode);//鍏佽鍙栬溅
+                                commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetAGV, AGVAlwASRSGetAGV);
+                                var AGVAlwASRSGetGoods = shuttleCar.GetValue<ShuttleCarDBName, bool>(ShuttleCarDBName.AGVAlwASRSGetGoods, shuttleCar.DeviceCode);//鍏佽鍙栬揣
+                                commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetGoods, AGVAlwASRSGetGoods);
+                                var AGVAlwASRSPuttGoods = shuttleCar.GetValue<ShuttleCarDBName, bool>(ShuttleCarDBName.AGVAlwASRSPuttGoods, shuttleCar.DeviceCode);//鍏佽鏀捐揣
+                                commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPuttGoods, AGVAlwASRSPuttGoods);
+                                commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSPutAGV, ASRSRqtPutAGV);
 
-                            shuttleCar.SetValue(ShuttleCarDBName.ASRSGetAGVDone, commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSGetAGVDone), shuttleCar.DeviceCode);
-                            shuttleCar.SetValue(ShuttleCarDBName.ASRSGetGoodsDone, commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSGetGoodsDone), shuttleCar.DeviceCode);
-                            shuttleCar.SetValue(ShuttleCarDBName.ASRSPutAGoodsDone, commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSPutAGoodsDone), shuttleCar.DeviceCode);
-                            shuttleCar.SetValue(ShuttleCarDBName.ASRSPutAGVDone, commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.ASRSPutAGVDone), shuttleCar.DeviceCode);
+                                shuttleCar.SetValue(ShuttleCarDBName.ASRSGetAGVDone, ASRSGetAGVDone, shuttleCar.DeviceCode);
+                                shuttleCar.SetValue(ShuttleCarDBName.ASRSGetGoodsDone, ASRSGetGoodsDone, shuttleCar.DeviceCode);
+                                shuttleCar.SetValue(ShuttleCarDBName.ASRSPutAGoodsDone, ASRSPutAGoodsDone, shuttleCar.DeviceCode);
+                                shuttleCar.SetValue(ShuttleCarDBName.ASRSPutAGVDone, ASRSPutAGVDone, shuttleCar.DeviceCode);
+                            }
                         }
                     }
                 }

--
Gitblit v1.9.3