heshaofeng
2025-12-03 871a7e1ce9a1b1925e228864baf42cafd41371f2
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderDetailService.cs
@@ -98,7 +98,7 @@
                if (!stockInfos.Any())
                {
                    throw new Exception($"物料[{item.MaterielCode}]批次[{item.BatchNo}]未找到可分配库存");
                    throw new Exception($"物料[{item.MaterielCode}]批次[{item.BatchNo}]供应商[{item.SupplyCode}]未找到可分配库存");
                }
                // åˆ†é…åº“存(按先进先出)
@@ -140,7 +140,7 @@
        private bool CanReassignOrder(Dt_OutboundOrder outboundOrder)
        {
            // å…è®¸é‡æ–°åˆ†é…çš„状态
            var allowedStatus = new[] {OutOrderStatusEnum.未开始, OutOrderStatusEnum.出库中,OutOrderStatusEnum.部分完成};
            var allowedStatus = new[] { OutOrderStatusEnum.未开始, OutOrderStatusEnum.出库中, OutOrderStatusEnum.部分完成 };
            return allowedStatus.Contains((OutOrderStatusEnum)outboundOrder.OrderStatus);
        }
@@ -417,6 +417,7 @@
                    // æ›´æ–°æ˜Žç»†çš„已分配数量
                    detail.AllocatedQuantity += assignQuantity;
                    detail.LockQuantity = detail.AllocatedQuantity;
                    remainingAllocate -= assignQuantity;
                    allocatedQuantity += assignQuantity;
                }
@@ -681,12 +682,18 @@
            decimal remainingAssign = assignQuantity;
            // æŒ‰å…ˆè¿›å…ˆå‡ºåˆ†é…åº“存明细
            var sortedDetails = stock.Details
            var sorteds = stock.Details
                .Where(d => d.MaterielCode == detail.MaterielCode &&
                           d.BatchNo == detail.BatchNo &&
                           (d.StockQuantity - d.OutboundQuantity) > 0)
                .OrderBy(d => d.CreateDate)
                .ToList();
                           (d.StockQuantity - d.OutboundQuantity) > 0);
               // .OrderBy(d => d.CreateDate);
            if (!string.IsNullOrEmpty(detail.BatchNo))
            {
                sorteds= stock.Details.Where(x => x.BatchNo == detail.BatchNo);
            }
            var sortedDetails= sorteds.ToList().OrderBy(d => d.CreateDate);
            foreach (var stockDetail in sortedDetails)
            {