using Microsoft.AspNetCore.Mvc; using MiniExcelLibs; using ZR.Admin.WebApi.Extensions; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; using ZR.Service.mes.wms.IService; //创建时间:2024-08-08 namespace ZR.Admin.WebApi.Controllers { /// /// 一次合格品仓库 /// [Route("/mes/wm/WmOneTimeInventory")] public class WmOneTimeInventoryController : BaseController { /// /// 一次合格品仓库接口 /// private readonly IWmOneTimeInventoryService _WmOneTimeInventoryService; public WmOneTimeInventoryController(IWmOneTimeInventoryService WmOneTimeInventoryService) { _WmOneTimeInventoryService = WmOneTimeInventoryService; } /// /// 查询一次合格品仓库列表 /// /// /// [HttpGet("list")] // [ActionPermissionFilter(Permission = "business:wmonetimeinventory:list")] public IActionResult QueryWmOneTimeInventory([FromQuery] WmOneTimeInventoryQueryDto parm) { var response = _WmOneTimeInventoryService.GetListNew(parm); return SUCCESS(response); } /// /// 查询一次合格品仓库详情 /// /// /// [HttpGet("{Id}")] // [ActionPermissionFilter(Permission = "business:wmonetimeinventory:query")] public IActionResult GetWmOneTimeInventory(string Id) { var response = _WmOneTimeInventoryService.GetInfo(Id); var info = response.Adapt(); return SUCCESS(info); } /// /// 添加一次合格品仓库 /// /// [HttpPost] // [ActionPermissionFilter(Permission = "business:wmonetimeinventory:add")] [Log(Title = "一次合格品仓库", BusinessType = BusinessType.INSERT)] public IActionResult AddWmOneTimeInventory([FromBody] WmOneTimeInventoryDto parm) { var modal = parm.Adapt().ToCreate(HttpContext); var response = _WmOneTimeInventoryService.AddWmOneTimeInventory(modal); return SUCCESS(response); } /// /// 更新一次合格品仓库 /// /// [HttpPut] // [ActionPermissionFilter(Permission = "business:wmonetimeinventory:edit")] [Log(Title = "一次合格品仓库", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateWmOneTimeInventory([FromBody] WmOneTimeInventoryDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmOneTimeInventoryService.UpdateWmOneTimeInventory(modal); return ToResponse(response); } /// /// 删除一次合格品仓库 /// /// [HttpDelete("{ids}")] // [ActionPermissionFilter(Permission = "business:wmonetimeinventory:delete")] [Log(Title = "一次合格品仓库", BusinessType = BusinessType.DELETE)] public IActionResult DeleteWmOneTimeInventory(string ids) { string[] idsArr = ids.Split(','); if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _WmOneTimeInventoryService.Delete(idsArr); return ToResponse(response); } /// /// 一次合格品手动入库 /// /// [HttpPost("doWmOneTimeWarehousing")] [Log(Title = "一次合格品手动入库", BusinessType = BusinessType.UPDATE)] public IActionResult DoWmOneTimeWarehousing([FromBody] WmOneTimeInventoryDto parm) { try { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmOneTimeInventoryService.DoWmOneTimeWarehousing(modal); return ToResponse(new ApiResult(200, "手动入库成功", response)); } catch (Exception e) { return ToResponse(new ApiResult(500, "手动入库异常:" + e.Message, e.Message)); } } /// /// 一次合格品手动出库 /// /// [HttpPost("doWmOneTimeRetrieval")] [Log(Title = "一次合格品手动出库", BusinessType = BusinessType.UPDATE)] public IActionResult DoWmOneTimeRetrieval([FromBody] WmOneTimeInventoryDto parm) { try { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmOneTimeInventoryService.DoWmOneTimeRetrieval(modal); return ToResponse(new ApiResult(200, "手动出库成功", response)); } catch (Exception e) { return ToResponse(new ApiResult(500, "手动出库异常:" + e.Message, e.Message)); } } /// /// 一次合格品仓库盘点 /// /// [HttpPost("doWmOneTimeStocktaking")] [Log(Title = "一次合格品仓库盘点", BusinessType = BusinessType.INSERT)] public IActionResult DoWmOneTimeStocktaking([FromBody] WmOneTimeInventoryDto parm) { try { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmOneTimeInventoryService.DoWmOneTimeStocktaking(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 = _WmOneTimeInventoryService.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(_WmOneTimeInventoryService.ImportExcel(importList)); } /// /// 一次合格品仓库数据导出 /// /// /// [HttpGet("export")] [Log(Title = "一次合格品仓库数据导出", BusinessType = BusinessType.EXPORT)] public IActionResult Export([FromQuery] WmOneTimeInventoryQueryDto parm) { parm.PageNum = 1; parm.PageSize = 10000; var list = _WmOneTimeInventoryService.GetExportList(parm); var result = ExportExcelMini(list, "wm_one_time_inventory", "一次合格品仓库数据"); return ExportExcel(result.Item2, result.Item1); } /// /// 一次合格品仓库数据导出 /// /// [HttpGet("ErrorCheck")] [AllowAnonymous] public IActionResult ErrorCheck() { var list = _WmOneTimeInventoryService.CheckErrorTable(); return SUCCESS(list); } } }