using Microsoft.AspNetCore.Mvc; using System; using System.Linq; using System.Threading.Tasks; namespace Kean.Presentation.Rest.Controllers { /// /// 指令服务 /// [ApiController, Route("api/instructions")] public class InstructionsController : ControllerBase { private readonly Application.Query.Interfaces.IWcsService _wcsQueryService; // 指令查询服务 /// /// 依赖注入 /// public InstructionsController( Application.Query.Interfaces.IWcsService wcsQueryService) { _wcsQueryService = wcsQueryService; } /// /// 获取指令记录列表 /// /// 成功 [HttpGet] [ProducesResponseType(200)] public async Task GetList( [FromQuery] string[] warehouse, [FromQuery] string direction, [FromQuery] int? function, [FromQuery] string device, [FromQuery] string barcode, [FromQuery] int? state, [FromQuery] DateTime? beginTimeFrom, [FromQuery] DateTime? beginTimeTo, [FromQuery] DateTime? endTimeFrom, [FromQuery] DateTime? endTimeTo, [FromQuery] string sort, [FromQuery] int? offset, [FromQuery] int? limit) { if (warehouse.Length == 0) { warehouse = null; } var items = await _wcsQueryService.GetInstructionList(warehouse, direction, function, device, barcode, state, beginTimeFrom, beginTimeTo, endTimeFrom, endTimeTo, sort, offset, limit); if (offset.HasValue || limit.HasValue) { var total = await _wcsQueryService.GetInstructionCount(warehouse, direction, function, device, barcode, state, beginTimeFrom, beginTimeTo, endTimeFrom, endTimeTo); return StatusCode(200, new { items, total }); } else { return StatusCode(200, new { items, total = items.Count() }); } } } }