using Aliyun.OSS; using Microsoft.AspNetCore.Mvc; using RIZO.Model; using RIZO.Model.Mes; using RIZO.Model.Content.Dto; using RIZO.Model.Mes.Dto; using RIZO.Model.Mes.Dto.Process; using RIZO.Service.Mes; using RIZO.Service.Mes.IMesService.Process; using RIZO.Model.Mes.Process; //创建时间:2025-11-04 namespace RIZO.Admin.WebApi.Controllers.Mes.Process { /// /// 工艺表 /// [Route("mes/ProcessInfo")] [AllowAnonymous] public class ProcessInfoController : BaseController { /// /// 工艺表接口 /// private readonly IProcessInfoService _ProcessInfoService; public ProcessInfoController(IProcessInfoService ProcessInfoService) { _ProcessInfoService = ProcessInfoService; } /// /// 查询工艺表列表 /// /// /// [HttpGet("list")] [ActionPermissionFilter(Permission = "processinfo:list")] public IActionResult QueryProcessInfo([FromQuery] ProcessInfoQueryDto parm) { var response = _ProcessInfoService.GetList(parm); return SUCCESS(response); } /// /// 查询工艺表详情 /// /// /// [HttpGet("{Id}")] [ActionPermissionFilter(Permission = "processinfo:query")] public IActionResult GetProcessInfo(long Id) { var response = _ProcessInfoService.GetInfo(Id); var info = response.Adapt(); return SUCCESS(info); } /// /// 添加工艺表 /// /// [HttpPost] [ActionPermissionFilter(Permission = "processinfo:add")] [Log(Title = "工艺表", BusinessType = BusinessType.INSERT)] public IActionResult AddProcessInfo([FromBody] ProcessInfoDto parm) { var modal = parm.Adapt().ToCreate(HttpContext); var response = _ProcessInfoService.AddProcessInfo(modal); return SUCCESS(response); } /// /// 更新工艺表 /// /// [HttpPut] [ActionPermissionFilter(Permission = "processinfo:edit")] [Log(Title = "工艺表", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateProcessInfo([FromBody] ProcessInfoDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _ProcessInfoService.UpdateProcessInfo(modal); return ToResponse(response); } /// /// 删除工艺表 /// /// [HttpPost("delete/{ids}")] [ActionPermissionFilter(Permission = "processinfo:delete")] [Log(Title = "工艺表", BusinessType = BusinessType.DELETE)] public IActionResult DeleteProcessInfo([FromRoute]string ids) { var idArr = Tools.SplitAndConvert(ids); return ToResponse(_ProcessInfoService.Delete(idArr)); } /// /// 导入工艺表 /// /// [HttpPost("ImportProcessInfo")] //[ActionPermissionFilter(Permission = "processinfo:import")] [Log(Title = "导入保存工艺路线", BusinessType = BusinessType.IMPORT)] public IActionResult ImportProcessInfo([FromQuery] string userId, [FromQuery] string userName, [FromForm] IFormFile file) { var stream = file.OpenReadStream(); var fileName = file.FileName; var response = _ProcessInfoService.ImportProcessInfo(stream, userId,userName); return SUCCESS(response); } /// /// 通过工艺路线Code批量删除工艺表 /// /// [HttpPost("deleteByProcessCode")] [ActionPermissionFilter(Permission = "processinfo:delete")] [Log(Title = "工艺表", BusinessType = BusinessType.DELETE)] public IActionResult DeleteByProcessCode([FromBody] string[] processCodeArr) { return ToResponse(_ProcessInfoService.DeleteByProcessCode(processCodeArr)); } /// /// 模糊条件查询 /// [HttpPost("GetProcessInfoCondition")] //[ActionPermissionFilter(Permission = "processinfo:query")] public IActionResult GetProcessInfoCondition([FromBody] ProcessInfoQueryDto parm) { // 校验参数 if (parm == null) { return SUCCESS(new PagedInfo()); // 非法参数返回空分页 } // 调用服务层分页查询(需同步修改服务层方法) var pagedResult = _ProcessInfoService.GetProcessInfoCondition(parm); return SUCCESS(pagedResult); } /// /// 导出工艺路线详情 /// /// [HttpGet("export")] //[ActionPermissionFilter(Permission = "processinfo:export")] [Log(Title = "工艺路线详情", BusinessType = BusinessType.EXPORT)] public IActionResult Export() { ProcessInfoQueryDto parm = new ProcessInfoQueryDto { PageNum = 1, PageSize = 100000 }; var list = _ProcessInfoService.GetList(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 ); } } }