| 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_Model.Models; | 
| using WIDESEAWCS_Tasks.StackerCraneJob; | 
|   | 
| namespace WIDESEAWCS_Tasks | 
| { | 
|     public partial class AGV_PPJob | 
|     { | 
|         public void SendAGVTask() | 
|         { | 
|             try | 
|             { | 
|                 var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskStatusEnum.New.ObjToInt()||x.TaskState==TaskStatusEnum.AGV_Execute.ObjToInt()) && nameof(AGV_PPJob).Contains(x.DeviceCode) && !string.IsNullOrEmpty(x.DeviceCode)).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList(); | 
|                 foreach (var task in newTasks) | 
|                 { | 
|                     try | 
|                     { | 
|                         AgvTaskDTO TaskDTO = new AgvTaskDTO() | 
|                         { | 
|                             TaskCode = task.AgvTaskNum, | 
|                             ReqCode = DateTime.Now.ToString("yyyyMMddHHmmss") + task.AgvTaskNum, | 
|                             TaskTyp = task.TaskType < TaskTypeEnum.Inbound.ObjToInt() ? "FLC" : "FLR", | 
|                             ctnrCode = task.PalletCode, | 
|                             PositionCodePath = new List<CodePath>() | 
|                         { | 
|                             new CodePath() | 
|                             { | 
|                                 type="00", | 
|                                 positionCode=task.CurrentAddress | 
|                             }, | 
|                             new CodePath() | 
|                             { | 
|                                 type="00", | 
|                                 positionCode=task.NextAddress | 
|                             } | 
|                         }, | 
|                         }; | 
|                         WebResponseContent content = _taskService.AgvSendTask(TaskDTO, APIEnum.Agv_PPSendTask); | 
|                         if (!content.Status) throw new Exception(content.Message); | 
|                         task.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();  | 
|                     } | 
|                     catch (Exception ex) | 
|                     { | 
|                         task.TaskState = TaskStatusEnum.Exception.ObjToInt(); | 
|                         task.ExceptionMessage = ex.Message; | 
|                     } | 
|                 } | 
|                 _taskService.UpdateData(newTasks); | 
|             } | 
|             catch (Exception ex) | 
|             { | 
|                 WriteError(nameof(AGV_FLJob), ex.Message, ex); | 
|             } | 
|         } | 
|     } | 
| } |