|
|
|
@@ -608,12 +608,15 @@ sol.id?.let { suggestedPickLotWorkbenchService.linkSplToStockOutLineAfterWorkben |
|
|
|
val saveSolMs = lapMs() |
|
|
|
|
|
|
|
val pickOrderId = pol.pickOrder?.id |
|
|
|
|
|
|
|
val poType = pol.pickOrder?.type |
|
|
|
var rebuildMs = 0L |
|
|
|
var ensureMs = 0L |
|
|
|
var polPartialMs = 0L |
|
|
|
var postMs = 0L |
|
|
|
|
|
|
|
val effectiveExcludeWarehouseCodes = when (poType) { |
|
|
|
PickOrderType.JOB_ORDER -> request.excludeWarehouseCodes ?: emptyList() |
|
|
|
else -> request.excludeWarehouseCodes // null → DO 走 default;有傳則整份取代 default |
|
|
|
} |
|
|
|
if (pickOrderId != null) { |
|
|
|
if (hasExplicitQty) { |
|
|
|
rebuildMs = measureTimeMillis { |
|
|
|
@@ -623,13 +626,13 @@ if (pickOrderId != null) { |
|
|
|
targetQty = explicitRemainder, |
|
|
|
storeId = request.storeId, |
|
|
|
excludeInventoryLotLineId = scannedIll.id, |
|
|
|
excludeWarehouseCodes = request.excludeWarehouseCodes, |
|
|
|
excludeWarehouseCodes = effectiveExcludeWarehouseCodes, |
|
|
|
) |
|
|
|
} else { |
|
|
|
suggestedPickLotWorkbenchService.setNoHoldSuggestionsForPickOrderLineExactQty( |
|
|
|
pickOrderLineId = polId, |
|
|
|
targetQty = BigDecimal.ZERO, |
|
|
|
excludeWarehouseCodes = request.excludeWarehouseCodes, |
|
|
|
excludeWarehouseCodes = effectiveExcludeWarehouseCodes, |
|
|
|
) |
|
|
|
} |
|
|
|
} |
|
|
|
@@ -656,7 +659,7 @@ if (pickOrderId != null) { |
|
|
|
suggestedPickLotWorkbenchService.rebuildNoHoldSuggestionsForPickOrderLine( |
|
|
|
pickOrderLineId = polId, |
|
|
|
storeId = request.storeId, |
|
|
|
excludeWarehouseCodes = request.excludeWarehouseCodes, |
|
|
|
excludeWarehouseCodes = effectiveExcludeWarehouseCodes, |
|
|
|
) |
|
|
|
} |
|
|
|
ensureMs = measureTimeMillis { |
|
|
|
|