using DOAN.Admin.WebApi.Filters; using DOAN.Model; using DOAN.Model.BZFM; using DOAN.Model.BZFM.Dto; using DOAN.Model.MES.product; using DOAN.Model.System; using DOAN.Model.System.Dto; using DOAN.Service.BZFM; using DOAN.Service.BZFM.IBZFMService; using Microsoft.AspNetCore.Mvc; using MiniExcelLibs; using NPOI.SS.Formula.Functions; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; //创建时间:2025-12-25 namespace DOAN.Admin.WebApi.Controllers.BZFM { /// /// 物料表 /// [Verify] [Route("mes/productionMaterial/MmMaterial")] public class MmMaterialController : BaseController { /// /// 物料表接口 /// private readonly IMmMaterialService _MmMaterialService; public MmMaterialController(IMmMaterialService MmMaterialService) { _MmMaterialService = MmMaterialService; } /// /// 查询物料表列表 /// /// /// [HttpGet("list")] [ActionPermissionFilter(Permission = "mmmaterial:list")] public IActionResult QueryMmMaterial([FromQuery] MmMaterialQueryDto parm) { var response = _MmMaterialService.GetList(parm); return SUCCESS(response); } /// /// 查询物料表详情 /// /// /// [HttpGet("{Id}")] [ActionPermissionFilter(Permission = "mmmaterial:query")] public IActionResult GetMmMaterial(int Id) { var response = _MmMaterialService.GetInfo(Id); var info = response.Adapt(); return SUCCESS(info); } /// /// 添加物料表 /// /// [HttpPost] [ActionPermissionFilter(Permission = "mmmaterial:add")] [Log(Title = "物料表", BusinessType = BusinessType.INSERT)] public IActionResult AddMmMaterial([FromBody] MmMaterialDto parm) { var modal = parm.Adapt().ToCreate(HttpContext); var response = _MmMaterialService.AddMmMaterial(modal); return SUCCESS(response); } /// /// 更新物料表 /// /// [HttpPut] [ActionPermissionFilter(Permission = "mmmaterial:edit")] [Log(Title = "物料表", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateMmMaterial([FromBody] MmMaterialDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _MmMaterialService.UpdateMmMaterial(modal); return ToResponse(response); } /// /// 删除物料表 /// /// [HttpPost("delete/{ids}")] [ActionPermissionFilter(Permission = "mmmaterial:delete")] [Log(Title = "物料表", BusinessType = BusinessType.DELETE)] public IActionResult DeleteMmMaterial([FromRoute]string ids) { var idArr = Tools.SplitAndConvert(ids); return ToResponse(_MmMaterialService.Delete(idArr)); } /// /// 获取物料表类别下拉框 /// /// [HttpPost("GetMmMaterialCategoryOptions")] [AllowAnonymous] public IActionResult GetMmMaterialCategoryOptions([FromBody] MmMaterialCategoryDto parm) { var response = _MmMaterialService.GetMmMaterialCategoryOptions(parm); return SUCCESS(response); } /// /// 导入 /// /// 使用IFromFile必须使用name属性否则获取不到文件 /// [HttpPost("importData")] [Log(Title = "物料清单导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)] [ActionPermissionFilter(Permission = "mmmaterial:import")] public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile) { //return SUCCESS(_MmMaterialService.Importmaterial(material)); if (formFile == null) { return SUCCESS(null); } ImportResultDto response = _MmMaterialService.Importmaterial(formFile, HttpContext.GetName()); return SUCCESS(response); } /// /// 下载物料导入模板 /// /// [HttpGet("importTemplate")] [Log(Title = "物料模板", BusinessType = BusinessType.EXPORT)] [AllowAnonymous] public IActionResult ImportTemplateExcel() { // create an empty sample list of export DTO to generate header row var sample = new List(); var result = DownloadImportTemplate(sample, "material"); return ExportExcel(result.Item2, result.Item1); } /// /// 物料清单导出 /// /// /// [HttpGet("export")] [Log(Title = "物料清单导出", BusinessType = BusinessType.EXPORT)] [ActionPermissionFilter(Permission = "mmmaterial:export")] public IActionResult MaterialExport([FromQuery] MmMaterialQueryDto material) { var list = _MmMaterialService.SelectMaterialList(material, new PagerInfo(1, 10000)); var data = (list?.Result ?? new List()); var result = ExportExcelMini(data, "material", "物料清单"); return ExportExcel(result.Item2, result.Item1); } } }