using DOAN.Admin.WebApi.Filters; using DOAN.Model.Business; using DOAN.Model.Dto; using DOAN.Service.Business; using DOAN.Service.Business.IBusinessService; using Microsoft.AspNetCore.Mvc; //创建时间:2025-11-06 namespace DOAN.Admin.WebApi.Controllers { /// /// 工艺建模项目表 /// [Verify] [Route("mes/process/proModelProject")] public class ProModelProjectController : BaseController { /// /// 工艺建模项目表接口 /// private readonly IProModelProjectService _ProModelProjectService; public ProModelProjectController(IProModelProjectService ProModelProjectService) { _ProModelProjectService = ProModelProjectService; } /// /// 查询工艺建模项目表列表 /// /// /// [HttpGet("list")] [ActionPermissionFilter(Permission = "process:promodelproject:list")] public IActionResult QueryProModelProject([FromQuery] ProModelProjectQueryDto parm) { var response = _ProModelProjectService.GetList(parm); return SUCCESS(response); } /// /// 查询工艺建模项目表详情 /// /// /// [HttpGet("{Id}")] [ActionPermissionFilter(Permission = "process:promodelproject:query")] public IActionResult GetProModelProject(long Id) { var response = _ProModelProjectService.GetInfo(Id); var info = response.Adapt(); return SUCCESS(info); } /// /// 添加工艺建模项目表 /// /// [HttpPost] [ActionPermissionFilter(Permission = "process:promodelproject:add")] [Log(Title = "工艺建模项目表", BusinessType = BusinessType.INSERT)] public IActionResult AddProModelProject([FromBody] ProModelProjectDto parm) { var modal = parm.Adapt().ToCreate(HttpContext); var response = _ProModelProjectService.AddProModelProject(modal); return SUCCESS(response); } /// /// 更新工艺建模项目表 /// /// [HttpPut] [ActionPermissionFilter(Permission = "process:promodelproject:edit")] [Log(Title = "工艺建模项目表", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateProModelProject([FromBody] ProModelProjectDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _ProModelProjectService.UpdateProModelProject(modal); return ToResponse(response); } /// /// 删除工艺建模项目表 /// /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "process:promodelproject:delete")] [Log(Title = "工艺建模项目表", BusinessType = BusinessType.DELETE)] public IActionResult DeleteProModelProject(string ids) { int[] idsArr = Tools.SpitIntArrary(ids); if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _ProModelProjectService.Delete(idsArr); return ToResponse(response); } /// /// 新增导入Excel /// /// 使用IFromFile必须使用name属性否则获取不到文件 /// 导入成功数 若-1 则Excel读取异常 [HttpPost("addImportProject")] [Log(Title = "新增导入Excel", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)] [AllowAnonymous] public IActionResult AddImportData([FromForm(Name = "file")] IFormFile formFile) { if (formFile == null) { SUCCESS(null); } int result = _ProModelProjectService.AddImportExcel(formFile, HttpContext.GetName()); return ToResponse(result); } /// /// 覆盖导入Excel /// /// 使用IFromFile必须使用name属性否则获取不到文件 /// 导入成功数 若-1 则Excel读取异常 [HttpPost("coverImportProject")] [Log(Title = "覆盖导入Excel", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)] [AllowAnonymous] public IActionResult CoverImportData([FromForm(Name = "file")] IFormFile formFile) { if (formFile == null) { SUCCESS(null); } int result = _ProModelProjectService.CoverImportExcel(formFile, HttpContext.GetName()); return ToResponse(result); } /// /// 导出Excel模板 /// /// [HttpGet("exportTemplate")] [Log(Title = "产品项目模板导出", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)] [AllowAnonymous] public IActionResult ExportTemplateExcel() { (string, string) result = DownloadImportTemplate("processmodel"); return ExportExcel(result.Item2, result.Item1); } /// /// 导出Excel /// /// [HttpGet("exportProject")] [AllowAnonymous] public IActionResult ExportData() { try { // 调用Service层方法获取Excel字节数组和文件名 var (fileBytes, fileName) = _ProModelProjectService.ExportProjectExcel(); // 在Controller中使用File方法返回文件下载响应 return File( fileBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName); } catch (Exception ex) { // 错误处理 return BadRequest(ex.Message); } } } }