heshaofeng
2025-12-01 5f0b86328b2678a326166e84b461e9ede3dc4715
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoService.cs
@@ -283,6 +283,10 @@
        public List<StockSelectViewDTO> GetSelectViewDTOs(string orderNo,string materielCode)
        {
            var outboundOrder = SqlSugarHelper.DbWMS.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == orderNo).First();
            if(outboundOrder == null)
            {
                throw new Exception($"鏈壘鍒板崟鎹紪鍙蜂负{orderNo}鐨勫嚭搴撳崟淇℃伅");
            }
            return GetStockSelectViews(outboundOrder.Id, materielCode);
        }
@@ -315,22 +319,29 @@
                    .Includes(x => x.Details);
                // 鎵ц鏌ヨ骞舵寜鍏堣繘鍏堝嚭鎺掑簭
                var stocks = stockQuery.ToList()
                    .Where(x => x.Details.Any(d =>
                        d.MaterielCode == materielCode &&
                        string.IsNullOrEmpty(orderDetail.BatchNo)?true: d.BatchNo == orderDetail.BatchNo&&
                        string.IsNullOrEmpty(orderDetail.BatchNo)?true:d.SupplyCode == orderDetail.SupplyCode &&
                        d.StockQuantity > d.OutboundQuantity
                    ))
                    .OrderBy(x => x.CreateDate)
                    .ToList();
                var Qstocks = stockQuery.Where(x => x.Details.Any(d => d.MaterielCode == materielCode &&d.StockQuantity > d.OutboundQuantity));
                if (!string.IsNullOrEmpty(orderDetail.BatchNo))
                {
                    Qstocks = stockQuery.Where(x => x.Details.Any(d => d.BatchNo == orderDetail.BatchNo));
                }
                if (!string.IsNullOrEmpty(orderDetail.SupplyCode))
                {
                    Qstocks = stockQuery.Where(x => x.Details.Any(d => d.SupplyCode == orderDetail.SupplyCode));
                }
              var stocks=  Qstocks.OrderBy(x => x.CreateDate) .ToList();
                foreach (var stock in stocks)
                {
                    var relevantDetails = stock.Details
                        .Where(d => d.MaterielCode == materielCode &&
                                   string.IsNullOrEmpty(orderDetail.BatchNo) ? true : d.BatchNo == orderDetail.BatchNo &&
                                   string.IsNullOrEmpty(orderDetail.BatchNo) ? true : d.SupplyCode == orderDetail.SupplyCode &&
                                   string.IsNullOrEmpty(orderDetail.SupplyCode) ? true : d.SupplyCode == orderDetail.SupplyCode &&
                                   d.StockQuantity > d.OutboundQuantity)
                        .ToList();
@@ -342,7 +353,7 @@
                        result.Add(new StockSelectViewDTO
                        {
                            LocationCode = stock.LocationCode,
                            MaterielCode = materielCode,
                            MaterielCode = firstDetail.  MaterielCode,
                            MaterielName = firstDetail.MaterielName,
                            BatchNo = orderDetail.BatchNo,
                            SupplyCode = orderDetail.SupplyCode,