dengjunjie
2025-04-26 18d2f40bbf40469b033de6f07ca8a8e3bc191132
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs
@@ -204,25 +204,48 @@
            {
                //Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
                //if (materielInfo == null) throw new Exception($"未找到物料信息");
                return BaseDal.QueryTabs<Dt_StockInfo, Dt_StockInfoDetail, StockSelectViewDTO>((a, b) => a.Id == b.StockId, (a, b) => new StockSelectViewDTO
                int i = 1;
                List<StockSelectViewDTO> stockSelectViewDTOs = new List<StockSelectViewDTO>();
                var StockSelectViewDTOs = BaseDal.QueryTabs<Dt_StockInfo, Dt_StockInfoDetail, StockSelectViewDTO>((a, b) => a.Id == b.StockId, (a, b) => new StockSelectViewDTO
                {
                    LocationCode = a.LocationCode,
                    MaterielCode = b.MaterielCode,
                    MaterielName = b.MaterielName,
                    PalletCode = a.PalletCode,
                    OrderNo = b.OrderNo,
                    InDate = a.InDate,
                    //UseableQuantity = b.StockQuantity - b.OutboundQuantity
                    UseableQuantity = b.StockQuantity,
                    BatchNo = b.BatchNo,
                }, a => a.StockStatus == StockStatusEmun.已入库.ObjToInt(), b => b.Status == StockStatusEmun.已入库.ObjToInt() && b.MaterielCode == materielCode, x => true).GroupBy(x => x.LocationCode).Select(x => new StockSelectViewDTO
                }, a => a.StockStatus == StockStatusEmun.已入库.ObjToInt(), b => b.Status == StockStatusEmun.已入库.ObjToInt() && b.MaterielCode == materielCode, x => true).GroupBy(x => x.OrderNo).ToList();
                foreach (var item in StockSelectViewDTOs)
                {
                    LocationCode = x.FirstOrDefault()?.LocationCode ?? "",
                    MaterielCode = x.FirstOrDefault()?.MaterielCode ?? "",
                    MaterielName = x.FirstOrDefault()?.MaterielName ?? "",
                    PalletCode = string.Join(",", x.Select(x => x.PalletCode).ToList()),
                    //UseableQuantity = x.Sum(x => x.UseableQuantity)
                    UseableQuantity = x.Sum(x => x.UseableQuantity),
                    BatchNo = x.FirstOrDefault()?.BatchNo ?? ""
                }).ToList();
                    stockSelectViewDTOs.AddRange(item.GroupBy(x => x.BatchNo).Select(x => new StockSelectViewDTO
                    {
                        Id = i++,
                        LocationCode = x.FirstOrDefault()?.LocationCode ?? "",
                        MaterielCode = x.FirstOrDefault()?.MaterielCode ?? "",
                        MaterielName = x.FirstOrDefault()?.MaterielName ?? "",
                        PalletCode = string.Join(",", x.Select(x => x.PalletCode).ToList()),
                        UseableQuantity = x.Sum(x => x.UseableQuantity),
                        InDate = x.OrderByDescending(x => x.InDate).First().InDate,
                        OrderNo = item.Key,
                        BatchNo = x.Key
                    }));
                }
                //.Select(x => new StockSelectViewDTO
                //{
                //    LocationCode = x.FirstOrDefault()?.LocationCode ?? "",
                //    MaterielCode = x.FirstOrDefault()?.MaterielCode ?? "",
                //    MaterielName = x.FirstOrDefault()?.MaterielName ?? "",
                //    PalletCode = //string.Join(",", x.Select(x => x.PalletCode).ToList()),
                //    //UseableQuantity = x.Sum(x => x.UseableQuantity)
                //    UseableQuantity = x.Sum(x => x.UseableQuantity),
                //    OrderNo = x.First().OrderNo,
                //    BatchNo = x.FirstOrDefault()?.BatchNo ?? ""
                //}).ToList();
                return stockSelectViewDTOs;
            }
            catch (Exception ex)
            {