pan
2025-11-24 025c515a6945fbedcf772bdd595413f50596fd47
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundPickingService.cs
@@ -549,9 +549,11 @@
            return ValidationResult<bool>.Success(true);
        }
        private async Task<PickingResult> ExecutePickingLogic(
            Dt_OutStockLockInfo lockInfo, Dt_OutboundOrderDetail orderDetail, Dt_StockInfoDetail stockDetail,
            string orderNo, string palletCode, string barcode, decimal actualQty)
    Dt_OutStockLockInfo lockInfo, Dt_OutboundOrderDetail orderDetail, Dt_StockInfoDetail stockDetail,
    string orderNo, string palletCode, string barcode, decimal actualQty)
        {
            decimal stockQuantity = stockDetail.StockQuantity;
            var result = new PickingResult
@@ -562,18 +564,29 @@
                ActualPickedQty = actualQty
            };
            decimal finalPickedQty = actualQty;
            if (actualQty < stockQuantity)
            {
                // æ‹†åŒ…场景
                await HandleSplitPacking(lockInfo, stockDetail, actualQty, stockQuantity, result);
                finalPickedQty = actualQty;
            }
            else if (actualQty == stockQuantity)
            {
                // æ•´åŒ…拣选
                await HandleFullPicking(lockInfo, stockDetail, actualQty, result);
                finalPickedQty = actualQty;
            }
            else
            {
                // éƒ¨åˆ†æ‹£é€‰ï¼ˆåº“存不足)
                await HandlePartialPicking(lockInfo, stockDetail, actualQty, stockQuantity, result);
                finalPickedQty = result.ActualPickedQty; // å¯èƒ½è¢«è°ƒæ•´
            }
            // ç»Ÿä¸€æ›´æ–°è®¢å•数据(所有分支都从这里更新)
            await UpdateOrderRelatedData(lockInfo.OrderDetailId, finalPickedQty, orderNo);
            return result;
        }
@@ -608,8 +621,7 @@
            result.FinalBarcode = newBarcode;
            result.SplitResults.AddRange(CreateSplitResults(lockInfo, actualQty, remainingStockQty, newBarcode, stockDetail.Barcode));
            await UpdateOrderRelatedData(lockInfo.OrderDetailId, actualQty, lockInfo.OrderNo);
            _logger.LogInformation($"拆包分拣更新订单明细 - OrderDetailId: {lockInfo.OrderDetailId}, åˆ†æ‹£æ•°é‡: {actualQty}");
        }