| | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | [DisallowConcurrentExecution] |
| | | public class TestJob : JobBase, IJob |
| | | public partial class TestJob : JobBase, IJob |
| | | { |
| | | private readonly ITaskService _taskService; |
| | | private readonly IStationMangerService _stationMangerService; |
| | |
| | | // _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()); |
| | | //ä»»å¡çç®æ å°å对äºç«å°å·ï¼ |
| | | foreach (var task in taskList) |
| | | { |
| | | if (device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_QualityInspection, task.SourceAddress)) |
| | | { |
| | | device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, false, task.SourceAddress); |
| | | //å读åè´¨æ£ç»æ |
| | | var qualityResult = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_QualityInspectionInProgress, task.SourceAddress); |
| | | //å·¦è¶
宽è¦å |
| | | var R_LeftOverWidthWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_LeftOverWidthWarning, task.SourceAddress); |
| | | //å³è¶
宽è¦å |
| | | var R_RightWideWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_RightWideWarning, task.SourceAddress); |
| | | //è¶
é«è¦å |
| | | var R_ExtremeWarning = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_ExtremeWarning, task.SourceAddress); |
| | | if (qualityResult) |
| | | { |
| | | //å¦æè´¨æ£éè¿äºï¼å°±æä»»å¡ç¶ææ¹ä¸ºè´¨æ£å®æ |
| | | task.TaskState = TaskStatusEnum.CheckShapeingOk.ObjToInt(); |
| | | task.ExceptionMessage = ""; |
| | | Uptasks.Add(task); |
| | | } |
| | | else |
| | | { |
| | | task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt(); |
| | | task.ExceptionMessage = "夿£å¤±è´¥"; |
| | | if (R_LeftOverWidthWarning) task.ExceptionMessage += ",å·¦è¶
宽"; |
| | | if (R_RightWideWarning) task.ExceptionMessage += ",å³è¶
宽"; |
| | | if (R_ExtremeWarning) task.ExceptionMessage += ",è¶
é«"; |
| | | Uptasks.Add(task); |
| | | //åå
¥å¤ä½ä¿¡å· |
| | | //device.SetValue(QualityInspectionCommandEnum.FaultReset, true, task.SourceAddress); |
| | | } |
| | | //åå
¥åæ¢è´¨æ£ä¿¡å· |
| | | device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, true, task.SourceAddress); |
| | | Thread.Sleep(500); |
| | | device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress); |
| | | } |
| | | //else |
| | | //{ |
| | | // //åå
¥åæ¢è´¨æ£ä¿¡å· |
| | | // device.SetValue(QualityInspectionCommandEnum.StopqualityInspection, false, task.SourceAddress); |
| | | // device.SetValue(QualityInspectionCommandEnum.StartqualityInspection, true, task.SourceAddress); |
| | | //} |
| | | else |
| | | { |
| | | task.TaskState = TaskStatusEnum.CheckShapeingNG.ObjToInt(); |
| | | task.ExceptionMessage = "æªæ£æµå°è´¨æ£å®æä¿¡å·"; |
| | | Uptasks.Add(task); |
| | | } |
| | | } |
| | | #endregion |
| | | SXCTasks(device); |
| | | |
| | | 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) |
| | | { |
| | | 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 = $"æªæ¾å°ã{address}ãç«å°ä¿¡æ¯"; |
| | | Uptasks.Add(item); |
| | | continue; |
| | | } |
| | | var StockAvailableSymbol = device.GetValue<QualityInspectionCommandEnum, bool>(QualityInspectionCommandEnum.R_StockAvailableSymbol, address); |
| | | if (item.TaskType == TaskTypeEnum.Q3RK.ObjToInt()) |
| | | { |
| | | 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) |
| | | { |
| | | if (item.ExceptionMessage != result.Message) |
| | | { |
| | | item.ExceptionMessage = result.Message; |
| | | Uptasks.Add(item); |
| | | } |
| | | continue; |
| | | } |
| | | item.TaskState = (int)TaskStatusEnum.AGV_ToExecute; |
| | | item.ExceptionMessage = ""; |
| | | Uptasks.Add(item); |
| | | } |
| | | KHTasks(device); |
| | | |
| | | _taskService.UpdateData(Uptasks); |
| | | |
| | | //WriteInfo(device.DeviceName, "infoLog"); |
| | | |
| | | //WriteDebug(device.DeviceName, "debugLog"); |