using Newtonsoft.Json; using OfficeOpenXml.ConditionalFormatting; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Comm.AGVTask; using WIDESEA_Common.AGVTask; using WIDESEA_Core; using WIDESEA_Core.Enums; using WIDESEA_Model.Models; using WIDESEA_StorageTaskRepository; namespace WIDESEA_StoragIntegrationServices { public partial class ToAGVService { /// /// AGV回调接口 /// /// /// public WebResponseContent taskResult(object taskRespon) { WebResponseContent content = new WebResponseContent(); try { var taskResult = JsonConvert.DeserializeObject(taskRespon.ToString()); if (taskResult == null) { throw new Exception("AGV调用接口失败:无请求参数"); } LogFactory.GetLog("AGV回调参数").Info(true, $"\r\r--------------------------------------"); LogFactory.GetLog("AGV回调参数").Info(true, taskRespon.ToString()); var task = _taskRepository.QueryFirst(x => x.AGVtaskId == taskResult.task_id); if (task == null) throw new Exception($"未知任务:{taskResult.task_id}"); if (taskResult.result.ToLower() == "task_execute") //AGV开始执行 { task.TaskState = (int)TaskStatusEnum.Executing; _taskRepository.Update(task); } if (taskResult.result.ToLower() == "task_complete") //AGV任务结束 { task.TaskState = (int)TaskStatusEnum.Completed; WebResponseContent responseContent = _taskService.CompleteAsync((int)task.TaskNum).Result; if (!responseContent.Status) { throw new Exception(responseContent.Message); } //_taskRepository.Update(task); } return content.OK(); } catch (Exception ex) { LogFactory.GetLog("AGV回调异常").Info(true, $"\r\r--------------------------------------"); LogFactory.GetLog("AGV回调异常").Info(true, ex.Message); return content.Error($"AGV回调异常:{ex.Message}"); } } } }