| ÎļþÃû´Ó Code Management/WCS/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/AGVSignal.cs ÐÞ¸Ä |
| | |
| | | using AutoMapper; |
| | | using AngleSharp.Io; |
| | | using AutoMapper; |
| | | using LogLibrary.Log; |
| | | using Newtonsoft.Json; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_DTO.AGV; |
| | |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using TaskStatus = WIDESEAWCS_DTO.AGV.TaskStatus; |
| | | |
| | | namespace WIDESEAWCS_Tasks.AGV |
| | | { |
| | | public class AGVSignal:IAGVSignal |
| | | public class ESSSignal:IESSSignal |
| | | { |
| | | private readonly ITaskRepository _taskRepository; |
| | | private readonly ITask_HtyRepository _taskhtyRepository; |
| | |
| | | private readonly IDt_StationManagerRepository _stationManagerRepository; |
| | | private readonly IMapper _mapper; |
| | | |
| | | public AGVSignal(ITaskRepository taskRepository, ITaskService taskService,IDt_StationManagerRepository stationManagerRepository,ITask_HtyRepository taskhtyRepository, IMapper mapper) |
| | | public ESSSignal(ITaskRepository taskRepository, ITaskService taskService,IDt_StationManagerRepository stationManagerRepository,ITask_HtyRepository taskhtyRepository, IMapper mapper) |
| | | { |
| | | _taskRepository = taskRepository; |
| | | _taskService = taskService; |
| | |
| | | _taskhtyRepository = taskhtyRepository; |
| | | _mapper = mapper; |
| | | } |
| | | #region AGVä¸è®¾å¤ä¿¡å·äº¤äº |
| | | #region ESSä»»å¡ç¶æåè° |
| | | |
| | | /// <summary> |
| | | /// AGV--设å¤äº¤äº |
| | | /// ESSä»»å¡ç¶æåè° |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent SignalInteraction(AGVReceiveDTO receiveDTO) |
| | | public WebResponseContent TaskStatusCallback(StatusCallbackRequest result) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | LogFactory.WriteInfo($"AGVç¶æä¸æ¥", $"åæ°ã{JsonConvert.SerializeObject(receiveDTO)}ã{Environment.NewLine}{Environment.NewLine}"); |
| | | var task = _taskRepository.QueryFirst(t => t.TaskNum == Convert.ToInt32(receiveDTO.orderId)); |
| | | var task = _taskRepository.QueryFirst(t => t.TaskNum == Convert.ToInt32(result.TaskCode)); |
| | | if (task == null) |
| | | { |
| | | return content.Error("æªæ¾å°ä»»å¡"); |
| | | } |
| | | |
| | | CommonConveyorLine? commonConveyorLine = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1001") as CommonConveyorLine; |
| | | CommonElevator? elevator = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ1") as CommonElevator; |
| | | switch (receiveDTO.status) |
| | | switch (result.EventType) |
| | | { |
| | | case EventType.tote_load: |
| | | content.OK(); |
| | | break; |
| | | case EventType.tote_unload: |
| | | content.OK(); |
| | | break; |
| | | case EventType.robot_reach: |
| | | content.OK(); |
| | | break; |
| | | case EventType.task: |
| | | content = RobotTaskStatusCallback(result, task); |
| | | break; |
| | | case EventType.task_allocated: |
| | | _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | break; |
| | | |
| | | //case 20: |
| | | // content = RequestPickUp(task, commonConveyorLine, elevator); |
| | | // break; |
| | |
| | | // content = PutFinish(task, commonConveyorLine, elevator); |
| | | // break; |
| | | default: |
| | | content.Error("æªç¥ç¶æ"); |
| | | content.Error($"æªç¥çäºä»¶ç±»å: {result.EventType}"); |
| | | break; |
| | | } |
| | | LogFactory.WriteInfo($"AGVç¶æä¸æ¥", $"è¿ååæ°ã{JsonConvert.SerializeObject(content)}ã{Environment.NewLine}{Environment.NewLine}"); |
| | | return content; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent RobotTaskStatusCallback(StatusCallbackRequest result,Dt_Task task) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | switch (result.Status) |
| | | { |
| | | case TaskStatus.cancel: |
| | | _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | break; |
| | | case TaskStatus.success: |
| | | break; |
| | | case TaskStatus.suspend: |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | content.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | #endregion |
| | | |
| | | #region ESSä»»å¡ç¶æåè° |
| | | ///// <summary> |
| | | ///// æ¾è´§å®æ |
| | | ///// </summary> |