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 ToResponse(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
);
}
///
/// 工艺信息导入模板下载
///
///
[HttpGet("importTemplate")]
[Log(Title = "工艺路线导入模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)]
[AllowAnonymous]
public IActionResult ImportTemplateExcel()
{
(string, string) result = DownloadImportTemplate("工艺路线导入模板");
return ExportExcel(result.Item2, result.Item1);
}
///
/// 查询所有工艺路线信息下拉列表
///
///
///
[HttpGet("GetAllProcessInfo")]
public IActionResult GetAllProcessInfo()
{
var response = _ProcessInfoService.GetAllProcessInfo();
return SUCCESS(response);
}
}
}