using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseController; using WIDESEAWCS_DTO.BasicInfo; using WIDESEAWCS_IBasicInfoService; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_WCSServer.Controllers.Task { [Route("api/Task")] [ApiController] public class TaskController : ApiBaseController { private readonly IHttpContextAccessor _httpContextAccessor; private readonly IOrderDetailsService _orderDetailsService; private readonly ITaskRepository _taskRepository; public TaskController(ITaskService service, IHttpContextAccessor httpContextAccessor, IOrderDetailsService orderDetailsService, ITaskRepository taskRepository) : base(service) { _httpContextAccessor = httpContextAccessor; _orderDetailsService = orderDetailsService; _taskRepository = taskRepository; } [HttpPost, HttpGet, Route("CreateTask"), AllowAnonymous] public WebResponseContent CreateTask(string takePosition, string putPosition, string deviceCode, int length, int width, int height) { return Service.CreateTask(takePosition, putPosition, deviceCode, length, width, height); } [HttpPost, HttpGet, Route("PlaceBlockTest"), AllowAnonymous] public WebResponseContent PlaceBlockTest(int orderRowId) { return Service.PlaceBlockTest(orderRowId); } [HttpPost, HttpGet, Route("GenerateTask"), AllowAnonymous] public Dt_Task GenerateTask(string barcode) { OrderInfo orderInfo = _orderDetailsService.GetOrderInfoByBarcode(barcode); var (flag, task, message) = Service.GenerateTask(orderInfo); if (flag && task != null) return task; else return new Dt_Task(); } [HttpPost, HttpGet, Route("TaskComplete"), AllowAnonymous] public WebResponseContent TaskComplete(int taskNum) { Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum); if (task == null) { return WebResponseContent.Instance.Error($"未找到对应任务信息"); } return Service.TaskComplete(task); } } }