dengjunjie
6 天以前 fd073a00f6813eada92b08f1884b115295ac1177
项目代码/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,67 @@
        /// <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 ((_taskService.TaskInboundTypes.Contains(task.TaskType)
                        || 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 ((_taskService.TaskOutboundTypes.Contains(task.TaskType)
                        || task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
                        && ASRSRqtGetGoods && task.SourceIsPickPlace)//璇锋眰鍙栬揣
                    {
                        commonStackerCrane.SetValue(StackerCraneDBName.AGVAlwASRSGetGoods, ASRSRqtGetGoods);
                    }
                    else if (_taskService.TaskOutboundTypes.Contains(task.TaskType) && ASRSPutAGoodsDone)
                    {
                    }
                    else
                    {
                        Dt_ShuttleCar? shuttleCar1 = _shuttleCarService.QueryCode(task.ShuttleCarCode);
                        if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt() && task.Remark == "")
                        {
                            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);
                            shuttleCar1 = _shuttleCarService.QueryNoCode(task.ShuttleCarCode);
                            task.Remark = shuttleCar1.ShuttleCarCode;
                            _taskService.UpdateData(task);
                        }
                        if (shuttleCar1 != null)
                        {
                            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);
                            }
                        }
                    }
                }