using F9WebAiTest.Application.Common; using F9WebAiTest.Application.Dtos.QC; using F9WebAiTest.Application.Services.QC; using F9WebAiTest.Domain.Entities.QC.Gyzxs; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace F9WebAiTest.Api.Controllers.QC; /// /// 质量模块 —— 工艺执行书(对应 F9 生产\质量\工艺执行书)。 /// 主列表按「庄口 + 年度」展示,每张子单据一个入口;保存子单据会联动主控表。 /// [ApiController] [Route("api/qc/gyzxs")] [Authorize] public class GyzxsController : ControllerBase { private readonly IGyzxsService _svc; public GyzxsController(IGyzxsService svc) => _svc = svc; // ---------- 主列表 ---------- [HttpGet] public async Task GetPaged([FromQuery] int pageIndex = 1, [FromQuery] int pageSize = 20, [FromQuery] int year = 0, [FromQuery] string keyword = "") => Ok(ApiResult>.Ok(await _svc.GetDocVersionPagedAsync(pageIndex, pageSize, year, keyword))); [HttpPost("version")] public async Task CreateVersion([FromQuery] long gyzkId) { try { return Ok(ApiResult.Ok(await _svc.CreateDocVersionAsync(gyzkId), "创建成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpDelete("version/{id}")] public async Task DeleteVersion(long id) { try { await _svc.DeleteDocVersionAsync(id); return Ok(ApiResult.Ok(null, "删除成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } // ---------- 封面 ---------- [HttpGet("fengmian")] public async Task GetFengMian([FromQuery] long gyzkId) => Ok(ApiResult.Ok(await _svc.GetFengMianAsync(gyzkId))); [HttpPost("fengmian")] public async Task SaveFengMian([FromBody] GyzxsFengMian dto) { try { return Ok(ApiResult.Ok(await _svc.SaveFengMianAsync(dto), "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } // ---------- 试产(试缫工艺单) ---------- [HttpGet("shichan")] public async Task GetShichan([FromQuery] long gyzkId, [FromQuery] string guige = "") => Ok(ApiResult.Ok(await _svc.GetShichanAsync(gyzkId, guige))); [HttpPost("shichan")] public async Task SaveShichan([FromBody] GyzxsShichan dto) { try { return Ok(ApiResult.Ok(await _svc.SaveShichanAsync(dto), "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } // ---------- 混剥选茧 ---------- [HttpGet("xbj")] public async Task GetXbj([FromQuery] long gyzkId) => Ok(ApiResult.Ok(await _svc.GetXbjAsync(gyzkId))); [HttpPost("xbj")] public async Task SaveXbj([FromBody] GyzxsXbjDto dto) { try { return Ok(ApiResult.Ok(await _svc.SaveXbjAsync(dto), "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } // ---------- 试缫与大样 ---------- [HttpGet("ssdy")] public async Task GetXbjSsDy([FromQuery] long gyzkId, [FromQuery] string guige = "") => Ok(ApiResult.Ok(await _svc.GetXbjSsDyAsync(gyzkId, guige))); [HttpPost("ssdy")] public async Task SaveXbjSsDy([FromBody] GyzxsXbjSsDy dto) { try { return Ok(ApiResult.Ok(await _svc.SaveXbjSsDyAsync(dto), "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } // ---------- 煮茧 ---------- [HttpGet("zhujian")] public async Task GetZhuJian([FromQuery] long gyzkId) => Ok(ApiResult.Ok(await _svc.GetZhuJianAsync(gyzkId))); [HttpPost("zhujian")] public async Task SaveZhuJian([FromBody] GyzxsZhuJianDto dto) { try { return Ok(ApiResult.Ok(await _svc.SaveZhuJianAsync(dto), "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } // ---------- 自动缫 ---------- [HttpGet("zds")] public async Task GetZds([FromQuery] long gyzkId, [FromQuery] string guige = "") => Ok(ApiResult.Ok(await _svc.GetZdsAsync(gyzkId, guige))); [HttpPost("zds")] public async Task SaveZds([FromBody] GyzxsZdsDto dto) { try { return Ok(ApiResult.Ok(await _svc.SaveZdsAsync(dto), "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } // ---------- 后缫(工艺执行书) ---------- [HttpGet("hs")] public async Task GetHs([FromQuery] long gyzkId, [FromQuery] string guige = "") => Ok(ApiResult.Ok(await _svc.GetHsAsync(gyzkId, guige))); [HttpPost("hs")] public async Task SaveHs([FromBody] GyzxsHs dto) { try { return Ok(ApiResult.Ok(await _svc.SaveHsAsync(dto), "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } // ---------- 报表数据 ---------- /// 报表数据(type: fengmian / gyzxs / xbj / shichan / ssdy / zhujian / zds / zdsdy) [HttpGet("print/{type}")] public async Task GetPrintData(string type, [FromQuery] long gyzkId, [FromQuery] string guige = "") { try { return Ok(ApiResult.Ok(await _svc.GetPrintDataAsync(type, gyzkId, guige))); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } }