using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.Diagnostics.CodeAnalysis; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseController; using WIDESEAWCS_DTO.TaskInfo; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_WCSServer.Controllers.Task { [Route("api/Task")] [ApiController] public class TaskController : ApiBaseController { private readonly IHttpContextAccessor _httpContextAccessor; public TaskController(ITaskService service, IHttpContextAccessor httpContextAccessor) : base(service) { _httpContextAccessor = httpContextAccessor; } [HttpPost, Route("ReceiveTask"), AllowAnonymous] public WebResponseContent ReceiveWMSTask([FromBody] List taskDTOs) { return Service.ReceiveWMSTask(taskDTOs); } [HttpPost, HttpGet, Route("UpdateTaskExceptionMessage")] public WebResponseContent UpdateTaskExceptionMessage(int taskNum, string message) { return Service.UpdateTaskExceptionMessage(taskNum, message); } [HttpPost, HttpGet, Route("UpdateTaskStatusToNext")] public WebResponseContent UpdateTaskStatusToNext(int taskNum) { return Service.UpdateTaskStatusToNext(taskNum); } [HttpPost, HttpGet, Route("TaskStatusRecovery")] public WebResponseContent TaskStatusRecovery(int taskNum) { return Service.TaskStatusRecovery(taskNum); } [HttpPost, HttpGet, Route("RollbackTaskStatusToLast")] public WebResponseContent RollbackTaskStatusToLast(int taskNum) { return Service.RollbackTaskStatusToLast(taskNum); } /// /// 接收WMS任务信息 /// /// MES任务对象 /// 返回处理结果 [HttpPost, Route("/WCS/V1/CMD"), AllowAnonymous] public WebResponseContent ReceiveMESTask([FromBody] MESTaskDTO taskDTO) { return Service.ReceiveMESTask(taskDTO); } /// /// 接收WCS人工任务信息 /// /// WCS任务对象 /// 返回处理结果 [HttpPost, Route("ReceiveWCSTask"), AllowAnonymous] public WebResponseContent ReceiveWCSTask([FromBody] MESTaskDTO taskDTO) { return Service.ReceiveWCSTask(taskDTO); } /// /// 任务取消(堆垛机回解决不了的故障需清除任务,清除任务后,需在WCS上取消任务) /// /// /// [HttpPost,Route("CancelTask")] public WebResponseContent CancelTask(int taskNum) { return Service.CancelTask(taskNum); } /// /// 任务强制完成 (堆垛机实际已完成任务,WCS未收到完成信号或其他未知原因导致WCS任务未完成,可以执行该方法强制完成任务) /// /// /// [HttpPost, Route("ForceCompleteTask")] public WebResponseContent ForceCompleteTask (int taskNum) { return Service.ForceCompleteTask(taskNum); } } }