From a95309ec158af3b95fe5b77f4f0c24208dc657e3 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周四, 05 12月 2024 14:10:38 +0800 Subject: [PATCH] 22 --- LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs | 348 --------------------------------------------------------- 1 files changed, 1 insertions(+), 347 deletions(-) diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs index 0b104e6..b24e962 100644 --- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs +++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs @@ -234,353 +234,7 @@ #endregion - /// <summary> - /// 涓嶅垎椤垫煡璇㈢紦瀛樺矝榻愬寘绠$悊 - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - [HttpGet] - [ApiDescriptionSettings(Name = "packList")] - [Description("WmsStockQuan/packList")] - public async Task<List<WmsPackListOutput>> PackList([FromQuery] PackListInput input) - { - // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曪紝骞舵彁鍙栨墍闇�淇℃伅 - var list = await _rep.AsQueryable() - .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim())) - .Select(x => new { x.PackageCode }) - .ToListAsync(); - - // 鍒涘缓涓�涓垪琛ㄤ互瀛樺偍 WmsPackListOutput - var resultList = new List<WmsPackListOutput>(); - - // 鍒嗙粍骞惰绠楁瘡缁勪俊鎭� - var groupedResult = list.GroupBy(x => x.PackageCode); - - foreach (var g in groupedResult) - { - // 鍦ㄨ繖閲岃绠楁瘡缁勭殑鎬绘暟 - var count = g.Count(); - var mesTotalCount = await _Mes_BatchOrderUPI_New_Rep.AsQueryable().CountAsync(m => m.PackageCode == g.Key); - - resultList.Add(new WmsPackListOutput - { - PackageCode = g.Key, - Count = count, - MesTotalCount = mesTotalCount, - IsPack = count >= mesTotalCount, // 妫�鏌ユ槸鍚︽墦鍖� - LackCount = mesTotalCount - count - }); - } - - // 杩囨护銆佹帓搴忓苟杩斿洖鏈�缁堢粨鏋� - var finalResult = resultList - .WhereIF(input.IsPack.HasValue, u => u.IsPack == input.IsPack) - .OrderBy(g => g.PackageCode) - .ToList(); - - return finalResult; - } - - - - /// <summary> - /// 涓嶅垎椤垫煡璇㈤綈濂楃鐞� - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - [HttpGet] - [ApiDescriptionSettings(Name = "KittingList")] - [Description("WmsStockQuan/KittingList")] - public async Task<List<WmsKittingListOutput>> KittingList([FromQuery] KittingListInput input) - { - var list = await _rep.AsQueryable() - .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim())) - .Select(x => new WmsKittingListOutput - { - OrderId = x.OrderId - }) - .ToListAsync(); // 纭繚鑾峰彇缁撴灉涓� List - - // 鍒嗙粍骞惰繑鍥炲垎缁勪俊鎭� - var groupedResult = list - .GroupBy(x => x.OrderId) // 鎸� PackageCode 鍒嗙粍 - .Select(g => new WmsKittingListOutput - { - OrderId = g.Key, // 鑾峰彇鍒嗙粍鐨勯敭 - Count = g.Count(), // 缁熻姣忕粍鐨勬暟閲� - IsKitting = 1 == 1? true : false // 濡傛灉 Count 涓� 5 鍒� IsKitting 涓� 1锛屽惁鍒欎负 0 - }) - .WhereIF(input.IsKitting.HasValue, u => u.IsKitting == input.IsKitting) - .OrderBy(g => g.OrderId) // 鏍规嵁 PackageCode 鎺掑簭 - .ToList(); // 杞崲涓� List - return groupedResult; // 杩斿洖鍒嗙粍缁撴灉 - } - - - - - - - /// <summary> - /// 涓嶅垎椤垫煡璇㈡壒娆$己鏂欐竻鍗� 涓嶉綈鍖� - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - /// [HttpGet] - [ApiDescriptionSettings(Name = "ShortageList")] - [Description("WmsStockQuan/ShortageList")] - public async Task<WmsShortageListOutput> ShortageList(KittingListInput input) - { - var listRes = await GetShortageListCore(input); - var resJson = new WmsShortageListOutput(); - if (!string.IsNullOrWhiteSpace(input.UPI)) - { - resJson = listRes.FirstOrDefault(u => u.UPI == input.UPI); - //var filteredResult = listRes.FirstOrDefault(u => u.UPI == input.UPI); - } - - return resJson; - } - - /// <summary> - /// 鍒嗛〉鏌ヨ鎵规缂烘枡娓呭崟 涓嶉綈鍖� - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - [HttpPost] - [ApiDescriptionSettings(Name = "ShortagePage")] - [Description("WmsStockQuan/ShortagePage")] - public async Task<SqlSugarPagedList<WmsShortageListOutput>> ShortagePage(KittingListInput input) - { - var listRes = await GetShortageListCore(input); - // 杩涜鍒嗛〉澶勭悊 - var totalCount = listRes.Count; // 鑾峰彇鎬绘暟 - var pagedList = listRes - //.OrderBy(x => x.Id) // 鏍规嵁闇�瑕佽繘琛屾帓搴� - .Skip((input.Page - 1) * input.PageSize) - .Take(input.PageSize) - .ToList(); - - // 鏋勯�犲苟杩斿洖鍒嗛〉缁撴灉 - return new SqlSugarPagedList<WmsShortageListOutput> - { - Page = input.Page, - PageSize = input.PageSize, - Total = totalCount, - TotalPages = (int)Math.Ceiling((double)totalCount / input.PageSize), - Items = pagedList, - HasPrevPage = input.Page > 1, - HasNextPage = input.Page < ((int)Math.Ceiling((double)totalCount / input.PageSize)) - }; - } - - - /// <summary> - /// 鍒嗛〉鏌ヨ缂烘枡娓呭崟 涓嶉綈鍖� -鎸夌収鐢熶骇鍗曞彿鍒嗙粍 - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - [HttpPost] - [ApiDescriptionSettings(Name = "ShortagePageGroupByInfo5")] - [Description("WmsStockQuan/ShortagePageGroupByInfo5")] - public async Task<SqlSugarPagedList<WmsShortageListOutput>> ShortagePageGroupByInfo5(KittingListInput input) - { - var listRes = await GetShortageListCore(input); - - // 鎸夌収瀛楁 Info5 鍒嗙粍 - var groupedList = listRes - .GroupBy(x => x.Info5) // 鏍规嵁 Info5 瀛楁杩涜鍒嗙粍 - .Select(g => new WmsShortageListOutput // 鍋囪鎮ㄥ皢鍒嗙粍鍚庣殑缁撴灉杞崲涓� WmsShortageListOutput - { - Info5 = g.Key, - ShortageCount = g.Count(), - }) - .ToList(); - - // 杩涜鍒嗛〉澶勭悊 - var totalCount = groupedList.Count; // 鑾峰彇鎬绘暟 - var pagedList = groupedList - //.OrderBy(x => x.Id) // 鏍规嵁闇�瑕佽繘琛屾帓搴� - .Skip((input.Page - 1) * input.PageSize) - .Take(input.PageSize) - .ToList(); - - // 鏋勯�犲苟杩斿洖鍒嗛〉缁撴灉 - return new SqlSugarPagedList<WmsShortageListOutput> - { - Page = input.Page, - PageSize = input.PageSize, - Total = totalCount, - TotalPages = (int)Math.Ceiling((double)totalCount / input.PageSize), - Items = pagedList, - HasPrevPage = input.Page > 1, - HasNextPage = input.Page < ((int)Math.Ceiling((double)totalCount / input.PageSize)) - }; - } - - - - /// <summary> - /// 缂哄寘鏁版嵁 - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - private async Task<List<WmsShortageListOutput>> GetShortageListCore(KittingListInput input) - { - var listRes = new List<WmsShortageListOutput>(); - // 缂撳瓨宀涙暟鎹� - var queryHcdList = _rep.AsQueryable().WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode == input.PackageCode); - - var listDao = await queryHcdList.ToListAsync(); - var packageCodes = listDao.Select(x => x.PackageCode).ToList(); - // 鑾峰彇 mes 鎵�鏈夌浉鍏宠褰� - var allRecords = await _Mes_BatchOrderUPI_New_Rep.AsQueryable() - .Where(m => packageCodes.Contains(m.PackageCode)) - .ToListAsync(); - // 閬嶅巻璁板綍锛屽姣� listDao - var listDaoUbi = listDao.Select(u => u.Upi).ToHashSet(); // 灏� UPI 杞崲涓� HashSet锛屾彁楂樻煡鎵炬晥鐜� - foreach (var item in allRecords) - { - if (!listDaoUbi.Contains(item.UPI)) // 浣跨敤 HashSet 杩涜鏌ユ壘 - { - listRes.Add(new WmsShortageListOutput - { - UPI = item.UPI, - PackageCode = item.PackageCode, - DetailName = item.DetailName, - OrderId = item.OrderId, - PlanNo = item.PlanNo, - Info5 = item.Info5, - Info4 = item.Info4, - Info10 = item.Info10, - Info11 = item.Info11, - Info12= item.Info12, - Info13 = item.Info13, - //Info14 = item.Info14, - Info15 = item.Info15, - Info16 = item.Info16, - Info18 = item.Info18, - Length = item.Length, - Width = item.Width, - Thk = item.Thk - }); - } - } - - return listRes; - } - - /// <summary> - /// 鍒嗛〉鏌ヨ鎵规缂烘枡娓呭崟 涓嶉綈鍖� -鏆傛椂涓嶇敤 - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - [HttpPost] - [ApiDescriptionSettings(Name = "ShortagePage2")] - [Description("WmsStockQuan/ShortagePage2")] - public async Task<SqlSugarPagedList<WmsShortageListOutput>> ShortagePage2(KittingListInput input) - { - // 鑾峰彇鍩虹鏁版嵁 - var list = await _rep.AsQueryable() - .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim())) - .Select(x => new WmsShortageListOutput - { - OrderId = x.OrderId, - PlanNo = x.PlanNo, - PackageCode = x.PackageCode - }) - .ToListAsync(); // 纭繚鑾峰彇缁撴灉涓� List - - // 鍒嗙粍骞惰繑鍥炲垎缁勪俊鎭� - var groupedResult = list - .GroupBy(x => x.OrderId) // 鎸� OrderId 鍒嗙粍 - .Select(g => new WmsShortageListOutput - { - OrderId = g.Key, // 鑾峰彇鍒嗙粍鐨勯敭 - PlanNo = g.FirstOrDefault().PlanNo, // 鑾峰彇缁勫唴鐨勭涓�涓� PlanNo - PackageCode = g.FirstOrDefault().PackageCode, // 鑾峰彇缁勫唴鐨勭涓�涓� PackageCode - HasCount = g.Count(), // 缁熻姣忕粍鐨勬暟閲� - TotalCount = 0, // 鍒濆鍖� TotalCount - ShortageCount = 0 // 鍒濆鍖� ShortageCount - }) - .OrderBy(g => g.OrderId) // 鏍规嵁 OrderId 鎺掑簭 - .ToList(); // 杞崲涓� List - - // 寰幆 groupedResult 缁欐瘡涓�鏉″姞涓婃�绘暟閲� TotalCount - foreach (var item in groupedResult) - { - item.TotalCount = await _Mes_BatchOrderUPI_New_Rep.AsQueryable().CountAsync(m => m.PackageCode == item.PackageCode); // 鏍规嵁 PackageCode 缁熻鎬绘潯鏁� - item.ShortageCount = item.TotalCount - item.HasCount > 0 ? item.TotalCount - item.HasCount : 0; - } - - // 鍒嗛〉澶勭悊 - var pagedResult = groupedResult.AsQueryable() // 灏嗗垎缁勭粨鏋滆浆鎹负鍙煡璇㈢殑闆嗗悎 - .OrderBy(g => g.OrderId) // 杩涜鎺掑簭 - .Skip((input.Page - 1) * input.PageSize) // 璺宠繃鍓嶉潰鐨勯〉鏁� - .Take(input.PageSize) // 鍙栧嚭褰撳墠椤电殑鏁版嵁 - .ToList(); // 杞崲涓� List - - var totalCount = groupedResult.Count; // 鑾峰彇鎬绘暟 - var totalPages = (int)Math.Ceiling((double)totalCount / input.PageSize); // 璁$畻鎬婚〉鏁� - - // 鏋勯�犲苟杩斿洖鍒嗛〉缁撴灉 - return new SqlSugarPagedList<WmsShortageListOutput> - { - Page = input.Page, - PageSize = input.PageSize, - Total = totalCount, - TotalPages = totalPages, - Items = pagedResult, - HasPrevPage = input.Page > 1, - HasNextPage = input.Page < totalPages - }; - } - - - /// <summary> - /// 涓嶅垎椤垫煡璇㈡壒娆$己鏂欐竻鍗� 涓嶉綈鍖�-鏆傛椂涓嶇敤 - /// </summary> - /// <param name="input"></param> - /// <returns></returns> - [HttpGet] - [ApiDescriptionSettings(Name = "ShortageList2")] - [Description("WmsStockQuan/ShortageList2")] - public async Task<List<WmsShortageListOutput>> ShortageList2([FromQuery] KittingListInput input) - { - var list = await _rep.AsQueryable() - .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim())) - .Select(x => new WmsShortageListOutput - { - OrderId = x.OrderId, - PlanNo = x.PlanNo, - PackageCode = x.PackageCode - }) - .ToListAsync(); // 纭繚鑾峰彇缁撴灉涓� List - - // 鍒嗙粍骞惰繑鍥炲垎缁勪俊鎭� - var groupedResult = list - .GroupBy(x => x.OrderId) // 鎸� OrderId 鍒嗙粍 - .Select(g => new WmsShortageListOutput - { - OrderId = g.Key, // 鑾峰彇鍒嗙粍鐨勯敭 - PlanNo = g.FirstOrDefault().PlanNo, // 鑾峰彇缁勫唴鐨勭涓�涓� PlanNo - PackageCode = g.FirstOrDefault().PackageCode, // 鑾峰彇缁勫唴鐨勭涓�涓� PackageCode - HasCount = g.Count(), // 缁熻姣忕粍鐨勬暟閲� - TotalCount = 0, // 鍒濆鍖� TotalCount - ShortageCount = 0 // 鍒濆鍖� ShortageCount - }) - .OrderBy(g => g.OrderId) // 鏍规嵁 OrderId 鎺掑簭 - .ToList(); // 杞崲涓� List - - // 寰幆 groupedResult 缁欐瘡涓�鏉″姞涓婃�绘暟閲� CountTotal - foreach (var item in groupedResult) - { - item.TotalCount = await _Mes_BatchOrderUPI_New_Rep.AsQueryable().CountAsync(m => m.PackageCode == item.PackageCode); // 鏍规嵁 PackageCode 缁熻鎬绘潯鏁� - item.ShortageCount = item.TotalCount - item.HasCount > 0 ? item.TotalCount - item.HasCount : 0; - } - - return groupedResult; // 杩斿洖鍒嗙粍缁撴灉 - } + } -- Gitblit v1.9.3