using Microsoft.AspNetCore.Mvc; using MiniExcelLibs; using NPOI.HPSF; using System.Text; using System.Web; using ZR.Admin.WebApi.Extensions; using ZR.Admin.WebApi.Filters; using ZR.Model; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; using ZR.Model.System; using ZR.Model.System.Dto; using ZR.Service.mes.wms; using ZR.Service.mes.wms.IService; //创建时间:2024-07-25 namespace ZR.Admin.WebApi.Controllers { /// /// 工艺路线-抛光 库存表 /// // [Verify] [Route("/mes/wm/WmPolishInventory")] public class WmPolishInventoryController : BaseController { /// /// 工艺路线-抛光 库存表接口 /// private readonly IWmPolishInventoryService _WmPolishInventoryService; public WmPolishInventoryController(IWmPolishInventoryService WmPolishInventoryService) { _WmPolishInventoryService = WmPolishInventoryService; } /// /// 查询工艺路线-抛光 库存表列表 /// /// /// [HttpGet("list")] // [ActionPermissionFilter(Permission = "business:wmpolishinventory:list")] public IActionResult QueryWmPolishInventory([FromQuery] WmPolishInventoryQueryDto parm) { var response = _WmPolishInventoryService.GetList(parm); return SUCCESS(response); } /// /// 查询工艺路线-抛光 库存表详情 /// /// /// [HttpGet("{Id}")] // [ActionPermissionFilter(Permission = "business:wmpolishinventory:query")] public IActionResult GetWmPolishInventory(string Id) { var response = _WmPolishInventoryService.GetInfo(Id); var info = response.Adapt(); return SUCCESS(info); } /// /// 添加抛光 库存表 /// /// [HttpPost] // [ActionPermissionFilter(Permission = "business:wmpolishinventory:add")] [Log(Title = "抛光 库存表", BusinessType = BusinessType.INSERT)] public IActionResult AddWmPolishInventory([FromBody] WmPolishInventoryDto parm) { var modal = parm.Adapt().ToCreate(HttpContext); var response = _WmPolishInventoryService.AddWmPolishInventory(modal); return SUCCESS(response); } /// /// 更新抛光 库存表 /// /// [HttpPut] // [ActionPermissionFilter(Permission = "business:wmpolishinventory:edit")] [Log(Title = "抛光 库存表", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateWmPolishInventory([FromBody] WmPolishInventoryDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmPolishInventoryService.UpdateWmPolishInventory(modal); return ToResponse(response); } /// /// 删除抛光 库存表 /// /// [HttpDelete("{ids}")] // [ActionPermissionFilter(Permission = "business:wmpolishinventory:delete")] [Log(Title = "抛光 库存表", BusinessType = BusinessType.DELETE)] public IActionResult DeleteWmPolishInventory(string ids) { string[] idsArr = ids.Split(","); if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _WmPolishInventoryService.Delete(idsArr); return ToResponse(response); } /// /// 物料下拉菜单查看 /// /// [HttpGet("getMaterialSelectOption")] public IActionResult GetMaterialSelectOption([FromQuery] string query) { try { var response = _WmPolishInventoryService.GetMaterialSelectOption(query); return ToResponse(new ApiResult(200, "获取成功", response)); } catch (Exception e) { return ToResponse(new ApiResult(500, "获取物料下拉菜单数据失败:" + e.Message, null)); } } /// /// 抛光手动入库 /// /// [HttpPost("doWmPolishWarehousing")] // [ActionPermissionFilter(Permission = "business:wmpolishinventory:edit")] [Log(Title = "抛光手动入库", BusinessType = BusinessType.UPDATE)] public IActionResult DoWmPolishWarehousing([FromBody] WmPolishInventoryDto parm) { try { var modal = parm.Adapt().ToCreate(HttpContext); var response = _WmPolishInventoryService.DoWmPolishWarehousing(modal); return ToResponse(new ApiResult(200, "手动入库成功", response)); } catch (Exception e) { return ToResponse(new ApiResult(500, "手动入库异常:" + e.Message, e.Message)); } } /// /// 抛光手动出库 /// /// [HttpPost("doWmPolishRetrieval")] // [ActionPermissionFilter(Permission = "business:wmpolishinventory:edit")] [Log(Title = "抛光手动出库", BusinessType = BusinessType.UPDATE)] public IActionResult DoWmPolishRetrieval([FromBody] WmPolishInventoryDto parm) { try { var modal = parm.Adapt().ToCreate(HttpContext); var response = _WmPolishInventoryService.DoWmPolishRetrieval(modal); return ToResponse(new ApiResult(200, "手动出库成功", response)); } catch (Exception e) { return ToResponse(new ApiResult(500, "手动出库异常:" + e.Message, e.Message)); } } /// /// 抛光仓库盘点 /// /// [HttpPost("doWmPolishStocktaking")] // [ActionPermissionFilter(Permission = "business:wmpolishinventory:edit")] [Log(Title = "抛光仓库盘点", BusinessType = BusinessType.INSERT)] public IActionResult DoWmPolishStocktaking([FromBody] WmPolishInventoryDto parm) { try { var modal = parm.Adapt().ToCreate(HttpContext); var response = _WmPolishInventoryService.DoWmPolishStocktaking(modal); return ToResponse(new ApiResult(200, "盘点成功", response)); } catch (Exception e) { return ToResponse(new ApiResult(500, "盘点异常:" + e.Message, e.Message)); } } /// /// 查询毛坯库存零件数 /// /// /// [HttpGet("getPartNumber")] public IActionResult GetPartNumber() { var response = _WmPolishInventoryService.GetPartNumber(); return SUCCESS(response); } /// /// 抛光导入模板下载 /// /// [HttpGet("importTemplate")] [Log(Title = "抛光模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)] [AllowAnonymous] public IActionResult ImportTemplateExcel() { string fileName = "抛光仓库盘点模板"; (string, string) result = DownloadImportTemplate(fileName); return ExportExcel(result.Item2, result.Item1); } /// /// 导入 /// /// 使用IFromFile必须使用name属性否则获取不到文件 /// [HttpPost("importData")] [Log(Title = "抛光盘点导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)] [AllowAnonymous] public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile) { List importList = new(); using (var stream = formFile.OpenReadStream()) { importList = stream.Query(startCell: "A1").ToList(); } return SUCCESS(_WmPolishInventoryService.ImportExcel(importList)); } /// /// 抛光仓库数据导出 /// /// /// [HttpGet("export")] [Log(Title = "抛光仓库数据导出", BusinessType = BusinessType.EXPORT)] public IActionResult Export([FromQuery] WmPolishInventoryQueryDto parm) { parm.PageNum = 1; parm.PageSize = 10000; var list = _WmPolishInventoryService.GetExportList(parm); var result = ExportExcelMini(list, "wm_polish_inventory", "抛光仓库数据"); return ExportExcel(result.Item2, result.Item1); } } }