wangxinhui
2025-03-19 d8db1698c125618c1b5f62b009204ddc5d4eed5a
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs
@@ -25,14 +25,37 @@
            proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode))
                .Includes(x => x.proStockInfoDetails)
                .Where(x => x.proStockInfoDetails
                .Any(x => x.SaleOrder == proOutOrderDetail.SaleOrder
                && x.ProductCode == proOutOrderDetail.PCode
                && x.ProductVersion == proOutOrderDetail.PVer
                && (isCanLot ? x.LotNumber == proOutOrderDetail.PLot : true)
                && (isCanDate ? x.DateCode == proOutOrderDetail.DateCode : true)
                .Any(v => v.SaleOrder==proOutOrderDetail.SaleOrder
                && v.ProductCode==proOutOrderDetail.PCode
                && v.ProductVersion==proOutOrderDetail.PVer
                && (isCanLot? v.LotNumber== proOutOrderDetail.PLot:true)
                && (isCanDate ? v.DateCode == proOutOrderDetail.DateCode : true)
                ))
            .ToList();
            proStockInfos = proStockInfos.OrderBy(x => x.proStockInfoDetails.FirstOrDefault().DateCode).ToList();
            proStockInfos = proStockInfos.OrderBy(x => x.proStockInfoDetails.FirstOrDefault()?.DateCode).ThenBy(x=>x.proStockInfoDetails.Sum(x=>x.StockPcsQty)).ToList();
            return proStockInfos;
        }
        /// <summary>
        /// 鑾峰彇MES鎻愬簱搴撳瓨
        /// </summary>
        /// <param name="mesRworkOutboundOrder"></param>
        /// <param name="locationInfos"></param>
        /// <returns></returns>
        public List<Dt_ProStockInfo> GetProStocks(Dt_MesRworkOutboundOrder mesRworkOutboundOrder, List<string> locationInfos)
        {
            List<Dt_ProStockInfo>? proStockInfos = null;
            bool isCanDate = !string.IsNullOrEmpty(mesRworkOutboundOrder.DateCode);
            proStockInfos = Db.Queryable<Dt_ProStockInfo>().Where(x => locationInfos.Contains(x.LocationCode))
                .Includes(x => x.proStockInfoDetails)
                .Where(x => x.proStockInfoDetails
                .Any(v => v.SaleOrder == mesRworkOutboundOrder.SaleOrder
                && v.ProductCode == mesRworkOutboundOrder.ProductCode
                && v.ProductVersion == mesRworkOutboundOrder.ProductVersion
                && (isCanDate ? v.DateCode == mesRworkOutboundOrder.DateCode : true)
                ))
            .ToList();
            proStockInfos = proStockInfos.OrderBy(x => x.proStockInfoDetails.FirstOrDefault()?.DateCode).ThenBy(x => x.proStockInfoDetails.Sum(x => x.StockPcsQty)).ToList();
            return proStockInfos;
        }
    }