| | |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | /// <summary> |
| | | /// ä¸åä»»å¡ |
| | | /// </summary> |
| | | public void SendTask() |
| | | public void SendNewTask() |
| | | { |
| | | try |
| | | { |
| | |
| | | if (newTasks.Count > 0) |
| | | { |
| | | #region æ¥æ¾å¯ä¹å£«ä»»å¡ |
| | | var Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.MLInbound || x.TaskType == (int)TaskTypeEnum.MLOutbound).ToList(); |
| | | if (Tasks.Count > 0) SendGALAXISTask(Tasks); |
| | | //var Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.MLInbound || x.TaskType == (int)TaskTypeEnum.MLOutbound).OrderByDescending(x => x.Grade).ToList(); |
| | | //if (Tasks.Count > 0) SendGALAXISTask(Tasks); |
| | | #endregion |
| | | |
| | | #region æ¥æ¾RGVä»»å¡ |
| | | var Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound).OrderByDescending(x => x.Grade).ToList(); |
| | | if (Tasks.Count > 0) SendRGVNewInTask(Tasks); |
| | | Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPOutbound).OrderByDescending(x => x.Grade).ToList(); |
| | | if (Tasks.Count > 0) IsMoveTask(Tasks); |
| | | #endregion |
| | | |
| | | //#region æ¥æ¾æµ·åº·AGVä»»å¡ |
| | | //Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.F01 || x.TaskType == (int)TaskTypeEnum.RK3F || x.TaskType == (int)TaskTypeEnum.CK3F || x.TaskType == (int)TaskTypeEnum.Q1TSJ4 || x.TaskType == (int)TaskTypeEnum.STU0003 || x.TaskType == (int)TaskTypeEnum.F02 || x.TaskType == (int)TaskTypeEnum.CHUKU1 || x.TaskType == (int)TaskTypeEnum.Q3RK || x.TaskType == (int)TaskTypeEnum.Q3CK).OrderByDescending(x => x.Grade).ToList(); |
| | | //if (Tasks.Count > 0) HIKROBOTTask(Tasks); |
| | | //#endregion |
| | | |
| | | #region ä¸å海康1å°6楼çAGVä»»å¡/ä¸å海康6å°1楼çAGVä»»å¡ |
| | | Tasks = newTasks.Where(x => (x.TaskType == (int)TaskTypeEnum.Q3CK) || x.TaskType == (int)TaskTypeEnum.Q3RK||x.TaskType==(int)TaskTypeEnum.F01).OrderByDescending(x => x.Grade).ToList(); |
| | | if (Tasks.Count > 0) SendAGVTask(Tasks); |
| | | |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteError(nameof(TaskJob), ex.Message, ex); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region ä¸åå¯ä¹å£«AGVä»»å¡ |
| | | public void SendGALAXISTask(List<Dt_Task> tasks) |
| | | { |
| | | GALAXISTaskInfo gALAXISTaskInfo = new GALAXISTaskInfo(); |
| | | try |
| | | { |
| | | gALAXISTaskInfo.groupId = DateTime.Now.ToString("yyMMddHHmmss"); |
| | | gALAXISTaskInfo.msgTime = DateTime.Now.ToString(); |
| | | gALAXISTaskInfo.tasks = new List<GALAXISTask>(); |
| | | foreach (var task in tasks) |
| | | var ExecutTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState != (int)TaskStatusEnum.New).ToList(); |
| | | if (ExecutTasks.Count > 0) |
| | | { |
| | | GALAXISTask gALAXISTask = new GALAXISTask() |
| | | { |
| | | taskId = task.WMSTaskNum, |
| | | taskType = task.TaskType == (int)TaskTypeEnum.MLInbound ? 0 : 1, |
| | | barCode = task.PalletCode, |
| | | endNode = task.TargetAddress, |
| | | startNode = task.SourceAddress, |
| | | priorityCode = task.Grade |
| | | }; |
| | | gALAXISTaskInfo.tasks.Add(gALAXISTask); |
| | | } |
| | | Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(GALAXISTaskInfo)); |
| | | if (apiInfo == null) throw new Exception("æªæ¾å°å¯ä¹å£«AGVä»»å¡ä¸åæ¥å£é
置信æ¯ï¼è¯·æ£æ¥æ¥å£é
ç½®"); |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, gALAXISTaskInfo.Serialize()); |
| | | GALAXISReturn agvContent = response.DeserializeObject<GALAXISReturn>(); |
| | | if (agvContent.success) |
| | | { |
| | | if (agvContent.data.returnStatus != 0) throw new Exception(agvContent.data.returnInfo); |
| | | tasks.ForEach(task => |
| | | { |
| | | task.TaskState = (int)TaskStatusEnum.Execut; |
| | | }); |
| | | _taskService.UpdateData(tasks); |
| | | #region ä¸åå¾
å¤å½¢æ£æµä»»å¡ |
| | | var Tasks = ExecutTasks.Where(x => x.TaskType == (int)TaskTypeEnum.CPInbound && x.TaskState == (int)TaskStatusEnum.WaiCheckShape).OrderByDescending(x => x.Grade).ToList(); |
| | | if (Tasks.Count > 0) SendRGVCheckShapeTask(Tasks); |
| | | #endregion |
| | | |
| | | #region ä¸åå¤å½¢æ£æµéè¿çååè½¦ä»»å¡ |
| | | Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingOk && string.IsNullOrEmpty(x.ExceptionMessage)).OrderByDescending(x => x.Grade).ToList(); |
| | | if (Tasks.Count > 0) SendCheckShapeingOkTask(Tasks); |
| | | #endregion |
| | | |
| | | #region ä¸åå¤å½¢æ£æµå¤±è´¥çååè½¦ä»»å¡ |
| | | Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingNG).OrderByDescending(x => x.Grade).ToList(); |
| | | if (Tasks.Count > 0) SendCheckShapeingNGTask(Tasks); |
| | | Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckShapeingOk && x.ExceptionMessage.Contains("æªæ¾å°ç»ç¹åºåº")).ToList(); |
| | | if (Tasks.Count > 0) SendCheckShapeingNGTask(Tasks); |
| | | #endregion |
| | | |
| | | #region ä¸ååå车æ¹éç§»åºä»»å¡ |
| | | Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.RGV_NewMoveTask).ToList(); |
| | | if (Tasks.Count > 0) SendMoveTasks(Tasks); |
| | | #endregion |
| | | |
| | | #region å¤çå¾
ç§»åºååå车åºåºä»»å¡ |
| | | Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.RGV_WaitMoveToExecute).OrderByDescending(x => x.Grade).ToList(); |
| | | if (Tasks.Count > 0) MoveToExecuteTask(Tasks); |
| | | #endregion |
| | | |
| | | #region ä¸ååå车åºåºä»»å¡ |
| | | Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.RGV_WaitSend).OrderByDescending(x => x.Grade).ToList(); |
| | | if (Tasks.Count > 0) SendOutTask(Tasks); |
| | | #endregion |
| | | |
| | | #region ä¸åå¤è®¾å
许è¿å
¥ç海康AGVä»»å¡ |
| | | //Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.AGV_WaitToExecute).OrderByDescending(x => x.Grade).ToList(); |
| | | //if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks); |
| | | #endregion |
| | | |
| | | #region ä¸åæçç¡®è®¤å®æçæµ·åº·AGVä»»å¡ |
| | | //Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish).OrderByDescending(x => x.Grade).ToList(); |
| | | //if (Tasks.Count > 0) SendAGVWaitToExecuteTask(Tasks); |
| | | #endregion |
| | | |
| | | |
| | | #region å¤çagvå¾
空车æ¬è¿ä»»å¡ |
| | | Tasks = ExecutTasks.Where(x => x.TaskState == (int)TaskStatusEnum.WaitingHkAGVMovePosition).OrderByDescending(x => x.Grade).ToList(); |
| | | if (Tasks.Count > 0) SendHKWaitTask(); |
| | | #endregion |
| | | |
| | | |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteError(nameof(TaskJob), ex.Message, ex); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region ä¸åååè½¦ä»»å¡ |
| | | public void SendRGVTask(List<Dt_Task> tasks) |
| | | { |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | #region ä¸å海康AGVä»»å¡ |
| | | public void SendHIKROBOTTask(List<Dt_Task> tasks) |
| | | { |
| | | |
| | | } |
| | | #endregion |
| | | } |