From d34ea2a9fc2334d2bf7383cb64562f301ffbda84 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周四, 17 4月 2025 13:09:07 +0800 Subject: [PATCH] 包中只有一块板时,认定为 不齐包 【Editby shaocx,2025-04-01】 --- LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsCommonnQuery/WmsCommonnQueryService.cs | 143 +++++++++++++++++++++++++++++++++-------------- 1 files changed, 99 insertions(+), 44 deletions(-) diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsCommonnQuery/WmsCommonnQueryService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsCommonnQuery/WmsCommonnQueryService.cs index f85d612..636a1a6 100644 --- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsCommonnQuery/WmsCommonnQueryService.cs +++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsCommonnQuery/WmsCommonnQueryService.cs @@ -10,6 +10,7 @@ using Admin.NET.Application.Service.WmsCommonnQuery.Dto; using System.Collections.Generic; using Admin.NET.Application.CommonHelper; +using System.Globalization; namespace Admin.NET.Application; /// <summary> @@ -29,6 +30,7 @@ private readonly SqlSugarRepository<Mes_Package_LineQueue> _mesPackage_LineQueueRep; private readonly SqlSugarRepository<WmsRecordUpiReplenish> _wmsRecordUpiReplenishRep; private readonly SqlSugarRepository<WmsRecordUpiProcess> _wmsRecordUpiProcessRep; + private readonly SqlSugarRepository<V_Station_Quan> _V_Station_Quan; public WmsCommonnQueryService(SqlSugarRepository<WmsRbLineTask> wmsRbLineTaskRep, SqlSugarRepository<WmsStockQuan> wmsStockQuanRep , SqlSugarRepository<Mes_Package_Gather> mesPackageGatherRep @@ -39,6 +41,7 @@ , SqlSugarRepository<Mes_Package_LineQueue> mesPackage_LineQueueRep , SqlSugarRepository<WmsRecordUpiReplenish> wmsRecordUpiReplenishRep , SqlSugarRepository<WmsRecordUpiProcess> wmsRecordUpiProcessRep + , SqlSugarRepository<V_Station_Quan> V_Station_Quan_Rep ) { _wmsRecordUpiReplenishRep = wmsRecordUpiReplenishRep; @@ -51,6 +54,7 @@ _mesPackage_UnLine_RecordRep = mesPackage_UnLine_RecordRep; _mesPackage_LineQueueRep = mesPackage_LineQueueRep; _wmsRecordUpiProcessRep = wmsRecordUpiProcessRep; + _V_Station_Quan = V_Station_Quan_Rep; } /// <summary> @@ -67,7 +71,7 @@ .WhereIF(!string.IsNullOrWhiteSpace(input.Info5), u => u.Info5.Contains(input.Info5.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.Info5), u => u.Info5.Contains(input.Info5.Trim())) .Where(x => ((DateTime)x.CreateTime).ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd")) - .Where(x => x.IsKitting == false) + .Where(x => x.IsUnline == null || x.IsUnline == false) .OrderBy(g => g.Id) .ToListAsync(); // 纭繚鑾峰彇缁撴灉涓� List @@ -260,28 +264,40 @@ // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曪紝骞舵彁鍙栨墍闇�淇℃伅 var list = await _wmsStockQuanRep.AsQueryable() .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim())) - .Select(x => new { x.PackageCode }) + .WhereIF(!string.IsNullOrWhiteSpace(input.PlanNo), u => u.PlanNo.Contains(input.PlanNo.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.OrderId), u => u.OrderId.Contains(input.OrderId.Trim())) + .Select(x => new { x.PackageCode, x.PlanNo, x.OrderId }) .ToListAsync(); // 鍒涘缓涓�涓垪琛ㄤ互瀛樺偍 WmsPackListOutput var resultList = new List<WmsPackListOutput>(); // 鍒嗙粍骞惰绠楁瘡缁勪俊鎭� - var groupedResult = list.GroupBy(x => x.PackageCode); + var groupedResult = list.GroupBy(x => new { x.PackageCode, x.PlanNo, x.OrderId }); foreach (var g in groupedResult) { // 鍦ㄨ繖閲岃绠楁瘡缁勭殑鎬绘暟 var count = g.Count(); - var mesTotalCount = await _mesBatchOrderUpiRep.AsQueryable().CountAsync(m => m.PackageCode == g.Key); + var mesTotalCount = await _mesBatchOrderUpiRep.AsQueryable().CountAsync(m => m.PackageCode == g.Key.PackageCode); + var isPack = count >= mesTotalCount; // 妫�鏌ユ槸鍚︽墦鍖� + var desc = ""; + if (mesTotalCount == 1) + { //鍖呬腑鍙湁涓�鍧楁澘鏃讹紝璁ゅ畾涓� 涓嶉綈鍖� 銆怑ditby shaocx,2025-04-01銆� + isPack = false; + desc = "鍖呬腑鍙湁涓�鍧楁澘"; + } resultList.Add(new WmsPackListOutput { - PackageCode = g.Key, + PackageCode = g.Key.PackageCode, + PlanNo = g.Key.PlanNo, + OrderId = g.Key.OrderId, Count = count, MesTotalCount = mesTotalCount, - IsPack = count >= mesTotalCount, // 妫�鏌ユ槸鍚︽墦鍖� - LackCount = mesTotalCount - count + IsPack = isPack, + LackCount = mesTotalCount - count, + PackageDesc = desc }); } @@ -500,6 +516,7 @@ { if (!listDaoUbi.Contains(item.UPI)) // 浣跨敤 HashSet 杩涜鏌ユ壘 { + var pc = await _mesPackageGatherRep.GetFirstAsync(x => x.PackageCode == item.PackageCode); listRes.Add(new WmsShortageListOutput { UPI = item.UPI, @@ -509,10 +526,10 @@ PlanNo = item.PlanNo, Info5 = item.Info5, Info4 = item.Info4, - Info10 = item.Info10, - Info11 = item.Info11, - Info12 = item.Info12, - Info13 = item.Info13, + Info10 = pc.Info10, + Info11 = pc.Info11, + Info12 = pc.Info12, + Info13 = pc.Info13, //Info14 = item.Info14, Info15 = item.Info15, Info16 = item.Info16, @@ -765,24 +782,46 @@ // 鑾峰彇褰撳墠鏃堕棿 DateTime currentDate = DateTime.Now; // 璁$畻涓�鍛ㄤ箣鍓嶇殑鏃堕棿 - DateTime oneWeekAgo = currentDate.AddDays(-7); + //DateTime oneWeekAgo = currentDate.AddDays(-7); + + // 鑾峰彇褰撳墠鏂囧寲淇℃伅 + CultureInfo cultureInfo = CultureInfo.CurrentCulture; + + // DayOfWeek.Monday 琛ㄧず涓�鍛ㄧ殑绗竴澶╂槸鍛ㄤ竴 + int diff = (int)cultureInfo.DateTimeFormat.FirstDayOfWeek - (int)DateTime.Now.DayOfWeek; + + // 濡傛灉闇�瑕侊紝瀵瑰樊鍊艰繘琛岃皟鏁翠互纭繚鏄繃鍘荤殑鏃ユ湡 + if (diff < 0) diff += 7; + DateTime oneWeekAgo = DateTime.Now.AddDays(diff).Date; + //*/ + // 鏌ヨ鏈�杩戜竴鍛ㄧ殑涓嬬嚎璁㈠崟鏁� - var orderCount = await _mesOrderGatherRep.AsQueryable().Where(x => x.UnlineTime >= oneWeekAgo && x.UnlineTime <= currentDate).CountAsync(); + var dataList = await _mesPackage_UnLine_RecordRep.AsQueryable().Where(x => x.CreateTime >= oneWeekAgo && x.CreateTime <= currentDate).ToListAsync(); + + var packageList = dataList.GroupBy(x => x.PackageCode);//涓嬬嚎鍖� + + var orderCount = dataList.GroupBy(x => x.Info5).Count();//涓嬬嚎璁㈠崟鏁� + var packageCount = packageList.Count();//涓嬬嚎鍖呮暟 + var upiCount = 0; + foreach (var item in packageList) + { + upiCount += Convert.ToInt32(item.ToList().First().Info12); + } + resultList.Add(new Home_Order_Info { - Name = "鏈懆涓嬬嚎璁㈠崟鏁�", - Value = orderCount // 灏嗘煡璇㈠埌鐨勬暟閲忚祴鍊� + Name = "鏈懆鐢熶骇璁㈠崟鏁�", + Value = orderCount }); resultList.Add(new Home_Order_Info { - Name = "涓嬬嚎鍖呮暟", - Value = 8 - // Value = await _mesPackage_UnLine_RecordRep 鏌ヨ鏈�杩戜竴鍛ㄧ殑涓嬬嚎璁㈠崟鏁� + Name = "鏈懆涓嬬嚎鍖呮暟", + Value = packageCount }); resultList.Add(new Home_Order_Info { - Name = "涓嬬嚎鏉挎暟", - Value = 3 // 杩欓噷绀轰緥鍊间负3锛屽彲浠ユ牴鎹疄闄呴�昏緫璋冩暣 + Name = "鏈懆涓嬬嚎鏉挎暟", + Value = upiCount }); return resultList; // 缁撴灉 } @@ -808,10 +847,8 @@ //鎬荤殑鏁版嵁 DateTime all_startDate = currentDate.AddDays(-11); DateTime all_endDate = currentDate.Date.AddDays(1).AddTicks(-1); - var all_recordsOfDay = await _mesOrderGatherRep.AsQueryable() + var all_recordsOfDay = await _mesPackage_UnLine_RecordRep.AsQueryable() .Where(r => r.CreateTime >= all_startDate && r.CreateTime <= all_endDate - //&& (r.OrderStatus == OrderStatusEnum.宸插畬鎴�) - //&& (r.OrderType == OrderTypeEnum.涓婃灦鍗� || r.OrderType == OrderTypeEnum.涓嬫灦鍗�) ).ToListAsync(); @@ -828,12 +865,10 @@ var summary = new WmsStockPassMapOutput { Time = 12 - i, - InWare = recordsOfDay - // .Where(x => x.OrderType == OrderTypeEnum.涓婃灦鍗�) - .ToList().Count(), + //InWare = recordsOfDay + //.ToList().Count(), OutWare = recordsOfDay - // .Where(x => x.OrderType == OrderTypeEnum.涓嬫灦鍗�) - .ToList().Count(), + .ToList().GroupBy(x => x.Info5).Count(), StockNum = 0, AveStockNum = 0, Date = startDate.Date.ToString("yyyy-MM-dd") @@ -848,9 +883,7 @@ //鎬荤殑鏁版嵁 DateTime all_startDate = GetStartOfWeek(currentDate).AddDays(-7 * 11); DateTime all_endDate = GetEndOfWeek(currentDate); - var all_recordsOfDay = await _mesOrderGatherRep.AsQueryable().Where(r => r.CreateTime >= all_startDate && r.CreateTime <= all_endDate - //&& (r.OrderStatus == OrderStatusEnum.宸插畬鎴�) - //&& (r.OrderType == OrderTypeEnum.涓婃灦鍗� || r.OrderType == OrderTypeEnum.涓嬫灦鍗�) + var all_recordsOfDay = await _mesPackage_UnLine_RecordRep.AsQueryable().Where(r => r.CreateTime >= all_startDate && r.CreateTime <= all_endDate ).ToListAsync(); for (int i = 0; i < 12; i++) @@ -866,12 +899,10 @@ var summary = new WmsStockPassMapOutput { Time = 12 - i, - InWare = recordsOfWeek - // .Where(x => x.OrderType == OrderTypeEnum.涓婃灦鍗�) .Sum(x => x.Quantity), - .ToList().Count(), + //InWare = recordsOfWeek + //.ToList().Count(), OutWare = recordsOfWeek - // .Where(x => x.OrderType == OrderTypeEnum.涓嬫灦鍗�) - .ToList().Count(), + .ToList().GroupBy(x => x.Info5).Count(), StockNum = 0, AveStockNum = 0, Date = startDate.Date.ToString("MMdd") + "锝�" + endDate.Date.ToString("MMdd") @@ -886,9 +917,7 @@ //鎬荤殑鏁版嵁 DateTime all_startDate = currentDate.AddMonths(-11).AddDays(1 - currentDate.Day); DateTime all_endDate = currentDate.AddMonths(1).AddDays(-1); - var all_recordsOfDay = await _mesOrderGatherRep.AsQueryable().Where(r => r.CreateTime >= all_startDate && r.CreateTime <= all_endDate - //&& (r.OrderStatus == OrderStatusEnum.宸插畬鎴�) - //&& (r.OrderType == OrderTypeEnum.涓婃灦鍗� || r.OrderType == OrderTypeEnum.涓嬫灦鍗�) + var all_recordsOfDay = await _mesPackage_UnLine_RecordRep.AsQueryable().Where(r => r.CreateTime >= all_startDate && r.CreateTime <= all_endDate ).ToListAsync(); for (int i = 0; i < 12; i++) @@ -903,12 +932,10 @@ var summary = new WmsStockPassMapOutput { Time = 12 - i, - InWare = recordsOfMonth - //.Where(x => x.OrderType == OrderTypeEnum.涓婃灦鍗�) - .ToList().Count(), + //InWare = recordsOfMonth + // .ToList().Count(), OutWare = recordsOfMonth - // .Where(x => x.OrderType == OrderTypeEnum.涓嬫灦鍗�) - .ToList().Count(), + .ToList().GroupBy(x => x.Info5).Count(), StockNum = 0, AveStockNum = 0, Date = startDate.ToString("yyyy-MM") @@ -937,5 +964,33 @@ return startDate.AddDays(6); // 鍥犱负璧峰鏃ユ湡宸茬粡鏄懆涓�锛屾墍浠ョ洿鎺ュ姞6澶╁嵆鍙緱鍒板懆鏃� } + + + + /// <summary> + /// 涓嶅垎椤垫煡璇㈠簱浣嶄俊鎭� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpGet] + [ApiDescriptionSettings(Name = "ListView")] + [Description("WmsCommonnQuery/ListView")] + public async Task<List<LocationViewOutput>> ListView([FromQuery] WmsBasePlaceInput input) + { + var query = await _V_Station_Quan.AsQueryable() + .WhereIF(!string.IsNullOrWhiteSpace(input.SearchKey), u => + u.PlaceCode.Contains(input.SearchKey.Trim()) + // || u.WareContainerCode.Contains(input.SearchKey.Trim()) + //|| u.Lane==input.Lane + //|| u.Row==input.Row + ) + .OrderBy(u => u.LaneNo) + //.OrderBy(u => u.Row) + .OrderBy(u => u.LayerNo) + .OrderBy(u => u.ColumnNo) + .Select<LocationViewOutput>().ToListAsync(); + return query; + } + } -- Gitblit v1.9.3