| using Newtonsoft.Json; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
| using WIDESEA_Common.CommonEnum; | 
| using WIDESEA_Common.LocationEnum; | 
| using WIDESEA_Common.OtherEnum; | 
| using WIDESEA_Common.StockEnum; | 
| using WIDESEA_Common.TaskEnum; | 
| using WIDESEA_Core; | 
| using WIDESEA_Core.Helper; | 
| using WIDESEA_DTO.Task; | 
| using WIDESEA_Model.Models; | 
|   | 
| namespace WIDESEA_TaskInfoService | 
| { | 
|     public partial class TaskService | 
|     { | 
|         public WebResponseContent TaskCompleted(int taskNum) | 
|         { | 
|             try | 
|             { | 
|                 Dt_Task task = Repository.QueryFirst(x => x.TaskNum == taskNum); | 
|                 if (task == null) | 
|                 { | 
|                     return WebResponseContent.Instance.Error($"未找到任务信息"); | 
|                 } | 
|                 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) | 
|                 { | 
|                     return InboundTaskCompleted(taskNum); | 
|                 } | 
|                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) | 
|                 { | 
|                     return OutboundTaskCompleted(taskNum); | 
|                 } | 
|                 else if (task.TaskType.GetTaskTypeGroup() != TaskTypeGroup.RelocationGroup) | 
|                 { | 
|                     return RelocationTaskCompleted(task); | 
|                 } | 
|                 else | 
|                 { | 
|                     return WebResponseContent.Instance.Error($"未找到该类型任务,任务类型:{task.TaskType}"); | 
|                 } | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 return WebResponseContent.Instance.Error(ex.Message); | 
|             } | 
|         } | 
|   | 
|         /// <summary> | 
|         /// 任务信息推送至WCS | 
|         /// </summary> | 
|         /// <returns></returns> | 
|         public WebResponseContent PushTasksToWCSSingle(int taskNum, string agvDescription = "") | 
|         { | 
|             try | 
|             { | 
|                 Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); | 
|                 if (task == null) | 
|                 { | 
|                     return WebResponseContent.Instance.Error($"错误,未找到该任务信息"); | 
|                 } | 
|   | 
|                 List<WMSTaskDTO> taskDTOs = new List<WMSTaskDTO> { _mapper.Map<WMSTaskDTO>(task) }; | 
|                 taskDTOs.ForEach(x => | 
|                 { | 
|                     x.AGVArea = agvDescription; | 
|                 }); | 
|   | 
|                 string url = AppSettings.Get("WCS"); | 
|                 if (string.IsNullOrEmpty(url)) | 
|                 { | 
|                     throw new Exception($"未找到WCSAApi地址,请检查配置文件"); | 
|                 } | 
|                 string response = HttpHelper.Post($"{url}/api/Task/ReceiveTask", taskDTOs.Serialize()); | 
|   | 
|                 return JsonConvert.DeserializeObject<WebResponseContent>(response) ?? WebResponseContent.Instance.Error("返回错误"); | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 return WebResponseContent.Instance.Error(ex.Message); | 
|             } | 
|         } | 
|   | 
|         /// <summary> | 
|         /// 修改任务状态 | 
|         /// </summary> | 
|         /// <param name="task"></param> | 
|         /// <returns></returns> | 
|         public WebResponseContent UpdateTaskInfo(WCSTaskDTO task) | 
|         { | 
|             try | 
|             { | 
|                 Dt_Task wmsTask = BaseDal.QueryFirst(x=>x.TaskNum == task.TaskNum); | 
|                 if (wmsTask != null) | 
|                 { | 
|                     wmsTask.TaskStatus = task.TaskState; | 
|                     wmsTask.CurrentAddress = task.CurrentAddress; | 
|                     wmsTask.NextAddress = task.NextAddress; | 
|                     wmsTask.Dispatchertime = task.Dispatchertime; | 
|                     BaseDal.UpdateData(wmsTask); | 
|                 } | 
|                 return WebResponseContent.Instance.OK(); | 
|             } | 
|             catch(Exception ex) | 
|             { | 
|                 return WebResponseContent.Instance.Error(ex.Message); | 
|             } | 
|         } | 
|     } | 
| } |