1
heshaofeng
2026-03-25 37454e625df68d40897112b2e8c2e3cf4d7163e3
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs
@@ -330,7 +330,19 @@
                    foreach (var detail in materielCalc.Details)
                    {
                        if (remainingToLock <= 0) break;
                        decimal maxLockableQty = detail.OrderQuantity - detail.OverOutQuantity-detail.LockQuantity;
                        decimal maxLockableQty = 0;
                        if (detail.LockQuantity > detail.OverOutQuantity && detail.OverOutQuantity > 0)
                        {
                             maxLockableQty = detail.OrderQuantity - detail.LockQuantity;
                        }
                        else if(detail.OverOutQuantity > 0)
                        {
                            maxLockableQty = detail.OrderQuantity - detail.OverOutQuantity;
                        }
                        else
                        {
                            maxLockableQty = detail.OrderQuantity - detail.OverOutQuantity - detail.LockQuantity;
                        }
                        if (maxLockableQty <= 0) continue;
                        decimal currentLockQty = Math.Min(remainingToLock, maxLockableQty);
                        detail.LockQuantity += currentLockQty;
@@ -2495,6 +2507,10 @@
                        return WebResponseContent.Instance.Error($"条码{request.Barcode}已无法撤销");
                    }
                }
                else
                {
                    return WebResponseContent.Instance.Error($"条码{request.Barcode}已无法撤销");
                }
                Dt_OutStockLockInfo lockInfo = _outboundLockInfoRepository.QueryFirst(x =>
                    x.OrderNo == request.OrderNo &&
@@ -2502,13 +2518,13 @@
                    x.MaterielCode == historyDetail.MaterielCode &&
                    x.PalletCode == stockInfo.PalletCode);
                if (lockInfo == null)
                {
                    return WebResponseContent.Instance.Error("该托盘已全部拣选完,不允许撤销");
                }
                _unitOfWorkManage.BeginTran();
                try
                {
                    if(lockInfo == null)
                    {
                        return WebResponseContent.Instance.Error("该托盘已全部拣选完,不允许撤销");
                    }
                    bool isUnpack = historyDetail.OperateType == "拆包-原始记录";
                    if (isUnpack)
                    {