| using Autofac.Core; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
| using WIDESEA_DTO.Agv; | 
| using WIDESEAWCS_Common.APIEnum; | 
| using WIDESEAWCS_Common.TaskEnum; | 
| using WIDESEAWCS_Core; | 
| using WIDESEAWCS_Core.Helper; | 
| using WIDESEAWCS_DTO.Agv; | 
|   | 
| namespace WIDESEAWCS_TaskInfoService | 
| { | 
|     public partial class TaskService | 
|     { | 
|         /// <summary> | 
|         /// 发送AGV任务  | 
|         /// </summary> | 
|         /// <param name="taskModel"></param> | 
|         /// <returns></returns> | 
|         public WebResponseContent AgvSendTask(AgvTaskDTO taskModel, APIEnum SendTask = APIEnum.Agv_CSJSendTask) | 
|         { | 
|             WebResponseContent content = new WebResponseContent(); | 
|             try | 
|             { | 
|                 string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == SendTask.ToString())?.ApiAddress; | 
|                 if (string.IsNullOrEmpty(apiAddress)) | 
|                     return WebResponseContent.Instance.Error($"未找到发送AGV任务接口,请检查接口配置"); | 
|                 string response = HttpHelper.Post(apiAddress, taskModel.Serialize()); | 
|                 AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>(); | 
|                 if (agvContent.Code == "0") | 
|                 { | 
|                     content.OK(data: agvContent.Data); | 
|                 } | 
|                 else | 
|                 { | 
|                     content.Error(agvContent.Message); | 
|                 } | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 content.Error(ex.Message); | 
|             } | 
|             return content; | 
|         } | 
|         /// <summary> | 
|         /// 安全信号申请 AGV-WCS | 
|         /// </summary> | 
|         public AgvResponseContent AgvSecureApply(AgvSecureApplyDTO secureApplyModel) | 
|         { | 
|             return new AgvResponseContent(); | 
|         } | 
|         /// <summary> | 
|         /// 安全信号回复 WCS-AGV  //AGV任务继续执行 | 
|         /// </summary> | 
|         /// <param name="secureModel"></param> | 
|         /// <returns></returns> | 
|         public WebResponseContent AgvSecureReply(AgvSecureReplyDTO secureReplyModel, APIEnum SecureReply = APIEnum.Agv_CSJSecureReply) | 
|         { | 
|             WebResponseContent content = new WebResponseContent(); | 
|             try | 
|             { | 
|                 string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == SecureReply.ToString())?.ApiAddress; | 
|                 if (string.IsNullOrEmpty(apiAddress)) | 
|                     return WebResponseContent.Instance.Error($"未找到发送AGV任务接口,请检查接口配置"); | 
|                 string response = HttpHelper.Post(apiAddress, secureReplyModel.Serialize()); | 
|                 AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>(); | 
|                 if (agvContent.Code == "0") | 
|                 { | 
|                     content.OK(agvContent.Message); | 
|                 } | 
|                 else | 
|                 { | 
|                     content.Error(agvContent.Message); | 
|                 } | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 content.Error(ex.Message); | 
|             } | 
|             return content; | 
|         } | 
|         /// <summary> | 
|         /// CTU取消任务 | 
|         /// </summary> | 
|         public WebResponseContent AgvBoxApplyPass(AgvCTUCancelDTO applyPassDTO, APIEnum SecureReply = APIEnum.AGV_CTUCancelTask) | 
|         { | 
|             WebResponseContent content = new WebResponseContent(); | 
|             try | 
|             { | 
|                 string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == SecureReply.ToString())?.ApiAddress; | 
|                 if (string.IsNullOrEmpty(apiAddress)) | 
|                     return WebResponseContent.Instance.Error($"未找到AGV取消任务接口,请检查接口配置"); | 
|                 string response = HttpHelper.Post(apiAddress, applyPassDTO.Serialize()); | 
|                 AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>(); | 
|                 if (agvContent.Code == "0") | 
|                 { | 
|                     content.OK(agvContent.Message); | 
|                 } | 
|                 else | 
|                 { | 
|                     content.Error(agvContent.Message); | 
|                 } | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 content.Error(ex.Message); | 
|             } | 
|             return content; | 
|         } | 
|         /// <summary> | 
|         /// AGV成品取放货通知 | 
|         /// </summary> | 
|         public WebResponseContent AgvBoxApplyPass(AGVBoxApplyPassDTO applyPassDTO, APIEnum SecureReply = APIEnum.AGV_CPBoxApplyPass) | 
|         { | 
|             WebResponseContent content = new WebResponseContent(); | 
|             try | 
|             { | 
|                 string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == SecureReply.ToString())?.ApiAddress; | 
|                 if (string.IsNullOrEmpty(apiAddress)) | 
|                     return WebResponseContent.Instance.Error($"未找到发送AGV任务接口,请检查接口配置"); | 
|                 string response = HttpHelper.Post(apiAddress, applyPassDTO.Serialize()); | 
|                 AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>(); | 
|                 if (agvContent.Code == "0") | 
|                 { | 
|                     content.OK(agvContent.Message); | 
|                 } | 
|                 else | 
|                 { | 
|                     content.Error(agvContent.Message); | 
|                 } | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 content.Error(ex.Message); | 
|             } | 
|             return content; | 
|         } | 
|         public WebResponseContent AgvPreScheduleTask(AgvScheduleTaskDTO scheduleTaskDTO, APIEnum ScheduleTask = APIEnum.AGV_CTUScheduleTaskTask) | 
|         { | 
|             WebResponseContent content = new WebResponseContent(); | 
|             try | 
|             { | 
|                 string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == ScheduleTask.ToString())?.ApiAddress; | 
|                 if (string.IsNullOrEmpty(apiAddress)) | 
|                     return WebResponseContent.Instance.Error($"未找到发送AGV任务接口,请检查接口配置"); | 
|                 string response = HttpHelper.Post(apiAddress, scheduleTaskDTO.Serialize()); | 
|                 AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>(); | 
|                 if (agvContent.Code == "0") | 
|                 { | 
|                     content.OK(agvContent.Message); | 
|                 } | 
|                 else | 
|                 { | 
|                     content.Error(agvContent.Message); | 
|                 } | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 content.Error(ex.Message); | 
|             } | 
|             return content; | 
|         } | 
|         /// <summary> | 
|         /// AGV任务状态刷新/AGV任务完成 | 
|         /// </summary> | 
|         /// <param name="agvUpdateModel"></param> | 
|         /// <returns></returns> | 
|         public AgvResponseContent AgvUpdateTask(AgvUpdateDTO agvUpdateModel) | 
|         { | 
|             return new AgvResponseContent(); | 
|         } | 
|         public WebResponseContent AgvPodBerthAndMat(AgvPodBerthAndMatDTO agvPodModel, APIEnum PodBerthAndMat = APIEnum.Agv_CSJPodBerthAndMat) | 
|         { | 
|             WebResponseContent content = new WebResponseContent(); | 
|             try | 
|             { | 
|                 string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == PodBerthAndMat.ToString())?.ApiAddress; | 
|                 if (string.IsNullOrEmpty(apiAddress)) | 
|                     return WebResponseContent.Instance.Error($"未找到发送AGV任务接口,请检查接口配置"); | 
|                 string response = HttpHelper.Post(apiAddress, agvPodModel.Serialize()); | 
|                 AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>(); | 
|                 if (agvContent.Code == "1") | 
|                 { | 
|                     content.OK(agvContent.Message); | 
|                 } | 
|                 else | 
|                 { | 
|                     content.Error(agvContent.Message); | 
|                 } | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 content.Error(ex.Message); | 
|             } | 
|             return content; | 
|         } | 
|     } | 
| } |