| | |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_DTO; |
| | |
| | | { |
| | | foreach (var item in tasks) |
| | | { |
| | | var content = SendHIKROBOTTask(item); |
| | | var content = _taskService.SendHIKROBOTTask(item); |
| | | } |
| | | } |
| | | #endregion |
| | |
| | | { |
| | | foreach (var item in tasks) |
| | | { |
| | | var content = SendHIKROBOTTask(item); |
| | | var content = _taskService.SendHIKROBOTTask(item); |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | #region ä¸å海康AGVä»»å¡ |
| | | public WebResponseContent SendHIKROBOTTask(Dt_Task task) |
| | | #region ä¸å海康1-6楼çAGVä»»å¡ |
| | | public void SendAGVTask(List<Dt_Task> tasks) |
| | | { |
| | | foreach (var item in tasks) |
| | | { |
| | | if (item.TaskState == (int)TaskTypeEnum.Q3CK) |
| | | { |
| | | // è°ç¨æ¥å£è·åå°è½¦ä¿¡æ¯ |
| | | var result = _agvcartInfoService.CheckTheCar(); |
| | | |
| | | // 夿æ¯å¦æ AA æ FF |
| | | bool hasAAOrFF = false; |
| | | |
| | | if (item.TaskState == (int)TaskTypeEnum.Q3CK) |
| | | { |
| | | if (result != null && result.Status) |
| | | { |
| | | var dataList = result.Data as List<HIKROBOTQueryData>; |
| | | if (dataList != null && dataList.Any()) |
| | | { |
| | | // æ£æ¥è¿åç mapCode åè¡¨ä¸æ¯å¦æ AA |
| | | hasAAOrFF = dataList.Any(d => d.mapCode == "AA"); |
| | | if (hasAAOrFF) |
| | | { |
| | | var content = _taskService.SendHIKROBOTTask(item); |
| | | item.TaskState = (int)TaskStatusEnum.Execut; |
| | | } |
| | | else//è¿éæå°±è¦å¼å«ç©ºè½¦æ¥ |
| | | { |
| | | //æ·»å 空车è¿è¾ä»»å¡ |
| | | AddAGVCartInfo(item); |
| | | item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (result != null && result.Status) |
| | | { |
| | | if (hasAAOrFF) |
| | | { |
| | | var content = _taskService.SendHIKROBOTTask(item); |
| | | item.TaskState = (int)TaskStatusEnum.Execut; |
| | | } |
| | | else//è¿éæå°±è¦å¼å«ç©ºè½¦æ¥ |
| | | { |
| | | //æ·»å 空车è¿è¾ä»»å¡ |
| | | AddAGVCartInfo(item); |
| | | item.TaskState = (int)TaskStatusEnum.WaitingHkAGVMovePosition; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | _taskService.UpdateData(tasks); |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region å¤ç海康agvæ¬è¿ä»»å¡ |
| | | public WebResponseContent AddAGVCartInfo(Dt_Task task) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(HIKROBOTTaskSubmit)) ?? throw new Exception("æªæ¾å°æµ·åº·AGVä»»å¡ä¸åæ¥å£é
置信æ¯ï¼è¯·æ£æ¥æ¥å£é
ç½®"); |
| | | |
| | | #region ä»»å¡ä¿¡æ¯è½¬æ¢ |
| | | HIKROBOTTaskSubmit hIKROBOTTaskSubmit = new HIKROBOTTaskSubmit() |
| | | { |
| | | taskType = "", |
| | | initPriority = task.Grade, |
| | | targetRoute = new List<TargetRouteDto> |
| | | { |
| | | new TargetRouteDto |
| | | { |
| | | type= "SITE", |
| | | code=task.CurrentAddress, |
| | | operation="COLLECT",//åè´§ |
| | | }, |
| | | new TargetRouteDto |
| | | { |
| | | type= "SITE", |
| | | code=task.NextAddress, |
| | | operation="DELIVERY",//éè´§ |
| | | } |
| | | } |
| | | }; |
| | | #endregion |
| | | |
| | | string response = HttpHelper.Post(apiInfo.ApiAddress, hIKROBOTTaskSubmit.Serialize()); |
| | | var hIKROBOTReturn = response.DeserializeObject<HIKROBOTReturn>(); |
| | | if (hIKROBOTReturn.code == "SUCCESS") |
| | | { |
| | | var data = hIKROBOTReturn.data.ToString().DeserializeObject<HIKROBOTReturnData>(); |
| | | content.OK(data: data); |
| | | //task.Remark = data.robotTaskCode; |
| | | } |
| | | else |
| | | { |
| | | throw new Exception(hIKROBOTReturn.message); |
| | | } |
| | | //_taskService.UpdateData(task); |
| | | task.TaskNum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); |
| | | task.WMSTaskNum = null; |
| | | task.TaskType = (int)TaskTypeEnum.Move;//æ¢å±ä»»å¡ |
| | | task.TaskState = (int)TaskStatusEnum.CallingHKtransportation; |
| | | var result = _taskService.SendHIKROBOTTask(task); |
| | | _taskService.AddData(task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | finally |
| | | { |
| | | |
| | | content.Error($"å建失败ï¼{ex.Message}"); |
| | | } |
| | | return content; |
| | | } |
| | | #endregion |
| | | |
| | | #region å¤çagvå¾
空车æ¬è¿ä»»å¡ |
| | | public void SendHKWaitTask() |
| | | { |
| | | try |
| | | { |
| | | List<Dt_Task> reslut = _taskService.Repository.QueryData(x => x.TaskType == (int)TaskTypeEnum.Move); |
| | | if (reslut.Count<0) |
| | | { |
| | | foreach (var item in reslut) |
| | | { |
| | | var content = _taskService.SendHIKROBOTTask(item); |
| | | } |
| | | reslut.ForEach(x => |
| | | { |
| | | x.TaskState =(int)TaskStatusEnum.Execut; |
| | | }); |
| | | |
| | | } |
| | | _taskService.UpdateData(reslut); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteError(nameof(TaskJob), ex.Message, ex); |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | } |