1
heshaofeng
3 分钟以前 8d54aef9335f78f76a8f1509341023bba773d357
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_StockService/StockDetailByMaterielService.cs
@@ -18,11 +18,13 @@
    {
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly SqlSugarClient _dbBase;
        private readonly IRepository<Dt_StockInfoDetail> _stockInfoDetailRepository;
        public StockDetailByMaterielService(IUnitOfWorkManage unitOfWorkManage)
        public StockDetailByMaterielService(IUnitOfWorkManage unitOfWorkManage, IRepository<Dt_StockInfoDetail> stockInfoDetailRepository)
        {
            _unitOfWorkManage = unitOfWorkManage;
            _dbBase = unitOfWorkManage.GetDbClient();
            _stockInfoDetailRepository = stockInfoDetailRepository;
        }
@@ -58,15 +60,14 @@
                            searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.MaterielName).FirstLetterToLower());
                            if (searchParameters != null)
                            {
                                sugarQueryable1 = sugarQueryable1.LeftJoin(sugarQueryable3, (d, m) => d.MaterielCode == m.MaterielCode)
                                                                 .Where((d, m) => m.MaterielName.Equals(searchParameters.Value));
                                sugarQueryable1 = sugarQueryable1.Where(x => x.MaterielName.Contains(searchParameters.Value));
                            }
                           
                            searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.BatchNo).FirstLetterToLower());
                            if (searchParameters != null)
                            {
                                sugarQueryable1 = sugarQueryable1.Where(x => x.BatchNo.Equals(searchParameters.Value));
                                sugarQueryable1 = sugarQueryable1.Where(x => x.BatchNo.Contains(searchParameters.Value));
                            }
                            
                            searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_StockInfoDetail.SupplyCode).FirstLetterToLower());
@@ -74,6 +75,7 @@
                            {
                                sugarQueryable1 = sugarQueryable1.Where(x => x.SupplyCode.Contains(searchParameters.Value));
                            }
                        }
                    }
                    catch (Exception ex)
@@ -146,7 +148,12 @@
                    }
                }
                decimal totalStockQuantity = 0;
                if (groupedData.Count > 0)
                {
                    totalStockQuantity = groupedData.Values.Sum(x => x.StockQuantity);
                }
                materielnfoStatistics = groupedData.Values.ToList();
                int startIndex = (options.Page - 1) * options.Rows;
                int endIndex = Math.Min(startIndex + options.Rows, materielnfoStatistics.Count);
@@ -161,11 +168,22 @@
                int count = groupedData.Count;
                return new PageGridData<StockDetailByMateriel>(count, materielnfoStatistics);
            }
            catch (Exception ex)
            {
                return new PageGridData<StockDetailByMateriel>();
            }
        }
        public WebResponseContent CalculateStock(string warehouseCode,string materielCode)
        {
           var calculateStock =_stockInfoDetailRepository.QueryData(x => x.WarehouseCode == warehouseCode && x.MaterielCode == materielCode).Sum(x => x.StockQuantity);
           if(calculateStock == 0)
            {
                return WebResponseContent.Instance.Error("未找到库存");
            }
            return WebResponseContent.Instance.OK(data: calculateStock);
        }
    }
}