| | |
| | | try |
| | | { |
| | | SpeStackerCrane speStackerCrane = (SpeStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | GetStackerObject getStackerObject = new GetStackerObject(); |
| | | GetStackerObject getStackerObject = new GetStackerObject(speStackerCrane); |
| | | if (speStackerCrane != null) |
| | | { |
| | | if (getStackerObject.StackerCraneTaskCompletedValue(speStackerCrane) == StackerCraneTaskCompleted.WorkCompleted) |
| | | if (!getStackerObject.IsEventSubscribed) |
| | | { |
| | | _taskService.StackCraneTaskCompleted(speStackerCrane.CurrentTaskNum); |
| | | speStackerCrane.SetValue(StackerCraneDBName.WorkType, 2); |
| | | getStackerObject.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | } |
| | | else |
| | | if (getStackerObject.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && getStackerObject.StackerCraneStatusValue == StackerCraneStatus.Ready) |
| | | { |
| | | if (getStackerObject.StackerCraneAutoStatusValue(speStackerCrane) == StackerCraneAutoStatus.Automatic && getStackerObject.StackerCraneStatusValue(speStackerCrane) == StackerCraneStatus.Ready) |
| | | getStackerObject.CheckStackerCraneTaskCompleted();//æ£æµå®æäºä»¶ |
| | | |
| | | if(getStackerObject.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | { |
| | | if (getStackerObject.StackerCraneWorkStatusValue(speStackerCrane) == StackerCraneWorkStatus.Standby) |
| | | Dt_Task? task = GetTask(speStackerCrane); |
| | | if (task != null) |
| | | { |
| | | Dt_Task? task = GetTask(speStackerCrane); |
| | | if (task != null) |
| | | StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | | { |
| | | if (task.TaskType == TaskTypeGroup.OutbondGroup.ObjToInt()) |
| | | bool sendFlag = getStackerObject.SendCommand(stackerCraneTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | | //todoåºåºå¤æè´§æ¶ç¶æ |
| | | StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | | { |
| | | bool sendFlag = speStackerCrane.SendCommand(stackerCraneTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | | speStackerCrane.LastTaskType = task.TaskType; |
| | | _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | | { |
| | | bool sendFlag = speStackerCrane.SendCommand(stackerCraneTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | | speStackerCrane.LastTaskType = task.TaskType; |
| | | _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | } |
| | | } |
| | | speStackerCrane.LastTaskType = task.TaskType; |
| | | _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //Console.WriteLine(nameof(CommonStackerCraneJob) + ":" + ex.ToString()); |
| | | WriteLog.GetLog("å åæºå¼å¸¸").Write($"{nameof(CommonStackerCraneJob)}:{ex.Message}", "å åæºå¼å¸¸"); |
| | | WriteLog.GetLog($"å åæºå¼å¸¸").Write($"{nameof(CommonStackerCraneJob)}:{ex.Message}", "å åæºå¼å¸¸"); |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | |
| | | /// <returns></returns> |
| | | private Dt_Task? GetTask(SpeStackerCrane speStackerCrane) |
| | | { |
| | | Dt_Task task; |
| | | Dt_Task? task; |
| | | if (speStackerCrane.LastTaskType == null) |
| | | { |
| | | task = _taskService.QueryStackerCraneTask(speStackerCrane.DeviceCode); |
| | |
| | | else |
| | | { |
| | | bool flag = speStackerCrane.LastTaskType == TaskTypeEnum.Inbound.ObjToInt() || speStackerCrane.LastTaskType == TaskTypeEnum.PalletInbound.ObjToInt(); |
| | | if (flag==false) |
| | | if (flag == false) |
| | | { |
| | | task = _taskService.QueryStackerCraneInTask(speStackerCrane.DeviceCode); |
| | | if (task == null) |
| | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public bool SendCommands(StackerCraneTaskCommand command,SpeStackerCrane speStackerCrane) |
| | | { |
| | | try |
| | | { |
| | | speStackerCrane.SetValue(StackerCraneDBName.TaskNum, command.TaskNum); |
| | | speStackerCrane.SetValue(StackerCraneDBName.StartRow, command.StartRow); |
| | | speStackerCrane.SetValue(StackerCraneDBName.StartColumn, command.StartColumn); |
| | | speStackerCrane.SetValue(StackerCraneDBName.StartLayer, command.StartLayer); |
| | | speStackerCrane.SetValue(StackerCraneDBName.EndRow, command.EndRow); |
| | | speStackerCrane.SetValue(StackerCraneDBName.EndColumn, command.EndColumn); |
| | | speStackerCrane.SetValue(StackerCraneDBName.EndLayer, command.EndLayer); |
| | | speStackerCrane.SetValue(StackerCraneDBName.Barcode, command.Barcode); |
| | | speStackerCrane.SetValue(StackerCraneDBName.WorkType, command.WorkType); |
| | | speStackerCrane.SetValue(StackerCraneDBName.TrayType, command.TrayType); |
| | | return true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// ä»»å¡å®ä½è½¬æ¢æå½ä»¤Model |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å®ä½</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public StackerCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task) |
| | | /// <summary> |
| | | /// ä»»å¡å®ä½è½¬æ¢æå½ä»¤Model |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å®ä½</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public StackerCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task) |
| | | { |
| | | StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand(); |
| | | |
| | |
| | | } |
| | | return stackerCraneTaskCommand; |
| | | } |
| | | |
| | | } |
| | | } |