using F9WebAiTest.Application.Common; using F9WebAiTest.Application.Dtos.Prod; using F9WebAiTest.Application.Services.Prod; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace F9WebAiTest.Api.Controllers.Prod; /// 丝片台帐(生产-后缫):每日一条,按账期区间查询 [ApiController] [Route("api/prod/sptz")] [Authorize] public class SptzController : ControllerBase { private readonly ISptzService _svc; public SptzController(ISptzService svc) => _svc = svc; /// 丝片台帐列表(账期起止) [HttpGet("list")] public async Task GetPaged([FromQuery] DateTime dateFrom, [FromQuery] DateTime dateTo, [FromQuery] int pageIndex = 1, [FromQuery] int pageSize = 31) => Ok(ApiResult>.Ok(await _svc.GetPagedAsync(pageIndex, pageSize, dateFrom, dateTo))); /// 修改回填 [HttpGet("{id}")] public async Task GetForEdit(long id) { try { return Ok(ApiResult.Ok(await _svc.GetForEditAsync(id))); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } /// 新增默认值:上一本台账 + 上存,并按当日「丝片检查」带出整理片数 [HttpGet("defaults")] public async Task GetDefaults([FromQuery] DateTime date) => Ok(ApiResult.Ok(await _svc.GetDefaultsAsync(date))); [HttpPost("save")] public async Task Save([FromBody] SptzSaveDto dto) { try { var id = await _svc.SaveAsync(dto); return Ok(ApiResult.Ok(new { id }, "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpDelete("{id}")] public async Task Delete(long id) { try { await _svc.DeleteAsync(id); return Ok(ApiResult.Ok(null, "删除成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } }