using Microsoft.AspNetCore.Mvc; using DOAN.Model.Dto; using DOAN.Model.Business; using DOAN.Service.Business.IBusinessService; using DOAN.Admin.WebApi.Filters; //创建时间:2025-11-03 namespace DOAN.Admin.WebApi.Controllers { /// /// 产品项目表 /// [Verify] [Route("business/ProcessmodelProject")] public class ProcessmodelProjectController : BaseController { /// /// 产品项目表接口 /// private readonly IProcessmodelProjectService _ProcessmodelProjectService; public ProcessmodelProjectController(IProcessmodelProjectService ProcessmodelProjectService) { _ProcessmodelProjectService = ProcessmodelProjectService; } /// /// 查询产品项目表列表 /// /// /// [HttpGet("list")] [ActionPermissionFilter(Permission = "business:processmodelproject:list")] public IActionResult QueryProcessmodelProject([FromQuery] ProcessmodelProjectQueryDto parm) { var response = _ProcessmodelProjectService.GetList(parm); return SUCCESS(response); } /// /// 查询产品项目表详情 /// /// /// [HttpGet("{Id}")] [ActionPermissionFilter(Permission = "business:processmodelproject:query")] public IActionResult GetProcessmodelProject(long Id) { var response = _ProcessmodelProjectService.GetInfo(Id); var info = response.Adapt(); return SUCCESS(info); } /// /// 添加产品项目表 /// /// [HttpPost] [ActionPermissionFilter(Permission = "business:processmodelproject:add")] [Log(Title = "产品项目表", BusinessType = BusinessType.INSERT)] public IActionResult AddProcessmodelProject([FromBody] ProcessmodelProjectDto parm) { var modal = parm.Adapt().ToCreate(HttpContext); var response = _ProcessmodelProjectService.AddProcessmodelProject(modal); return SUCCESS(response); } /// /// 更新产品项目表 /// /// [HttpPut] [ActionPermissionFilter(Permission = "business:processmodelproject:edit")] [Log(Title = "产品项目表", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateProcessmodelProject([FromBody] ProcessmodelProjectDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _ProcessmodelProjectService.UpdateProcessmodelProject(modal); return ToResponse(response); } /// /// 删除产品项目表 /// /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "business:processmodelproject:delete")] [Log(Title = "产品项目表", BusinessType = BusinessType.DELETE)] public IActionResult DeleteProcessmodelProject(string ids) { int[] idsArr = Tools.SpitIntArrary(ids); if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _ProcessmodelProjectService.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 = _ProcessmodelProjectService.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 = _ProcessmodelProjectService.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) = _ProcessmodelProjectService.ExportProjectExcel(); // 在Controller中使用File方法返回文件下载响应 return File( fileBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName); } catch (Exception ex) { // 错误处理 return BadRequest(ex.Message); } } } }