using Infrastructure; using Infrastructure.Attribute; using Infrastructure.Controllers; using Infrastructure.Enums; using Infrastructure.Model; using Mapster; using MDM.Model.Process; using MDM.Model.Process.Dto; using MDM.Services.IProcessService; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using RIZO.Admin.WebApi.Filters; using RIZO.Common; using RIZO.ServiceCore.Middleware; //创建时间:2025-11-15 namespace MDM.Controllers.Process { /// /// 工艺参数表(如温度、压力、时间等,关联工艺路线与工序) /// [Route("MasterDataManagement/Process/ProcessParameter")] [AllowAnonymous] public class ProcessParameterController : BaseController { /// /// 工艺参数表(如温度、压力、时间等,关联工艺路线与工序)接口 /// private readonly IProcessParameterService _ProcessParameterService; public ProcessParameterController(IProcessParameterService ProcessParameterService) { _ProcessParameterService = ProcessParameterService; } /// /// 查询工艺参数表(如温度、压力、时间等,关联工艺路线与工序)列表 /// /// /// [HttpGet("list")] [ActionPermissionFilter(Permission = "business:processparameter:list")] public IActionResult QueryProcessParameter([FromQuery] ProcessParameterQueryDto parm) { var response = _ProcessParameterService.GetList(parm); return SUCCESS(response); } /// /// 查询工艺参数表(如温度、压力、时间等,关联工艺路线与工序)详情 /// /// /// [HttpGet("{Id}")] [ActionPermissionFilter(Permission = "business:processparameter:query")] public IActionResult GetProcessParameter(int Id) { var response = _ProcessParameterService.GetInfo(Id); var info = response.Adapt(); return SUCCESS(info); } /// /// 添加工艺参数表(如温度、压力、时间等,关联工艺路线与工序) /// /// [HttpPost] [ActionPermissionFilter(Permission = "business:processparameter:add")] [Log(Title = "工艺参数表(如温度、压力、时间等,关联工艺路线与工序)", BusinessType = BusinessType.INSERT)] public IActionResult AddProcessParameter([FromBody] ProcessParameterDto parm) { var modal = parm.Adapt().ToCreate(HttpContext); var response = _ProcessParameterService.AddProcessParameter(modal); return SUCCESS(response); } /// /// 更新工艺参数表(如温度、压力、时间等,关联工艺路线与工序) /// /// [HttpPut] [ActionPermissionFilter(Permission = "business:processparameter:edit")] [Log(Title = "工艺参数表(如温度、压力、时间等,关联工艺路线与工序)", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateProcessParameter([FromBody] ProcessParameterDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _ProcessParameterService.UpdateProcessParameter(modal); return ToResponse(response); } /// /// 删除工艺参数表(如温度、压力、时间等,关联工艺路线与工序) /// /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "business:processparameter:delete")] [Log(Title = "工艺参数表(如温度、压力、时间等,关联工艺路线与工序)", BusinessType = BusinessType.DELETE)] public IActionResult DeleteProcessParameter(string ids) { int[] idsArr = Tools.SpitIntArrary(ids); if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _ProcessParameterService.Delete(idsArr); return ToResponse(response); } /// 导出过程参数 /// /// [HttpGet("export")] [Log(Title = "过程参数", BusinessType = BusinessType.EXPORT)] public IActionResult Export([FromQuery] ProcessParameterQueryDto parm) { var list = _ProcessParameterService.GetListExport(parm).Result; if (list == null || list.Count <= 0) { return ToResponse(ResultCode.FAIL, "没有要导出的数据"); } var (sFileName, sFilePath) = ExportExcelMini(list, "过程参数", "过程参数"); if (string.IsNullOrWhiteSpace(sFilePath)) { return ToResponse(ResultCode.FAIL, "Excel生成失败"); } return PhysicalFile( sFilePath, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", sFileName, true ); } } }