dengjunjie
6 天以前 3b7569285434bb38736627821f7d7eb34fabca28
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TestJob.cs
@@ -12,6 +12,7 @@
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.LocationEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_Core.Helper;
@@ -50,9 +51,9 @@
                // _taskService.Repository ä»“储层,进行数据库访问-
                try
                {
                    #region å››å‘车任务
                    List<Dt_Task> Uptasks = new List<Dt_Task>();
                    var taskList = _taskService.Repository.QueryData(x => x.TaskType == TaskTypeEnum.CPInbound.ObjToInt() && x.TaskState == TaskStatusEnum.CheckShapeing.ObjToInt());
                    var AGVtaskList = _taskService.Repository.QueryData(x => x.TaskState == TaskStatusEnum.AGV_WaitToExecute.ObjToInt()&& (x.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || x.TaskType == TaskTypeEnum.Q3CK.ObjToInt()));//1-6和6-1楼任务
                    //任务的目标地址对于站台号;
                    foreach (var task in taskList)
                    {
@@ -103,19 +104,57 @@
                            Uptasks.Add(task);
                        }
                    }
                    #endregion
                    var AGVtaskList = _taskService.Repository.QueryData(x => x.TaskState == TaskStatusEnum.AGV_WaitToExecute.ObjToInt() && (x.TaskType == TaskTypeEnum.Q3RK.ObjToInt() || x.TaskType == TaskTypeEnum.Q3CK.ObjToInt()));//1-6和6-1楼任务
                    foreach (var item in AGVtaskList)
                    {
                        if (device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, item.SourceAddress))
                        var address = item.TaskType == TaskTypeEnum.Q3RK.ObjToInt() ? item.TargetAddress : item.SourceAddress;
                        var stationManger = _stationMangerService.Repository.QueryFirst(x => x.StationCode == address);
                        if (stationManger == null)
                        {
                            item.ExceptionMessage = $"{item.SourceAddress}站台有货,无法进入";
                            item.ExceptionMessage = $"未找到【{address}】站台信息";
                            Uptasks.Add(item);
                            continue;
                        }
                        //into进入一楼位置的时候,写入进入信号
                        device.SetValue(QualityInspectionCommandEnum.RequestToEnter, true, item.SourceAddress);
                        if (!device.GetValue<QualityInspectionCommandEnum,bool>(QualityInspectionCommandEnum.Blocking)==true)
                        var StockAvailableSymbol = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, address);
                        if (item.TaskType == TaskTypeEnum.Q3RK.ObjToInt())
                        {
                            item.ExceptionMessage = $"{item.TargetAddress}站台光栅不为true(1)!";
                            if (StockAvailableSymbol)
                            {
                                item.ExceptionMessage = $"{address}站台光电检测有货!";
                                Uptasks.Add(item);
                                continue;
                            }
                            if (stationManger.IsOccupied == (int)LocationStatusEnum.Lock)
                            {
                                item.ExceptionMessage = $"站台有货!";
                                Uptasks.Add(item);
                                continue;
                            }
                        }
                        else
                        {
                            if (!StockAvailableSymbol)
                            {
                                item.ExceptionMessage = $"{address}站台光电检测无货!";
                                Uptasks.Add(item);
                                continue;
                            }
                            if (stationManger.IsOccupied == (int)LocationStatusEnum.Free)
                            {
                                item.ExceptionMessage = $"站台无货!";
                                Uptasks.Add(item);
                                continue;
                            }
                        }
                        //into进入一楼位置的时候,写入进入信号
                        device.SetValue(QualityInspectionCommandEnum.RequestToEnter, true, address);
                        if (!device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.Blocking, address))
                        {
                            item.ExceptionMessage = $"{address}站台光栅不为true(1)!";
                            Uptasks.Add(item);
                            continue;
                        }
                        var result = _taskService.Hikvisiontaskscontinue(item.WMSTaskNum);
                        if (result.Status == false)
@@ -130,15 +169,12 @@
                        item.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
                        item.ExceptionMessage = "";
                        Uptasks.Add(item);
                    }
                    _taskService.UpdateData(Uptasks);
                    WriteInfo(device.DeviceName, "infoLog");
                    //WriteInfo(device.DeviceName, "infoLog");
                    WriteDebug(device.DeviceName, "debugLog");
                    //WriteDebug(device.DeviceName, "debugLog");
                }
                catch (Exception ex)
                {
@@ -149,8 +185,6 @@
            {
                WriteError(nameof(TestJob), "参数错误,未传递设备参数或设备类型错误");
            }
            return Task.CompletedTask;
        }
    }