diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmOneTimeInventoryController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmOneTimeInventoryController.cs index a8b8640f..190f6ba2 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmOneTimeInventoryController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmOneTimeInventoryController.cs @@ -117,7 +117,7 @@ namespace ZR.Admin.WebApi.Controllers { try { - var modal = parm.Adapt().ToCreate(HttpContext); + var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmOneTimeInventoryService.DoWmOneTimeWarehousing(modal); return ToResponse(new ApiResult(200, "手动入库成功", response)); } @@ -137,7 +137,7 @@ namespace ZR.Admin.WebApi.Controllers { try { - var modal = parm.Adapt().ToCreate(HttpContext); + var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmOneTimeInventoryService.DoWmOneTimeRetrieval(modal); return ToResponse(new ApiResult(200, "手动出库成功", response)); } @@ -157,7 +157,7 @@ namespace ZR.Admin.WebApi.Controllers { try { - var modal = parm.Adapt().ToCreate(HttpContext); + var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmOneTimeInventoryService.DoWmOneTimeStocktaking(modal); return ToResponse(new ApiResult(200, "盘点成功", response)); } diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmPolishInventoryController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmPolishInventoryController.cs index eddaf562..e39cd48b 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmPolishInventoryController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmPolishInventoryController.cs @@ -143,7 +143,7 @@ namespace ZR.Admin.WebApi.Controllers { try { - var modal = parm.Adapt().ToCreate(HttpContext); + var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmPolishInventoryService.DoWmPolishWarehousing(modal); return ToResponse(new ApiResult(200, "手动入库成功", response)); } @@ -164,7 +164,7 @@ namespace ZR.Admin.WebApi.Controllers { try { - var modal = parm.Adapt().ToCreate(HttpContext); + var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmPolishInventoryService.DoWmPolishRetrieval(modal); return ToResponse(new ApiResult(200, "手动出库成功", response)); } @@ -185,7 +185,7 @@ namespace ZR.Admin.WebApi.Controllers { try { - var modal = parm.Adapt().ToCreate(HttpContext); + var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmPolishInventoryService.DoWmPolishStocktaking(modal); return ToResponse(new ApiResult(200, "盘点成功", response)); } diff --git a/ZR.Service/mes/wms/WmOneTimeInventoryService.cs b/ZR.Service/mes/wms/WmOneTimeInventoryService.cs index 507af37a..ac9ed1c5 100644 --- a/ZR.Service/mes/wms/WmOneTimeInventoryService.cs +++ b/ZR.Service/mes/wms/WmOneTimeInventoryService.cs @@ -4,6 +4,7 @@ using Infrastructure.Attribute; using Infrastructure.Extensions; using SqlSugar; using ZR.Model; +using ZR.Model.MES.qc; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; using ZR.Repository; @@ -44,7 +45,7 @@ namespace ZR.Service.mes.wms ) .Where((m, p) => m.Status == 1) .Where((m, p) => m.Type == 1) - .WhereIF(string.IsNullOrEmpty(parm.Partnumber), (m, p) => p.Status == 1) + // .WhereIF(string.IsNullOrEmpty(parm.Partnumber), (m, p) => p.Status == 1) .OrderBy((m, p) => m.Description) .Select( (m, p) => @@ -71,6 +72,74 @@ namespace ZR.Service.mes.wms } ) .ToList(); + if (string.IsNullOrEmpty(parm.Partnumber)) + { + // 盘点时间 + DateTime? checkTime = + Context + .Queryable() + .Where(it => it.Status == 1) + .Select(it => it.CreatedTime) + .First() ?? new DateTime(2024, 11, 16, 12, 0, 0); + list = list.Where(ls => + { + if (ls.Status != null) + { + return true; + } + + if ( + !string.IsNullOrEmpty(ls.Description) && ls.Description.Contains("倒车雷达") + ) + { + return false; + } + + bool bol1 = Context + .Queryable() + .Where(it => it.FinishedPartNumber == ls.Partnumber) + .Where(it => it.StartTime >= checkTime) + .Any(); + bool bol2 = Context + .Queryable() + .Where(it => it.Partnumber == ls.Partnumber) + .Where(it => it.StartTime >= checkTime) + .Any(); + bool bol3 = Context + .Queryable() + .Where(it => it.Partnumber == ls.Partnumber) + .Where(it => it.StartTime >= checkTime) + .Any(); + bool bol4 = Context + .Queryable() + .Where(it => it.Partnumber == ls.Partnumber) + .Where(it => it.StartTime >= checkTime) + .Any(); + if (bol1) + { + return true; + } + else if (bol2) + { + return true; + } + else if (bol3) + { + return true; + } + else if (bol4) + { + return true; + } + else + { + return false; + } + }) + .Where(it => !string.IsNullOrEmpty(it.Partnumber)) + .DistinctBy(it => it.Partnumber) + .ToList(); + } foreach (WmOneTimeInventoryDto item in list) { // 获取实际库存 diff --git a/ZR.Service/mes/wms/WmPolishInventoryService.cs b/ZR.Service/mes/wms/WmPolishInventoryService.cs index 783a5ffd..90e2d74c 100644 --- a/ZR.Service/mes/wms/WmPolishInventoryService.cs +++ b/ZR.Service/mes/wms/WmPolishInventoryService.cs @@ -13,6 +13,7 @@ using Newtonsoft.Json.Linq; using SqlSugar; using ZR.Common; using ZR.Model; +using ZR.Model.MES.qc; using ZR.Model.MES.qc.DTO; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; @@ -57,7 +58,7 @@ namespace ZR.Service.mes.wms ) .Where((m, p) => m.Status == 1) .Where((m, p) => m.Type == 1) - .WhereIF(string.IsNullOrEmpty(parm.Partnumber), (m, p) => p.Status == 1) + //.WhereIF(string.IsNullOrEmpty(parm.Partnumber), (m, p) => p.Status == 1) .OrderBy((m, p) => m.Description) .Select( (m, p) => @@ -84,6 +85,76 @@ namespace ZR.Service.mes.wms } ) .ToList(); + //TODO 优化1 + if (string.IsNullOrEmpty(parm.Partnumber)) + { + // 盘点时间 + DateTime? checkTime = + Context + .Queryable() + .Where(it => it.Status == 1) + .Select(it => it.CreatedTime) + .First() ?? new DateTime(2024, 11, 16, 12, 0, 0); + list = list.Where(ls => + { + if (ls.Status != null) + { + return true; + } + + if ( + !string.IsNullOrEmpty(ls.Description) && ls.Description.Contains("倒车雷达") + ) + { + return false; + } + + bool bol1 = Context + .Queryable() + .Where(it => it.FinishedPartNumber == ls.Partnumber) + .Where(it => it.StartTime >= checkTime) + .Any(); + bool bol2 = Context + .Queryable() + .Where(it => it.Partnumber == ls.Partnumber) + .Where(it => it.StartTime >= checkTime) + .Any(); + bool bol3 = Context + .Queryable() + .Where(it => it.Partnumber == ls.Partnumber) + .Where(it => it.StartTime >= checkTime) + .Any(); + bool bol4 = Context + .Queryable() + .Where(it => it.Partnumber == ls.Partnumber) + .Where(it => it.StartTime >= checkTime) + .Any(); + if (bol1) + { + return true; + } + else if (bol2) + { + return true; + } + else if (bol3) + { + return true; + } + else if (bol4) + { + return true; + } + else + { + return false; + } + }) + .Where(it => !string.IsNullOrEmpty(it.Partnumber)) + .DistinctBy(it => it.Partnumber) + .ToList(); + } + foreach (WmPolishInventoryDto item in list) { // 获取实际库存