| | |
| | | } |
| | | if (FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.Running)) |
| | | { |
| | | Dt_Task? task = GetTask(FirstRgv, FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.InStock)); |
| | | if (task != null) |
| | | if (FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.InStock)) |
| | | { |
| | | var IsExecutingTask = DispatchExecutingTask(FirstRgv, task); |
| | | if (IsExecutingTask != null) |
| | | Dt_Task? task = GetTask(FirstRgv, FirstRgv.GetValue<RGVDBName, bool>(RGVDBName.InStock)); |
| | | if (task != null) |
| | | { |
| | | RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(IsExecutingTask); |
| | | if (rgvTaskCommand != null) |
| | | var IsExecutingTask = DispatchExecutingTask(FirstRgv, task); |
| | | if (IsExecutingTask != null) |
| | | { |
| | | Thread.Sleep(1000); |
| | | bool sendFlag = SendCommand(FirstRgv, rgvTaskCommand); |
| | | if (sendFlag) |
| | | RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(IsExecutingTask); |
| | | if (rgvTaskCommand != null) |
| | | { |
| | | if (IsExecutingTask.Remark != null) |
| | | Thread.Sleep(1000); |
| | | bool sendFlag = SendCommand(FirstRgv, rgvTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | | IsExecutingTask.RGVName = "RGV02"; |
| | | IsExecutingTask.CurrentAddress = IsExecutingTask.Remark; |
| | | IsExecutingTask.Remark = ""; |
| | | Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == IsExecutingTask.NextAddress); |
| | | IsExecutingTask.SourceStation = IsExecutingTask.CurrentAddress=="1025"?10:7; |
| | | if (IsExecutingTask.TaskType == (int)TaskInboundTypeEnum.Inbound) |
| | | if (IsExecutingTask.Remark != null) |
| | | { |
| | | IsExecutingTask.TargetStation = station.stationRemark; |
| | | IsExecutingTask.RGVName = "RGV02"; |
| | | IsExecutingTask.CurrentAddress = IsExecutingTask.Remark; |
| | | IsExecutingTask.Remark = ""; |
| | | Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == IsExecutingTask.NextAddress); |
| | | IsExecutingTask.SourceStation = IsExecutingTask.CurrentAddress == "1025" ? 10 : 7; |
| | | if (IsExecutingTask.TaskType == (int)TaskInboundTypeEnum.Inbound) |
| | | { |
| | | IsExecutingTask.TargetStation = station.stationRemark; |
| | | } |
| | | else |
| | | { |
| | | IsExecutingTask.TargetStation = station.remark; |
| | | } |
| | | IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer; |
| | | _taskRepository.UpdateData(IsExecutingTask); |
| | | Thread.Sleep(1000); |
| | | } |
| | | else |
| | | { |
| | | IsExecutingTask.TargetStation = station.remark; |
| | | IsExecutingTask.RGVName = FirstRgv.DeviceCode; |
| | | _taskRepository.UpdateData(IsExecutingTask); |
| | | _taskService.UpdateTaskStatusToNext(IsExecutingTask.TaskNum); |
| | | Thread.Sleep(1000); |
| | | } |
| | | IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer; |
| | | _taskRepository.UpdateData(IsExecutingTask); |
| | | Thread.Sleep(1000); |
| | | } |
| | | else |
| | | { |
| | | IsExecutingTask.RGVName = FirstRgv.DeviceCode; |
| | | _taskRepository.UpdateData(IsExecutingTask); |
| | | _taskService.UpdateTaskStatusToNext(IsExecutingTask.TaskNum); |
| | | Thread.Sleep(1000); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | if (SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.Running)) |
| | | { |
| | | Dt_Task? task = GetTask(SecondRgv, SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.InStock)); |
| | | if (task != null) |
| | | if (SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.InStock)) |
| | | { |
| | | var IsExecutingTask = DispatchExecutingTask(SecondRgv, task); |
| | | if (IsExecutingTask != null) |
| | | Dt_Task? task = GetTask(SecondRgv, SecondRgv.GetValue<RGVDBName, bool>(RGVDBName.InStock)); |
| | | if (task != null) |
| | | { |
| | | RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(IsExecutingTask); |
| | | if (rgvTaskCommand != null) |
| | | var IsExecutingTask = DispatchExecutingTask(SecondRgv, task); |
| | | if (IsExecutingTask != null) |
| | | { |
| | | Thread.Sleep(1000); |
| | | bool sendFlag = SendCommand(SecondRgv, rgvTaskCommand); |
| | | if (sendFlag) |
| | | RGVTaskCommand? rgvTaskCommand = ConvertToRGVTaskCommand(IsExecutingTask); |
| | | if (rgvTaskCommand != null) |
| | | { |
| | | if (IsExecutingTask.Remark != null) |
| | | Thread.Sleep(1000); |
| | | bool sendFlag = SendCommand(SecondRgv, rgvTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | | IsExecutingTask.RGVName = "RGV01"; |
| | | IsExecutingTask.CurrentAddress = IsExecutingTask.Remark; |
| | | IsExecutingTask.Remark = ""; |
| | | IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer; |
| | | _taskRepository.UpdateData(IsExecutingTask); |
| | | Thread.Sleep(1000); |
| | | } |
| | | else |
| | | { |
| | | IsExecutingTask.RGVName = SecondRgv.DeviceCode; |
| | | _taskRepository.UpdateData(IsExecutingTask); |
| | | _taskService.UpdateTaskStatusToNext(IsExecutingTask.TaskNum); |
| | | Thread.Sleep(1000); |
| | | if (IsExecutingTask.Remark != null) |
| | | { |
| | | IsExecutingTask.RGVName = "RGV01"; |
| | | IsExecutingTask.CurrentAddress = IsExecutingTask.Remark; |
| | | IsExecutingTask.Remark = ""; |
| | | IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer; |
| | | Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == IsExecutingTask.NextAddress); |
| | | IsExecutingTask.SourceStation = IsExecutingTask.CurrentAddress == "1025" ? 10 : 7; |
| | | if (IsExecutingTask.TaskType == (int)TaskInboundTypeEnum.Inbound) |
| | | { |
| | | IsExecutingTask.TargetStation = station.stationRemark; |
| | | } |
| | | else |
| | | { |
| | | IsExecutingTask.TargetStation = station.remark; |
| | | } |
| | | |
| | | _taskRepository.UpdateData(IsExecutingTask); |
| | | Thread.Sleep(1000); |
| | | } |
| | | else |
| | | { |
| | | IsExecutingTask.RGVName = SecondRgv.DeviceCode; |
| | | _taskRepository.UpdateData(IsExecutingTask); |
| | | _taskService.UpdateTaskStatusToNext(IsExecutingTask.TaskNum); |
| | | Thread.Sleep(1000); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)) |
| | | { |
| | | |
| | | var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState < 230) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound))); |
| | | if (taskSecond != null) |
| | | { |
| | |
| | | { |
| | | if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) |
| | | { |
| | | if (task.TargetStation- taskSecond.SourceStation > 1 && task.TargetStation - taskSecond.TargetStation > 1) |
| | | if (task.TargetStation - taskSecond.SourceStation > 1 && task.TargetStation - taskSecond.TargetStation > 1) |
| | | { |
| | | LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGV.DeviceCode}工使¨¡å¼ï¼ã{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVSecond.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskSecond)}ã{commonRGVSecond.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | |
| | | Thread.Sleep(1000); |
| | | |
| | | if (task.Remark != null) |
| | | { |
| | | return GetDispatchExecutingTask(taskSecond); |
| | | return GetDispatchExecutingTask(task); |
| | | } |
| | | |
| | | return task; |
| | |
| | | Thread.Sleep(1000); |
| | | if (task.Remark != null) |
| | | { |
| | | return GetDispatchExecutingTask(taskSecond); |
| | | return GetDispatchExecutingTask(task); |
| | | } |
| | | return task; |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | if (commonRGVSecond.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.WorkCompleted)) |
| | | { |
| | | RGVTaskFinish(commonRGVSecond, commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); |
| | | } |
| | | if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000) |
| | | { |
| | | RGVTaskCommand command = new RGVTaskCommand() |
| | | { |
| | | PickupLocation = (byte)Convert.ToSByte(15), |
| | | TaskNum = Convert.ToInt16(1000), |
| | | TaskNum = Convert.ToInt16(1), |
| | | TaskType = (byte)Convert.ToSByte(1) |
| | | }; |
| | | SendCommand(commonRGVSecond, command); |
| | | Thread.Sleep(1000); |
| | | if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)) |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGV.DeviceCode}工使¨¡å¼ï¼ã{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVSecond.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskSecond)}ã{commonRGVSecond.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return task; |
| | | } |
| | |
| | | CommonRGV_FirstFloor? commonRGVFirst = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "RGV01") as CommonRGV_FirstFloor; |
| | | if (commonRGVFirst != null) |
| | | { |
| | | |
| | | if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)) |
| | | { |
| | | var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)&&((x.TaskType==(int)TaskInboundTypeEnum.Inbound&&x.TaskState<230)||(x.TaskType == (int)TaskOutboundTypeEnum.Outbound))); |
| | | var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState < 230) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound))); |
| | | if (taskSecond != null) |
| | | { |
| | | |
| | | if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_Indispatch || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) |
| | | { |
| | | if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) |
| | |
| | | |
| | | if (task.Remark != null) |
| | | { |
| | | return GetDispatchExecutingTask(taskSecond); |
| | | return GetDispatchExecutingTask(task); |
| | | } |
| | | return task; |
| | | } |
| | |
| | | |
| | | if (task.Remark != null) |
| | | { |
| | | return GetDispatchExecutingTask(taskSecond); |
| | | return GetDispatchExecutingTask(task); |
| | | } |
| | | return task; |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | if (commonRGVFirst.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.WorkCompleted)) |
| | | { |
| | | RGVTaskFinish(commonRGVFirst, commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); |
| | | } |
| | | if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000) |
| | | { |
| | | RGVTaskCommand command = new RGVTaskCommand() |
| | | { |
| | | PickupLocation = (byte)Convert.ToSByte(26), |
| | | TaskNum = Convert.ToInt16(1000), |
| | | TaskNum = Convert.ToInt16(1), |
| | | TaskType = (byte)Convert.ToSByte(1) |
| | | }; |
| | | SendCommand(commonRGVFirst, command); |
| | | Thread.Sleep(1000); |
| | | if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)) |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGV.DeviceCode}工使¨¡å¼ï¼ã{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVFirst.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskSecond)}ã{commonRGVFirst.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return task; |
| | | } |
| | |
| | | { |
| | | if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)) |
| | | { |
| | | var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); |
| | | var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState < 230) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound))); |
| | | if (taskSecond != null) |
| | | { |
| | | #region |
| | | //if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) |
| | | //{ |
| | | |
| | | // //task = tasks.FirstOrDefault(x =>(x.SourceStation- taskSecond.TargetStation > 1 && x.SourceStation - taskSecond.SourceStation > 1&&x.TaskType==(int)TaskInboundTypeEnum.Inbound) ||(x.SourceStation - taskSecond.TargetStation > 1 && x.TargetStation - taskSecond.SourceStation > 1 && x.SourceStation - taskSecond.SourceStation > 1 && x.TargetStation - taskSecond.TargetStation > 1&&x.TaskType== (int)TaskOutboundTypeEnum.Outbound)); |
| | | // //if (task == null) |
| | | // //{ |
| | | // // task = tasks.FirstOrDefault(x => (x.SourceStation - taskSecond.TargetStation > 1 && x.SourceStation - taskSecond.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - taskSecond.TargetStation > 1 && x.TargetStation - taskSecond.SourceStation > 1 && x.SourceStation - taskSecond.SourceStation > 1 && x.TargetStation - taskSecond.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound)); |
| | | // //} |
| | | |
| | | // task = GetDispatchTask(tasks, taskSecond); |
| | | |
| | | // LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVSecond.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskSecond)}ã{commonRGVSecond.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | |
| | | // Thread.Sleep(1000); |
| | | // return task; |
| | | //} |
| | | //else if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InExecuting) |
| | | //{ |
| | | // task = tasks.FirstOrDefault(x => x.SourceStation - taskSecond.TargetStation> 1 &&x.TargetStation - taskSecond.TargetStation > 1); |
| | | |
| | | // LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGV.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVSecond.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskSecond)}ã{commonRGVSecond.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | // Thread.Sleep(1000); |
| | | // return task; |
| | | //} |
| | | //return null; |
| | | #endregion |
| | | |
| | | task = GetDispatchTask(tasks, taskSecond); |
| | | |
| | | LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGV.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVSecond.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskSecond)}ã{commonRGVSecond.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGV.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVSecond.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskSecond)}ã{commonRGVSecond.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | |
| | | return task; |
| | | } |
| | | else |
| | | } |
| | | var taskNews = tasks.Where(x => (x.TaskType == (int)TaskInboundTypeEnum.Inbound && Convert.ToInt32(x.SourceAddress) < 1015) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound && (x.Roadway == "SC01" || x.Roadway == "SC02" || x.Roadway == "SC03")) || x.RGVName == "RGV01").ToList(); |
| | | if (taskNews.Count == 0) |
| | | { |
| | | return null; |
| | | } |
| | | if (commonRGVSecond.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.WorkCompleted)) |
| | | { |
| | | RGVTaskFinish(commonRGVSecond, commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); |
| | | } |
| | | if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000) |
| | | { |
| | | RGVTaskCommand command = new RGVTaskCommand() |
| | | { |
| | | var taskNews = tasks.Where(x => (x.TaskType == (int)TaskInboundTypeEnum.Inbound && Convert.ToInt32(x.SourceAddress) < 1015) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound && (x.Roadway == "SC01" || x.Roadway == "SC02" || x.Roadway == "SC03"))||x.RGVName=="RGV01").ToList(); |
| | | if (taskNews.Count== 0) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000) |
| | | { |
| | | RGVTaskCommand command = new RGVTaskCommand() |
| | | { |
| | | PickupLocation = (byte)Convert.ToSByte(15), |
| | | TaskNum = Convert.ToInt16(1000), |
| | | TaskType = (byte)Convert.ToSByte(1) |
| | | }; |
| | | SendCommand(commonRGVSecond, command); |
| | | } |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return taskNews.FirstOrDefault(x => x.RGVName == "RGV01"); |
| | | } |
| | | else |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV02").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return taskNews.FirstOrDefault(x => x.RGVName != "RGV02"); |
| | | } |
| | | PickupLocation = (byte)Convert.ToSByte(15), |
| | | TaskNum = Convert.ToInt16(1), |
| | | TaskType = (byte)Convert.ToSByte(1) |
| | | }; |
| | | SendCommand(commonRGVSecond, command); |
| | | Thread.Sleep(1000); |
| | | if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)) |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return taskNews.FirstOrDefault(x => x.RGVName == "RGV01"); |
| | | } |
| | | else |
| | | { |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName == "RGV01"); |
| | | } |
| | | else |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV02").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName != "RGV02"); |
| | | } |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName != "RGV02").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return taskNews.FirstOrDefault(x => x.RGVName != "RGV02"); |
| | | } |
| | | } |
| | | else |
| | |
| | | { |
| | | if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)) |
| | | { |
| | | var taskFirst = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); |
| | | |
| | | var taskFirst = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState < 230) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound))); |
| | | if (taskFirst != null) |
| | | { |
| | | #region |
| | | //if (taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) |
| | | //{ |
| | | |
| | | // //task = tasks.FirstOrDefault(x => (x.SourceStation - taskFirst.TargetStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - taskFirst.TargetStation > 1 && x.TargetStation - taskFirst.SourceStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TargetStation - taskFirst.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound)); |
| | | |
| | | // task = GetDispatchTask(tasks, taskFirst); |
| | | |
| | | // LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVFirst.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskFirst)}ã{commonRGVFirst.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | // Thread.Sleep(1000); |
| | | |
| | | // return task; |
| | | //} |
| | | //else if (taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_InExecuting) |
| | | //{ |
| | | // task = tasks.FirstOrDefault(x => taskFirst.TargetStation - x.SourceStation > 1 && taskFirst.TargetStation - x.TargetStation > 1); |
| | | |
| | | // LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVFirst.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskFirst)}ã{commonRGVFirst.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | // Thread.Sleep(1000); |
| | | // return task; |
| | | //} |
| | | //return null; |
| | | #endregion |
| | | |
| | | task = GetDispatchTask(tasks, taskFirst); |
| | | |
| | | LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVFirst.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskFirst)}ã{commonRGVFirst.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | |
| | | |
| | | return task; |
| | | } |
| | | else |
| | | |
| | | } |
| | | var taskNews = tasks.Where(x => (x.TaskType == (int)TaskInboundTypeEnum.Inbound && Convert.ToInt32(x.SourceAddress) > 1014) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound && (x.Roadway == "SC04" || x.Roadway == "SC05" || x.Roadway == "SC06")) || x.RGVName == "RGV02").ToList(); |
| | | if (taskNews.Count == 0) |
| | | { |
| | | return null; |
| | | } |
| | | if (commonRGVFirst.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.WorkCompleted)) |
| | | { |
| | | RGVTaskFinish(commonRGVFirst, commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); |
| | | } |
| | | if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000) |
| | | { |
| | | RGVTaskCommand command = new RGVTaskCommand() |
| | | { |
| | | var taskNews = tasks.Where(x => (x.TaskType == (int)TaskInboundTypeEnum.Inbound && Convert.ToInt32(x.SourceAddress) > 1015) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound && (x.Roadway == "SC04" || x.Roadway == "SC05" || x.Roadway == "SC06"))||x.RGVName=="RGV02").ToList(); |
| | | if (taskNews.Count == 0) |
| | | { |
| | | return null; |
| | | } |
| | | if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000) |
| | | { |
| | | RGVTaskCommand command = new RGVTaskCommand() |
| | | { |
| | | PickupLocation = (byte)Convert.ToSByte(26), |
| | | TaskNum = Convert.ToInt16(1000), |
| | | TaskType = (byte)Convert.ToSByte(1) |
| | | }; |
| | | SendCommand(commonRGVFirst, command); |
| | | } |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}ãã"); |
| | | |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName == "RGV02"); |
| | | } |
| | | else |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV01").TaskNum)}ãã"); |
| | | |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName != "RGV01"); |
| | | } |
| | | PickupLocation = (byte)Convert.ToSByte(26), |
| | | TaskNum = Convert.ToInt16(1), |
| | | TaskType = (byte)Convert.ToSByte(1) |
| | | }; |
| | | SendCommand(commonRGVFirst, command); |
| | | Thread.Sleep(1000); |
| | | if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)) |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return taskNews.FirstOrDefault(x => x.RGVName == "RGV02"); |
| | | } |
| | | else |
| | | { |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName == "RGV02"); |
| | | } |
| | | else |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV01").TaskNum)}ãã"); |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName != "RGV01").TaskNum)}ãã"); |
| | | |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName != "RGV01"); |
| | | } |
| | | Thread.Sleep(1000); |
| | | return taskNews.FirstOrDefault(x => x.RGVName != "RGV01"); |
| | | } |
| | | } |
| | | else |
| | |
| | | { |
| | | try |
| | | { |
| | | var tasks = _taskRepository.QueryData(x=>x.TaskState==(int)TaskInStatusEnum.RGV_TransFerFInish|| x.TaskState == (int)TaskOutStatusEnum.RGV_TransFerFInish); |
| | | var tasks = _taskRepository.QueryData(x => x.Floor == "1F" && (x.TaskState == (int)TaskInStatusEnum.RGV_TransFerFInish || x.TaskState == (int)TaskOutStatusEnum.RGV_TransFerFInish)); |
| | | Dt_Task task; |
| | | if (tasks.Count() == 0) |
| | | { |
| | |
| | | { |
| | | if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)) |
| | | { |
| | | var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); |
| | | |
| | | var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState < 230) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound))); |
| | | if (taskSecond != null) |
| | | { |
| | | if (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) |
| | | { |
| | | task = tasks.FirstOrDefault(x => ((x.SourceStation - taskSecond.TargetStation > 1 && x.SourceStation - taskSecond.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - taskSecond.TargetStation > 1 && x.TargetStation - taskSecond.SourceStation > 1 && x.SourceStation - taskSecond.SourceStation > 1 && x.TargetStation - taskSecond.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound))&&x.RGVName=="RGV01"); |
| | | task = tasks.FirstOrDefault(x => ((x.SourceStation - taskSecond.TargetStation > 1 && x.SourceStation - taskSecond.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - taskSecond.TargetStation > 1 && x.TargetStation - taskSecond.SourceStation > 1 && x.SourceStation - taskSecond.SourceStation > 1 && x.TargetStation - taskSecond.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound)) && x.RGVName == "RGV01"); |
| | | |
| | | |
| | | LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVSecond.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskSecond)}ã{commonRGVSecond.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | LogAndWarn("ä¸è½¬è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVSecond.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskSecond)}ã{commonRGVSecond.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | |
| | | Thread.Sleep(1000); |
| | | return task; |
| | |
| | | { |
| | | task = tasks.FirstOrDefault(x => x.SourceStation - taskSecond.TargetStation > 1 && x.TargetStation - taskSecond.TargetStation > 1 && x.RGVName == "RGV01"); |
| | | |
| | | LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGV.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVSecond.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskSecond)}ã{commonRGVSecond.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | LogAndWarn("ä¸è½¬è°åº¦ä»»å¡æ§å¶", $"ã{commonRGV.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVSecond.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskSecond)}ã{commonRGVSecond.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return task; |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | if (commonRGVSecond.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.WorkCompleted)) |
| | | { |
| | | RGVTaskFinish(commonRGVSecond, commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); |
| | | } |
| | | if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000) |
| | | { |
| | | RGVTaskCommand command = new RGVTaskCommand() |
| | | { |
| | | PickupLocation = (byte)Convert.ToSByte(15), |
| | | TaskNum = Convert.ToInt16(1000), |
| | | TaskNum = Convert.ToInt16(1), |
| | | TaskType = (byte)Convert.ToSByte(1) |
| | | }; |
| | | SendCommand(commonRGVSecond, command); |
| | | Thread.Sleep(1000); |
| | | if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)) |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}ãã"); |
| | | LogAndWarn("ä¸è½¬è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName == "RGV01"); |
| | | } |
| | |
| | | { |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}ãã"); |
| | | LogAndWarn("ä¸è½¬è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVSecond.DeviceCode}工使¨¡å¼ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName == "RGV01"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ãæªæ¾å°RGV02设å¤ä¿¡æ¯ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}ãã"); |
| | | LogAndWarn("ä¸è½¬è°åº¦ä»»å¡æ§å¶", $"ãæªæ¾å°RGV02设å¤ä¿¡æ¯ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName == "RGV01"); |
| | | } |
| | |
| | | { |
| | | if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)) |
| | | { |
| | | var taskFirst = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); |
| | | |
| | | var taskFirst = _taskRepository.QueryFirst(x => x.RGVName == "RGV01" && x.TaskNum == commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState < 230) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound))); |
| | | if (taskFirst != null) |
| | | { |
| | | if (taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) |
| | | { |
| | | |
| | | task = tasks.FirstOrDefault(x => ((x.SourceStation - taskFirst.TargetStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - taskFirst.TargetStation > 1 && x.TargetStation - taskFirst.SourceStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TargetStation - taskFirst.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound))&&x.RGVName=="RGV02"); |
| | | task = tasks.FirstOrDefault(x => ((x.SourceStation - taskFirst.TargetStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - taskFirst.TargetStation > 1 && x.TargetStation - taskFirst.SourceStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TargetStation - taskFirst.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound)) && x.RGVName == "RGV02"); |
| | | |
| | | task = GetDispatchTask(tasks, taskFirst); |
| | | |
| | | LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVFirst.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskFirst)}ã{commonRGVFirst.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | LogAndWarn("ä¸è½¬è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVFirst.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskFirst)}ã{commonRGVFirst.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | |
| | | return task; |
| | |
| | | { |
| | | task = tasks.FirstOrDefault(x => taskFirst.TargetStation - x.SourceStation > 1 && taskFirst.TargetStation - x.TargetStation > 1 && x.RGVName == "RGV02"); |
| | | |
| | | LogAndWarn("æ§è¡è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVFirst.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskFirst)}ã{commonRGVFirst.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | LogAndWarn("ä¸è½¬è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãã{commonRGVFirst.DeviceCode}ãä»»å¡ã{JsonConvert.SerializeObject(taskFirst)}ã{commonRGVFirst.DeviceCode}è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(task.TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return task; |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | if (commonRGVFirst.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.WorkCompleted)) |
| | | { |
| | | RGVTaskFinish(commonRGVFirst, commonRGVFirst.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum)); |
| | | } |
| | | if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000) |
| | | { |
| | | RGVTaskCommand command = new RGVTaskCommand() |
| | | { |
| | | PickupLocation = (byte)Convert.ToSByte(26), |
| | | TaskNum = Convert.ToInt16(1000), |
| | | TaskNum = Convert.ToInt16(1), |
| | | TaskType = (byte)Convert.ToSByte(1) |
| | | }; |
| | | SendCommand(commonRGVFirst, command); |
| | | Thread.Sleep(1000); |
| | | if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)) |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}ãã"); |
| | | LogAndWarn("ä¸è½¬è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}ãã"); |
| | | |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName == "RGV02"); |
| | |
| | | { |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}ãã"); |
| | | LogAndWarn("ä¸è½¬è°åº¦ä»»å¡æ§å¶", $"ã{commonRGVFirst.DeviceCode}工使¨¡å¼ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}ãä½ä¸ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}ã设å¤ç¶æï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}ãæ¯å¦æè´§ï¼ã{commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}ãè¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}ãã"); |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName == "RGV02"); |
| | | } |
| | |
| | | { |
| | | if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null) |
| | | { |
| | | LogAndWarn("è°åº¦ä»»å¡æ§å¶", $"ãæªæ¾å°RGV01设å¤ä¿¡æ¯ã è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}ãã"); |
| | | LogAndWarn("ä¸è½¬è°åº¦ä»»å¡æ§å¶", $"ãæªæ¾å°RGV01设å¤ä¿¡æ¯ã è¿åä»»å¡ï¼ã{JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}ãã"); |
| | | |
| | | Thread.Sleep(1000); |
| | | return tasks.FirstOrDefault(x => x.RGVName == "RGV02"); |
| | |
| | | |
| | | string Barcode = Encoding.UTF8.GetString(x); |
| | | |
| | | if (Barcode == null || Barcode == "" || Barcode.Trim().Contains("\0")) |
| | | short y = conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.InteractiveSignal, stationManager.stationChildCode); |
| | | var structs = BitConverter.GetBytes(y).ToArray().ToBoolArray(); |
| | | |
| | | if (Barcode == null || Barcode == "" || Barcode.Trim().Contains("\0")|| structs[5]) |
| | | { |
| | | WriteInfo("å
¥åºå¼å¸¸ä¿¡æ¯", $"æçå·ã{Barcode}ãæ£å°ºã{structs[5]}ãä»»å¡å·ã{TaskNum}ã"); |
| | | commonRGV.SetValue(StackerCraneDBName.PutcargoLocation, Convert.ToSByte(stationManager.stationRemark)); |
| | | commonRGV.SetValue(StackerCraneDBName.TaskNum, Convert.ToInt16(task.TaskNum)); |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(4)); |
| | |
| | | Thread.Sleep(100); |
| | | conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, Convert.ToInt16(stationManager.stationNextChildCode), stationManager.stationChildCode); |
| | | Thread.Sleep(100); |
| | | conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTaskNum, Convert.ToInt16(1000), stationManager.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTaskNum, Convert.ToInt16(1), stationManager.stationChildCode); |
| | | Thread.Sleep(100); |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(2), stationManager.stationChildCode); |
| | | } |
| | |
| | | |
| | | public Dt_Task? GetDispatchTask(List<Dt_Task> tasks, Dt_Task oldtask) |
| | | { |
| | | Dt_Task y = tasks.Where(x => x.Remark != null && ((x.SourceStation - oldtask.TargetStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.SourceStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TargetStation - oldtask.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound))).First(); |
| | | Dt_Task y = tasks.Where(x => x.Remark != null && ((x.SourceStation - oldtask.TargetStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.SourceStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TargetStation - oldtask.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound))).FirstOrDefault(); |
| | | if (y == null) |
| | | { |
| | | if (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || oldtask.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) |
| | |
| | | } |
| | | else |
| | | { |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1001"); |
| | | if (device != null) |
| | | var stationManager = _stationManagerRepository.QueryData(x => x.stationType == 15); |
| | | if (stationManager.Count() > 0) |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | var stationManager = _stationManagerRepository.QueryData(x => x.stationType == 15); |
| | | if (stationManager.Count() > 0) |
| | | string next = null; |
| | | foreach (var item in stationManager) |
| | | { |
| | | string next = null; |
| | | foreach (var item in stationManager) |
| | | var x = _taskRepository.QueryFirst(x => x.NextAddress == item.stationChildCode || x.CurrentAddress == item.stationChildCode); |
| | | if (x == null) |
| | | { |
| | | short x = conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.InteractiveSignal, item.stationChildCode); |
| | | var structs = BitConverter.GetBytes(x).ToArray().ToBoolArray(); |
| | | if (structs[2]) |
| | | { |
| | | next = item.stationChildCode; |
| | | break; |
| | | } |
| | | next = item.stationChildCode; |
| | | break; |
| | | } |
| | | if (next != null) |
| | | { |
| | | oldtask.Remark = next; |
| | | _taskRepository.UpdateData(y); |
| | | return y; |
| | | } |
| | | } |
| | | if (next != null) |
| | | { |
| | | oldtask.Remark = next; |
| | | _taskRepository.UpdateData(oldtask); |
| | | return oldtask; |
| | | } |
| | | } |
| | | if (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || oldtask.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) |
| | |
| | | |
| | | public Dt_Task? GetDispatchExecutingTask(Dt_Task oldtask) |
| | | { |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1001"); |
| | | if (device != null) |
| | | |
| | | var stationManager = _stationManagerRepository.QueryData(x => x.stationType == 15); |
| | | if (stationManager.Count() > 0) |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | var stationManager = _stationManagerRepository.QueryData(x => x.stationType == 15); |
| | | if (stationManager.Count() > 0) |
| | | string next = null; |
| | | foreach (var item in stationManager) |
| | | { |
| | | string next = null; |
| | | foreach (var item in stationManager) |
| | | var x = _taskRepository.QueryFirst(x => x.NextAddress == item.stationChildCode || x.CurrentAddress == item.stationChildCode); |
| | | if (x == null) |
| | | { |
| | | short x = conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.InteractiveSignal, item.stationChildCode); |
| | | var structs = BitConverter.GetBytes(x).ToArray().ToBoolArray(); |
| | | if (structs[2]) |
| | | { |
| | | next = item.stationChildCode; |
| | | break; |
| | | } |
| | | } |
| | | if (next != null) |
| | | { |
| | | oldtask.Remark = next; |
| | | _taskRepository.UpdateData(oldtask); |
| | | return oldtask; |
| | | next = item.stationChildCode; |
| | | break; |
| | | } |
| | | } |
| | | if (next != null) |
| | | { |
| | | oldtask.Remark = next; |
| | | _taskRepository.UpdateData(oldtask); |
| | | return oldtask; |
| | | } |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |