From 605e01c0782d8b2ba8d7fe317eb7bb077b7d1e59 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期五, 11 七月 2025 15:32:12 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs | 177 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 140 insertions(+), 37 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs" index 70287a3..e3b0337 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs" @@ -17,6 +17,11 @@ using Magicodes.ExporterAndImporter.Core; using WIDESEA_Core.HostedService; using WIDESEA_Core.DB.Models; +using WIDESEA_IOutboundRepository; +using WIDESEA_IStockRepository; +using WIDESEA_Common.StockEnum; +using WIDESEA_IBasicRepository; +using WIDESEA_Common.WareHouseEnum; namespace WIDESEA_StockService { @@ -24,11 +29,17 @@ { private readonly IUnitOfWorkManage _unitOfWorkManage; private readonly SqlSugarClient _dbBase; + private readonly IOutboundRepository _outboundRepository; + private readonly IStockRepository _stockRepository; + private readonly IBasicRepository _basicRepository; - public ProStockViewService(IUnitOfWorkManage unitOfWorkManage) + public ProStockViewService(IUnitOfWorkManage unitOfWorkManage, IOutboundRepository outboundRepository, IStockRepository stockRepository,IBasicRepository basicRepository) { _unitOfWorkManage = unitOfWorkManage; _dbBase = unitOfWorkManage.GetDbClient(); + _outboundRepository = outboundRepository; + _stockRepository = stockRepository; + _basicRepository = basicRepository; } public virtual PageGridData<ProStockViewDTO> GetPageData(PageDataOptions options) @@ -61,6 +72,21 @@ sugarQueryable1 = sugarQueryable1.Where(x => x.proStockInfoDetails.Any(v => v.ProductVersion.Contains(searchParameters.Value))); } } + { + SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ProStockInfoDetail.SpecifyVer).FirstLetterToLower()); + if (searchParameters != null) + { + sugarQueryable1 = sugarQueryable1.Where(x => x.proStockInfoDetails.Any(v => v.SpecifyVer.Contains(searchParameters.Value))); + } + } + { + SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ProStockInfoDetail.LotNumber).FirstLetterToLower()); + if (searchParameters != null) + { + sugarQueryable1 = sugarQueryable1.Where(x => x.proStockInfoDetails.Any(v => v.LotNumber.Contains(searchParameters.Value))); + } + } + } @@ -97,50 +123,46 @@ ProStockId = b.Id, StockStatus = b.StockStatus, Details = b.proStockInfoDetails, + SumStocks=b.proStockInfoDetails.Sum(x=>x.StockPcsQty) }); - //var pklist = sugarQueryable1.Where(b => b.LocationCode == "骞冲簱浣�").Select(b => new StockViewDTO - //{ - // LocationCode = b.LocationCode, - // Column = 0, - // WarehouseId = b.WarehouseId, - // CreateDate = b.CreateDate, - // Creater = b.Creater, - // Depth = 0, - // EnalbeStatus = EnableStatusEnum.Normal.ObjToInt(), - // Layer = 0, - // LocationName = "骞冲簱浣�", - // LocationStatus = LocationStatusEnum.InStock.ObjToInt(), - // LocationType = LocationTypeEnum.Undefined.ObjToInt(), - // Modifier = b.Modifier, - // ModifyDate = b.ModifyDate, - // PalletCode = b.PalletCode, - // StockRemark = b.Remark, - // RoadwayNo = "骞冲簱", - // Row = 0, - // StockId = b.Id, - // StockStatus = b.StockStatus, - // Details = b.Details, - //}); + var pklist = sugarQueryable1.Where(b => b.LocationCode == "鎴愬搧寰呭彂璐у尯" || b.LocationCode == "鎴愬搧鍖呰鎷h揣鍖�").Select(b => new ProStockViewDTO + { + ProStockAttribute = b.ProStockAttribute, + LocationCode = b.LocationCode, + WarehouseId = b.WarehouseId, + CreateDate = b.CreateDate, + Creater = b.Creater, + LocationName = b.LocationCode, + Modifier = b.Modifier, + ModifyDate = b.ModifyDate, + PalletCode = b.PalletCode, + StockRemark = b.Remark, + ProStockId = b.Id, + StockStatus = b.StockStatus, + Details = b.proStockInfoDetails, + SumStocks = b.proStockInfoDetails.Sum(x => x.StockPcsQty) + }); int totalCount = 0; int pktotalCount = 0; stockViewDTOs = list.ToPageList(options.Page, options.Rows, ref totalCount); - //stockViewDTOs.AddRange(pklist.ToPageList(options.Page, options.Rows, ref pktotalCount)); + stockViewDTOs.AddRange(pklist.ToPageList(options.Page, options.Rows, ref pktotalCount)); stockViewDTOs.ForEach(x => - { - x.ProductCode = string.Join(",", x.Details.Select(x => x.ProductCode).Distinct()); - x.ProductVersion = string.Join(",", x.Details.Select(x => x.ProductVersion).Distinct()); - x.DateCode = x.Details.FirstOrDefault()?.DateCode ?? ""; - x.LotNumber = x.Details.FirstOrDefault()?.LotNumber ?? ""; - x.ERPOrder = x.Details.FirstOrDefault()?.ERPOrder ?? ""; - x.SaleOrder= x.Details.FirstOrDefault()?.SaleOrder ?? ""; - x.MoNumber = x.Details.FirstOrDefault()?.MoNumber ?? ""; - } + { + x.ProductCode = string.Join(",", x.Details.Select(x => x.ProductCode).Distinct()); + x.ProductVersion = string.Join(",", x.Details.Select(x => x.ProductVersion).Distinct()); + x.SpecifyVer = string.Join(",", x.Details.Select(x => x.SpecifyVer).Distinct()); + x.DateCode = x.Details.FirstOrDefault()?.DateCode ?? ""; + x.LotNumber = x.Details.FirstOrDefault()?.LotNumber ?? ""; + x.ERPOrder = x.Details.FirstOrDefault()?.ERPOrder ?? ""; + x.SaleOrder= x.Details.FirstOrDefault()?.SaleOrder ?? ""; + x.MoNumber = x.Details.FirstOrDefault()?.MoNumber ?? ""; + } ); - return new PageGridData<ProStockViewDTO>(totalCount + pktotalCount, stockViewDTOs); + return new PageGridData<ProStockViewDTO>(totalCount + pktotalCount, stockViewDTOs.OrderByDescending(x=>x.CreateDate).ToList()); } catch (Exception ex) { @@ -185,7 +207,7 @@ options.Order = "desc"; options.Sort = "proStockId"; List<ProStockViewDTO> stockViewDTOs = new List<ProStockViewDTO>(); - + List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(x => x.WarehouseType == WarehouseTypEnum.鎴愬搧.ToString()); string where = string.Empty; ISugarQueryable<Dt_ProStockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_ProStockInfo>().Includes(x => x.proStockInfoDetails); if (!string.IsNullOrEmpty(options.Wheres)) @@ -246,6 +268,8 @@ ProStockId = b.Id, StockStatus = b.StockStatus, Details = b.proStockInfoDetails, + SumStocks = b.proStockInfoDetails.Sum(x => x.StockPcsQty), + }); //var pklist = sugarQueryable1.Where(b => b.LocationCode == "骞冲簱浣�").Select(b => new StockViewDTO @@ -277,17 +301,19 @@ { x.ProductCode = string.Join(",", x.Details.Select(x => x.ProductCode).Distinct()); x.ProductVersion = string.Join(",", x.Details.Select(x => x.ProductVersion).Distinct()); + x.SpecifyVer = string.Join(",", x.Details.Select(x => x.SpecifyVer).Distinct()); x.DateCode = x.Details.FirstOrDefault()?.DateCode ?? ""; x.LotNumber = x.Details.FirstOrDefault()?.LotNumber ?? ""; x.ERPOrder = x.Details.FirstOrDefault()?.ERPOrder ?? ""; x.SaleOrder = x.Details.FirstOrDefault()?.SaleOrder ?? ""; x.MoNumber = x.Details.FirstOrDefault()?.MoNumber ?? ""; + x.StockRemark = warehouses.FirstOrDefault(v => v.WarehouseId == x.WarehouseId).WarehouseName; } ); byte[] data = exporter.ExportAsByteArray(stockViewDTOs).Result; - string fileName = "搴撳瓨瑙嗗浘.xlsx"; + string fileName = "鎴愬搧搴撳瓨瑙嗗浘.xlsx"; FileHelper.WriteFile(savePath, fileName, data); @@ -346,5 +372,82 @@ throw new Exception($"鏃犳潈闄愶紝{ex.Message}"); } } + public List<ProStockViewDTO> GetProPKSelectStocks(int orderId) + { + try + { + Dt_ProOutOrderDetail outOrderDetail = _outboundRepository.ProOutOrderDetailRepository.QueryFirst(x => x.Id == orderId); + if (outOrderDetail == null) + { + throw new Exception($"鏈壘鍒板嚭搴撳崟鏄庣粏"); + } + List<ProStockViewDTO> stockViewDTOs = new List<ProStockViewDTO>(); + ISugarQueryable<Dt_ProStockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_ProStockInfo>().Includes(x => x.proStockInfoDetails); + var pklist = sugarQueryable1.Where(b => b.LocationCode == "鎴愬搧寰呭彂璐у尯" && b.StockStatus==StockStatusEmun.骞冲簱鍏ュ簱瀹屾垚.ObjToInt() && (b.ShipmentOrder==null|| b.ShipmentOrder =="")).Where(x=>x.proStockInfoDetails.Any(v=>v.ProductCode== outOrderDetail.PCode)).Select(b => new ProStockViewDTO + { + ProStockAttribute = b.ProStockAttribute, + LocationCode = b.LocationCode, + WarehouseId = b.WarehouseId, + CreateDate = b.CreateDate, + Creater = b.Creater, + LocationName = b.LocationCode, + Modifier = b.Modifier, + ModifyDate = b.ModifyDate, + PalletCode = b.PalletCode, + StockRemark = b.Remark, + ProStockId = b.Id, + StockStatus = b.StockStatus, + Details = b.proStockInfoDetails, + }); + stockViewDTOs.AddRange(pklist.ToList()); + stockViewDTOs.ForEach(x => + { + x.ProductCode = string.Join(",", x.Details.Select(x => x.ProductCode).Distinct()); + x.ProductVersion = string.Join(",", x.Details.Select(x => x.ProductVersion).Distinct()); + x.SpecifyVer = string.Join(",", x.Details.Select(x => x.SpecifyVer).Distinct()); + x.DateCode = x.Details.FirstOrDefault()?.DateCode ?? ""; + x.LotNumber = x.Details.FirstOrDefault()?.LotNumber ?? ""; + x.ERPOrder = x.Details.FirstOrDefault()?.ERPOrder ?? ""; + x.SaleOrder = x.Details.FirstOrDefault()?.SaleOrder ?? ""; + x.MoNumber = x.Details.FirstOrDefault()?.MoNumber ?? ""; + x.SumStocks = x.Details.Sum(x => x.StockPcsQty); + } + ); + return stockViewDTOs.OrderBy(x => x.DateCode).ThenBy(x => x.CreateDate).ToList(); + //return _stockRepository.ProStockInfoRepository.QueryTabs<Dt_ProStockInfo, Dt_ProStockInfoDetail, ProStockViewDTO>((a, b) => a.Id == b.ProStockId, (a, b) => new ProStockViewDTO + //{ + // LocationCode = a.LocationCode, + // ProductCode = b.ProductCode, + // ProStockAttribute = a.ProStockAttribute, + // ProductVersion=b.ProductVersion, + // DateCode=b.DateCode, + // ProStockId=a.Id, + // SumStocks=b.StockPcsQty, + // SaleOrder=b.SaleOrder, + // PalletCode = a.PalletCode, + // CreateDate=a.CreateDate, + // ERPOrder=b.ERPOrder, + // MoNumber=b.MoNumber + //}, a => a.LocationCode == "鎴愬搧寰呭彂璐у尯", b => b.ProductCode == outOrderDetail.PCode, x => true).GroupBy(x => x.PalletCode).Select(x => new ProStockViewDTO + //{ + // LocationCode = x.FirstOrDefault()?.LocationCode ?? "", + // ProductCode = x.FirstOrDefault()?.ProductCode ?? "", + // ProductVersion = x.FirstOrDefault()?.ProductVersion ?? "", + // DateCode = x.FirstOrDefault()?.DateCode ?? "", + // ProStockId = x.FirstOrDefault().ProStockId, + // SumStocks=x.FirstOrDefault().SumStocks, + // SaleOrder = x.FirstOrDefault()?.SaleOrder ?? "", + // ProStockAttribute=x.FirstOrDefault()?.ProStockAttribute ?? 0, + // PalletCode = x.Key, + // ERPOrder=x.FirstOrDefault()?.ERPOrder ?? "", + // MoNumber=x.FirstOrDefault()?.MoNumber ?? "", + // CreateDate=x.FirstOrDefault()?.CreateDate ?? new DateTime() + //}).ToList(); + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + } } } -- Gitblit v1.9.3