647556386
2 天以前 2f8fc989f339a936b01092caebd4c46e6109da1b
WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/°å²Ä²Ö/RGVJob_BC.cs
@@ -100,37 +100,52 @@
                                    _taskService.TaskCompleted(task.TaskNum);
                                }
                                device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
                                for (int i = 0; i < 3; i++)
                                {
                                    device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
                                    Thread.Sleep(100);
                                }
                            }
                        }
                        WriteDebug("RGV状态读取日志", $"联机?:{device.GetValue<R_ConveyorLineDB, bool>(R_ConveyorLineDB.Online)},空闲?{device.GetValue<R_ConveyorLineDB, bool>(R_ConveyorLineDB.Free)},无货?{!device.GetValue<R_ConveyorLineDB, bool>(R_ConveyorLineDB.Goods)},任务号为0?{device.GetValue<R_ConveyorLineDB, int>(R_ConveyorLineDB.TaskNum) == 0},无故障{!device.GetValue<R_ConveyorLineDB, bool>(R_ConveyorLineDB.Alarm)}");
                        if (device.GetValue<R_ConveyorLineDB, bool>(R_ConveyorLineDB.Online) && device.GetValue<R_ConveyorLineDB, bool>(R_ConveyorLineDB.Free) && !device.GetValue<R_ConveyorLineDB, bool>(R_ConveyorLineDB.Goods) && device.GetValue<R_ConveyorLineDB, int>(R_ConveyorLineDB.TaskNum) == 0 && !device.GetValue<R_ConveyorLineDB, bool>(R_ConveyorLineDB.Alarm))
                        {
                            Dt_Task task = _taskRepository.QueryFirst(x => x.TaskType >= TaskTypeEnum.Inbound.ObjToInt() && x.TaskState == TaskStatusEnum.RGV_NEW.ObjToInt());
                            if (task != null)
                            {
                                //写入RGV任务
                                device.SetValue(W_ConveyorLineDB.TaskNo, task.TaskNum, item.StationCode);
                                device.SetValue(W_ConveyorLineDB.StartPos, task.SourceAddress, item.StationCode);
                                device.SetValue(W_ConveyorLineDB.TaskType, 2, item.StationCode);
                                device.SetValue(W_ConveyorLineDB.EndPos, task.NextAddress, item.StationCode);
                                device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode);
                                _taskService.UpdateTask(task, TaskStatusEnum.RGV_Executing);
                                //写入RGV入库任务
                                for (int i = 0; i < 3; i++)
                                {
                                    device.SetValue(W_ConveyorLineDB.TaskNo, task.TaskNum, item.StationCode);
                                    device.SetValue(W_ConveyorLineDB.StartPos, task.SourceAddress, item.StationCode);
                                    device.SetValue(W_ConveyorLineDB.TaskType, 2, item.StationCode);
                                    device.SetValue(W_ConveyorLineDB.EndPos, task.NextAddress, item.StationCode);
                                    device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode);
                                    _taskService.UpdateTask(task, TaskStatusEnum.RGV_Executing);
                                }
                                WriteDebug(device.DeviceName, $"入库RGV任务号{task.TaskNum}已写入");
                            }
                            Dt_Task task1 = _taskRepository.QueryFirst(x => x.TaskType >= TaskTypeEnum.Outbound.ObjToInt()&&  x.TaskType <= TaskTypeEnum.Inbound.ObjToInt() && x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt());
                            if (task1 != null)
                            else
                            {
                                //写入RGV任务
                                device.SetValue(W_ConveyorLineDB.TaskNo, task1.TaskNum, item.StationCode);
                                device.SetValue(W_ConveyorLineDB.StartPos, task1.SourceAddress, item.StationCode);
                                device.SetValue(W_ConveyorLineDB.TaskType, 2, item.StationCode);
                                device.SetValue(W_ConveyorLineDB.EndPos, task1.NextAddress, item.StationCode);
                                device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode);
                                _taskService.UpdateTask(task1, TaskStatusEnum.RGV_Executing);
                                WriteDebug(device.DeviceName, $"出库RGV任务号{task1.TaskNum}已写入");
                                Dt_Task task1 = _taskRepository.QueryFirst(x => x.TaskType >= TaskTypeEnum.Outbound.ObjToInt() && x.TaskType <= TaskTypeEnum.Inbound.ObjToInt() && x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt());
                                //写入RGV出库任务
                                if (task1 != null)
                                {
                                    for (int i = 0; i < 3; i++)
                                    {
                                        device.SetValue(W_ConveyorLineDB.TaskNo, task1.TaskNum, item.StationCode);
                                        device.SetValue(W_ConveyorLineDB.StartPos, task1.SourceAddress, item.StationCode);
                                        device.SetValue(W_ConveyorLineDB.TaskType, 2, item.StationCode);
                                        device.SetValue(W_ConveyorLineDB.EndPos, task1.NextAddress, item.StationCode);
                                        device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode);
                                    }
                                    _taskService.UpdateTask(task1, TaskStatusEnum.RGV_Executing);
                                    WriteDebug(device.DeviceName, $"出库RGV任务号{task1.TaskNum}已写入");
                                }
                            }
                        }
                        if (device.GetValue<R_ConveyorLineDB, bool>(R_ConveyorLineDB.ACK))