huangxiaoqiang
9 小时以前 960b33fa24c47a330e51a2c24859d681ae62caeb
Code Management/WCS/WIDESEA_WCSServer/WIDESEAWCS_Tasks/ESS/ESSSignal.cs
ÎļþÃû´Ó Code Management/WCS/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/AGVSignal.cs ÐÞ¸Ä
@@ -1,6 +1,8 @@
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;
@@ -11,10 +13,11 @@
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;
@@ -22,7 +25,7 @@
        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;
@@ -30,28 +33,40 @@
            _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;
@@ -65,10 +80,9 @@
                    //    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)
@@ -77,6 +91,34 @@
            }
        }
        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>