2025-11-06 20:28:30 +08:00

184 lines
6.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// 工艺建模项目表
/// </summary>
[Verify]
[Route("mes/process/proModelProject")]
public class ProModelProjectController : BaseController
{
/// <summary>
/// 工艺建模项目表接口
/// </summary>
private readonly IProModelProjectService _ProModelProjectService;
public ProModelProjectController(IProModelProjectService ProModelProjectService)
{
_ProModelProjectService = ProModelProjectService;
}
/// <summary>
/// 查询工艺建模项目表列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "process:promodelproject:list")]
public IActionResult QueryProModelProject([FromQuery] ProModelProjectQueryDto parm)
{
var response = _ProModelProjectService.GetList(parm);
return SUCCESS(response);
}
/// <summary>
/// 查询工艺建模项目表详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
[HttpGet("{Id}")]
[ActionPermissionFilter(Permission = "process:promodelproject:query")]
public IActionResult GetProModelProject(long Id)
{
var response = _ProModelProjectService.GetInfo(Id);
var info = response.Adapt<ProModelProject>();
return SUCCESS(info);
}
/// <summary>
/// 添加工艺建模项目表
/// </summary>
/// <returns></returns>
[HttpPost]
[ActionPermissionFilter(Permission = "process:promodelproject:add")]
[Log(Title = "工艺建模项目表", BusinessType = BusinessType.INSERT)]
public IActionResult AddProModelProject([FromBody] ProModelProjectDto parm)
{
var modal = parm.Adapt<ProModelProject>().ToCreate(HttpContext);
var response = _ProModelProjectService.AddProModelProject(modal);
return SUCCESS(response);
}
/// <summary>
/// 更新工艺建模项目表
/// </summary>
/// <returns></returns>
[HttpPut]
[ActionPermissionFilter(Permission = "process:promodelproject:edit")]
[Log(Title = "工艺建模项目表", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateProModelProject([FromBody] ProModelProjectDto parm)
{
var modal = parm.Adapt<ProModelProject>().ToUpdate(HttpContext);
var response = _ProModelProjectService.UpdateProModelProject(modal);
return ToResponse(response);
}
/// <summary>
/// 删除工艺建模项目表
/// </summary>
/// <returns></returns>
[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);
}
/// <summary>
/// 新增导入Excel
/// </summary>
/// <param name="formFile">使用IFromFile必须使用name属性否则获取不到文件</param>
/// <returns>导入成功数 若-1 则Excel读取异常</returns>
[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);
}
/// <summary>
/// 覆盖导入Excel
/// </summary>
/// <param name="formFile">使用IFromFile必须使用name属性否则获取不到文件</param>
/// <returns>导入成功数 若-1 则Excel读取异常</returns>
[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);
}
/// <summary>
/// 导出Excel模板
/// </summary>
/// <returns></returns>
[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);
}
/// <summary>
/// 导出Excel
/// </summary>
/// <returns></returns>
[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);
}
}
}
}