| | |
| | | |
| | | #region AGV跨楼å±ä»»å¡ |
| | | var AcrossFloorTasks = _taskRepository.QueryData(x => x.TaskState == (int)TaskAcrossFloorStatusEnum.CarryNew); |
| | | if (AcrossFloorTasks.Count()>0) |
| | | if (AcrossFloorTasks.Count() > 0) |
| | | { |
| | | var task = _taskRepository.QueryFirst(x => x.TaskState > (int)TaskAcrossFloorStatusEnum.CarryNew && x.TaskState < (int)TaskAcrossFloorStatusEnum.EndAddressExecuting); |
| | | if(task == null) |
| | | if (task == null) |
| | | { |
| | | Dt_Task? AcrossFloorTask = null; |
| | | if (AcrossFloorTasks[0].Floor == "2F") |
| | | { |
| | | AcrossFloorTask = AcrossFloorTasks.OrderBy(x => x.Grade).ToList().FirstOrDefault(); |
| | | AcrossFloorTask = AcrossFloorTasks.Where(x => x.DoubleTray != 1).OrderBy(x => x.Grade).ToList().FirstOrDefault(); |
| | | } |
| | | else |
| | | { |
| | | AcrossFloorTask = AcrossFloorTasks.OrderByDescending(x => x.Grade).ToList().FirstOrDefault(); |
| | | AcrossFloorTask = AcrossFloorTasks.Where(x => x.DoubleTray != 1).OrderByDescending(x => x.Grade).ToList().FirstOrDefault(); |
| | | } |
| | | |
| | | |
| | | CommonElevator? elevator = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ1") as CommonElevator; |
| | | if (elevator != null) |
| | | if (AcrossFloorTask != null) |
| | | { |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.Model) == 1) |
| | | CommonElevator? elevator = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ1") as CommonElevator; |
| | | if (elevator != null) |
| | | { |
| | | if (AcrossFloorTask != null) |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.Model) == 1) |
| | | { |
| | | |
| | | if (Relocation(AcrossFloorTask)) |
| | | { |
| | | if (AcrossFloorTask.Floor == "1F") |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | var taskDouble = _taskRepository.QueryData(x => x.TaskState > (int)TaskAcrossFloorStatusEnum.CarryNew && x.TaskState < (int)TaskAcrossFloorStatusEnum.EndAddressExecuting && x.DoubleTray == 1); |
| | | |
| | | if (taskDouble.Count() < 2) |
| | | { |
| | | if (taskDouble.Count == 0) |
| | | { |
| | | Dt_Task? AcrossFloorTask = null; |
| | | if (AcrossFloorTasks.Where(x=>x.DoubleTray==1).FirstOrDefault().Floor == "2F") |
| | | { |
| | | AcrossFloorTask = AcrossFloorTasks.Where(x => x.DoubleTray == 1).OrderBy(x => x.Grade).ToList().FirstOrDefault(); |
| | | } |
| | | else |
| | | { |
| | | AcrossFloorTask = AcrossFloorTasks.Where(x => x.DoubleTray == 1).OrderByDescending(x => x.Grade).ToList().FirstOrDefault(); |
| | | } |
| | | if (AcrossFloorTask != null) |
| | | { |
| | | CommonElevator? elevator = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ1") as CommonElevator; |
| | | if (elevator != null) |
| | | { |
| | | if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.Model) == 1) |
| | | { |
| | | if (AcrossFloorTask != null) |
| | | { |
| | | if (Relocation(AcrossFloorTask)) |
| | | { |
| | | if (AcrossFloorTask.Floor == "1F") |
| | | { |
| | | elevator.SetValue(ElevatorDBName.TaskNum, Convert.ToInt16(AcrossFloorTask.TaskNum)); |
| | | elevator.SetValue(ElevatorDBName.FlagBit, Convert.ToInt16(2)); |
| | | elevator.SetValue(ElevatorDBName.StartFloor, Convert.ToInt16(1)); |
| | | elevator.SetValue(ElevatorDBName.EdnFloor, Convert.ToInt16(2)); |
| | | Thread.Sleep(1000); |
| | | elevator.SetValue(ElevatorDBName.StartCommand, Convert.ToInt16(1)); |
| | | |
| | | _taskService.SendAgvTask("AAA", AcrossFloorTask.TaskNum); |
| | | _taskService.UpdateTaskStatusToNext(AcrossFloorTask.TaskNum); |
| | | } |
| | | else |
| | | { |
| | | elevator.SetValue(ElevatorDBName.TaskNum, Convert.ToInt16(AcrossFloorTask.TaskNum)); |
| | | elevator.SetValue(ElevatorDBName.FlagBit, Convert.ToInt16(2)); |
| | | elevator.SetValue(ElevatorDBName.StartFloor, Convert.ToInt16(2)); |
| | | elevator.SetValue(ElevatorDBName.EdnFloor, Convert.ToInt16(1)); |
| | | Thread.Sleep(1000); |
| | | elevator.SetValue(ElevatorDBName.StartCommand, Convert.ToInt16(1)); |
| | | |
| | | _taskService.SendAgvTask("DDD", AcrossFloorTask.TaskNum); |
| | | _taskService.UpdateTaskStatusToNext(AcrossFloorTask.TaskNum); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var taskSecond = AcrossFloorTasks.Where(x => x.Floor == taskDouble.FirstOrDefault().Floor && x.DoubleTray==1).FirstOrDefault(); |
| | | if (taskSecond != null) |
| | | { |
| | | if (Relocation(taskSecond)) |
| | | { |
| | | if (taskSecond.Floor == "1F") |
| | | { |
| | | _taskService.SendAgvTask("AAA", taskSecond.TaskNum); |
| | | _taskService.UpdateTaskStatusToNext(taskSecond.TaskNum); |
| | | } |
| | | else |
| | | { |
| | | _taskService.SendAgvTask("DDD", taskSecond.TaskNum); |
| | | _taskService.UpdateTaskStatusToNext(taskSecond.TaskNum); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | |