Files
kunshan-bzfm-mes-backend/DOAN.Admin.WebApi/Controllers/MES/Material/productionMaterial/MmMaterialController.cs
Carl 96f414de66 新增物料清单Excel导入功能及相关接口
新增物料清单批量导入接口,支持Excel文件上传,自动设置创建时间和状态,完善DTO字段。实现批量插入、校验物料编码、统计导入结果。补充相关依赖和命名空间。
2026-01-06 12:06:05 +08:00

135 lines
4.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.BZFM;
using DOAN.Model.BZFM.Dto;
using DOAN.Model.System;
using DOAN.Service.BZFM;
using DOAN.Service.BZFM.IBZFMService;
using Microsoft.AspNetCore.Mvc;
using MiniExcelLibs;
//创建时间2025-12-25
namespace DOAN.Admin.WebApi.Controllers.BZFM
{
/// <summary>
/// 物料表
/// </summary>
[Verify]
[Route("mes/productionMaterial/MmMaterial")]
public class MmMaterialController : BaseController
{
/// <summary>
/// 物料表接口
/// </summary>
private readonly IMmMaterialService _MmMaterialService;
public MmMaterialController(IMmMaterialService MmMaterialService)
{
_MmMaterialService = MmMaterialService;
}
/// <summary>
/// 查询物料表列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "mmmaterial:list")]
public IActionResult QueryMmMaterial([FromQuery] MmMaterialQueryDto parm)
{
var response = _MmMaterialService.GetList(parm);
return SUCCESS(response);
}
/// <summary>
/// 查询物料表详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
[HttpGet("{Id}")]
[ActionPermissionFilter(Permission = "mmmaterial:query")]
public IActionResult GetMmMaterial(int Id)
{
var response = _MmMaterialService.GetInfo(Id);
var info = response.Adapt<MmMaterialDto>();
return SUCCESS(info);
}
/// <summary>
/// 添加物料表
/// </summary>
/// <returns></returns>
[HttpPost]
[ActionPermissionFilter(Permission = "mmmaterial:add")]
[Log(Title = "物料表", BusinessType = BusinessType.INSERT)]
public IActionResult AddMmMaterial([FromBody] MmMaterialDto parm)
{
var modal = parm.Adapt<MmMaterial>().ToCreate(HttpContext);
var response = _MmMaterialService.AddMmMaterial(modal);
return SUCCESS(response);
}
/// <summary>
/// 更新物料表
/// </summary>
/// <returns></returns>
[HttpPut]
[ActionPermissionFilter(Permission = "mmmaterial:edit")]
[Log(Title = "物料表", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateMmMaterial([FromBody] MmMaterialDto parm)
{
var modal = parm.Adapt<MmMaterial>().ToUpdate(HttpContext);
var response = _MmMaterialService.UpdateMmMaterial(modal);
return ToResponse(response);
}
/// <summary>
/// 删除物料表
/// </summary>
/// <returns></returns>
[HttpPost("delete/{ids}")]
[ActionPermissionFilter(Permission = "mmmaterial:delete")]
[Log(Title = "物料表", BusinessType = BusinessType.DELETE)]
public IActionResult DeleteMmMaterial([FromRoute]string ids)
{
var idArr = Tools.SplitAndConvert<int>(ids);
return ToResponse(_MmMaterialService.Delete(idArr));
}
/// <summary>
/// 获取物料表类别下拉框
/// </summary>
/// <returns></returns>
[HttpPost("GetMmMaterialCategoryOptions")]
[AllowAnonymous]
public IActionResult GetMmMaterialCategoryOptions([FromBody] MmMaterialCategoryDto parm)
{
var response = _MmMaterialService.GetMmMaterialCategoryOptions(parm);
return SUCCESS(response);
}
/// <summary>
/// 导入
/// </summary>
/// <param name="formFile">使用IFromFile必须使用name属性否则获取不到文件</param>
/// <returns></returns>
[HttpPost("importData")]
[Log(Title = "物料清单导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)]
[ActionPermissionFilter(Permission = "mmmaterial:import")]
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
{
List<MmMaterialQueryDto> material = new();
using (var stream = formFile.OpenReadStream())
{
material = stream.Query<MmMaterialQueryDto>(startCell: "A2").ToList();
}
return SUCCESS(_MmMaterialService.Importmaterial(material));
}
}
}