From f5415b17fe7220f64f5f9e0dd6a221aaa9a70162 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=AD=A3=E6=98=93?= Date: Fri, 22 Nov 2024 09:20:00 +0800 Subject: [PATCH] 1 --- ZR.Service/mes/qc/CommonFQCService.cs | 196 +++++++++++++++++++++++++- 1 file changed, 192 insertions(+), 4 deletions(-) diff --git a/ZR.Service/mes/qc/CommonFQCService.cs b/ZR.Service/mes/qc/CommonFQCService.cs index a5351d05..6b97c97a 100644 --- a/ZR.Service/mes/qc/CommonFQCService.cs +++ b/ZR.Service/mes/qc/CommonFQCService.cs @@ -1203,11 +1203,14 @@ namespace ZR.Service.mes.qc boardData.PolishStockTime = Context .Queryable() + .WhereIF( + !string.IsNullOrEmpty(query.Partnumber), + it => it.Partnumber == query.Partnumber + ) .Where(it => it.Status == 1) .Select(it => it.CreatedTime) - .First() ?? new DateTime(2024, 10, 19, 0, 0, 0); - - // 抛光盘点库存 + .First() ?? new DateTime(2024, 11, 16, 12, 0, 0); + // 抛光盘点库存(起初数) int polishWarehouseTotal = Context .Queryable() @@ -1227,6 +1230,10 @@ namespace ZR.Service.mes.qc it => it.FinishedPartNumber == query.Partnumber ) .Where(it => it.StartTime >= boardData.PolishStockTime) + .WhereIF( + query.EndTime != null, + it => it.StartTime <= query.EndTime.Value.ToLocalTime() + ) .Sum(it => it.PaoguangTotal) ?? 0 ) / 3; @@ -1239,6 +1246,10 @@ namespace ZR.Service.mes.qc it => it.Partnumber == query.Partnumber ) .Where(it => it.StartTime >= boardData.PolishStockTime) + .WhereIF( + query.EndTime != null, + it => it.StartTime <= query.EndTime.Value.ToLocalTime() + ) .Sum(it => it.PaoguangTotal) ?? 0; // GP12反抛 int gP12PolishTotal = @@ -1249,6 +1260,10 @@ namespace ZR.Service.mes.qc it => it.Partnumber == query.Partnumber ) .Where(it => it.StartTime >= boardData.PolishStockTime) + .WhereIF( + query.EndTime != null, + it => it.StartTime <= query.EndTime.Value.ToLocalTime() + ) .Sum(it => it.PaoguangTotal) ?? 0; // 抛光总投入数 int polishRequireTotal = @@ -1259,6 +1274,10 @@ namespace ZR.Service.mes.qc it => it.Partnumber == query.Partnumber ) .Where(it => it.StartTime >= boardData.PolishStockTime) + .WhereIF( + query.EndTime != null, + it => it.StartTime <= query.EndTime.Value.ToLocalTime() + ) .Sum(it => it.RequireNumber) ?? 0; // 抛光实际库存 @@ -1273,9 +1292,13 @@ namespace ZR.Service.mes.qc boardData.OneTimeStockTime = Context .Queryable() + .WhereIF( + !string.IsNullOrEmpty(query.Partnumber), + it => it.Partnumber == query.Partnumber + ) .Where(it => it.Status == 1) .Select(it => it.CreatedTime) - .First() ?? new DateTime(2024, 10, 19, 0, 0, 0); + .First() ?? new DateTime(2024, 11, 16, 12, 0, 0); // 一次合格盘点库存 int oneTimeWarehouseTotal = @@ -1296,6 +1319,10 @@ namespace ZR.Service.mes.qc it => it.FinishedPartNumber == query.Partnumber ) .Where(it => it.StartTime >= boardData.OneTimeStockTime) + .WhereIF( + query.EndTime != null, + it => it.StartTime <= query.EndTime.Value.ToLocalTime() + ) .Sum(it => it.QualifiedNumber) ?? 0; // 倒车雷达 string[] checkStrArray2 = { "倒车雷达" }; @@ -1319,6 +1346,10 @@ namespace ZR.Service.mes.qc it => it.FinishedPartNumber == query.Partnumber ) .And(it => it.StartTime >= boardData.OneTimeStockTime) + .AndIF( + query.EndTime != null, + it => it.StartTime <= query.EndTime.Value.ToLocalTime() + ) .ToExpression(); // 倒车雷达 int productParkingSensorbQualifiedTotal = @@ -1339,6 +1370,10 @@ namespace ZR.Service.mes.qc it => it.Partnumber == query.Partnumber ) .Where(it => it.StartTime >= boardData.OneTimeStockTime) + .WhereIF( + query.EndTime != null, + it => it.StartTime <= query.EndTime.Value.ToLocalTime() + ) .Sum(it => it.QualifiedNumber) ?? 0; // GP12总投入 int gP12RequireTotal = @@ -1349,6 +1384,10 @@ namespace ZR.Service.mes.qc it => it.Partnumber == query.Partnumber ) .Where(it => it.StartTime >= boardData.OneTimeStockTime) + .WhereIF( + query.EndTime != null, + it => it.StartTime <= query.EndTime.Value.ToLocalTime() + ) .Sum(it => it.RequireNumber) ?? 0; // 后道直接出库 int afterPolishOutTotal = @@ -1360,6 +1399,10 @@ namespace ZR.Service.mes.qc ) .Where(it => it.Type == 1) .Where(it => it.StartTime >= boardData.OneTimeStockTime) + .WhereIF( + query.EndTime != null, + it => it.StartTime <= query.EndTime.Value.ToLocalTime() + ) .Sum(it => it.RequireNumber) ?? 0; boardData.RealOneTimeWarehouseCount = @@ -1369,6 +1412,151 @@ namespace ZR.Service.mes.qc - gP12RequireTotal - afterPolishOutTotal; + if ( + query.EndTime != null + && query.StartTime.Value.ToLocalTime() > boardData.OneTimeStockTime + || query.StartTime.Value.ToLocalTime() > boardData.PolishStockTime + ) + { + QcProductAndPolishAndOneTimeFqcBoardQuery oldQuery = + new() + { + Partnumber = query.Partnumber, + EndTime = query.StartTime.Value.ToLocalTime() + }; + // 产线抛光 + int productPolishTotal2 = + ( + Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(query.Partnumber), + it => it.FinishedPartNumber == query.Partnumber + ) + .Where(it => it.StartTime >= boardData.PolishStockTime) + .Where(it => it.StartTime <= query.StartTime.Value.ToLocalTime()) + .Sum(it => it.PaoguangTotal) ?? 0 + ) / 3; + + // 后道反抛 + int afterPolishPolishTotal2 = + Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(query.Partnumber), + it => it.Partnumber == query.Partnumber + ) + .Where(it => it.StartTime >= boardData.PolishStockTime) + .Where(it => it.StartTime <= query.StartTime.Value.ToLocalTime()) + .Sum(it => it.PaoguangTotal) ?? 0; + // GP12反抛 + int gP12PolishTotal2 = + Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(query.Partnumber), + it => it.Partnumber == query.Partnumber + ) + .Where(it => it.StartTime >= boardData.PolishStockTime) + .Where(it => it.StartTime <= query.StartTime.Value.ToLocalTime()) + .Sum(it => it.PaoguangTotal) ?? 0; + // 抛光总投入数 + int polishRequireTotal2 = + Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(query.Partnumber), + it => it.Partnumber == query.Partnumber + ) + .Where(it => it.StartTime >= boardData.PolishStockTime) + .Where(it => it.StartTime <= query.StartTime.Value.ToLocalTime()) + .Sum(it => it.RequireNumber) ?? 0; + + // 抛光实际库存时间修正 + int realPolishWarehouseCount2 = + productPolishTotal2 + + afterPolishPolishTotal2 + + gP12PolishTotal2 + - polishRequireTotal2; + boardData.RealPolishWarehouseCount -= realPolishWarehouseCount2; + + //一次合格实际库存时间修正 + + // 产线合格 + int productQualifiedTotal2 = + Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(query.Partnumber), + it => it.FinishedPartNumber == query.Partnumber + ) + .Where(it => it.StartTime >= boardData.OneTimeStockTime) + .Where(it => it.StartTime <= query.StartTime.Value.ToLocalTime()) + .Sum(it => it.QualifiedNumber) ?? 0; + var predicateParkingSensor2 = Expressionable + .Create() + .And(it => ParkingSensorPartNumberList.Contains(it.FinishedPartNumber)) + .AndIF( + !string.IsNullOrEmpty(query.Partnumber), + it => it.FinishedPartNumber == query.Partnumber + ) + .And(it => it.StartTime >= boardData.OneTimeStockTime) + .And(it => it.StartTime <= query.StartTime.Value.ToLocalTime()) + .ToExpression(); + // 倒车雷达 + int productParkingSensorbQualifiedTotal2 = + Context + .Queryable() + .Where(predicateParkingSensor) + .Sum(it => it.QualifiedNumber) ?? 0; + // 产线合格 - 倒车雷达 + productQualifiedTotal2 = + (productQualifiedTotal2 - productParkingSensorbQualifiedTotal2) / 3; + + // 抛光合格 + int polishQualifiedTotal2 = + Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(query.Partnumber), + it => it.Partnumber == query.Partnumber + ) + .Where(it => it.StartTime >= boardData.OneTimeStockTime) + .Where(it => it.StartTime <= query.StartTime.Value.ToLocalTime()) + .Sum(it => it.QualifiedNumber) ?? 0; + // GP12总投入 + int gP12RequireTotal2 = + Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(query.Partnumber), + it => it.Partnumber == query.Partnumber + ) + .Where(it => it.StartTime >= boardData.OneTimeStockTime) + .Where(it => it.StartTime <= query.StartTime.Value.ToLocalTime()) + .Sum(it => it.RequireNumber) ?? 0; + // 后道直接出库 + int afterPolishOutTotal2 = + Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(query.Partnumber), + it => it.Partnumber == query.Partnumber + ) + .Where(it => it.Type == 1) + .Where(it => it.StartTime >= boardData.OneTimeStockTime) + .Where(it => it.StartTime <= query.StartTime.Value.ToLocalTime()) + .Sum(it => it.RequireNumber) ?? 0; + + int realOneTimeWarehouseCount2 = + productQualifiedTotal2 + + polishQualifiedTotal2 + - gP12RequireTotal2 + - afterPolishOutTotal2; + + boardData.RealOneTimeWarehouseCount -= realOneTimeWarehouseCount2; + } + return boardData; }