| @@ -608,12 +608,15 @@ sol.id?.let { suggestedPickLotWorkbenchService.linkSplToStockOutLineAfterWorkben | |||||
| val saveSolMs = lapMs() | val saveSolMs = lapMs() | ||||
| val pickOrderId = pol.pickOrder?.id | val pickOrderId = pol.pickOrder?.id | ||||
| val poType = pol.pickOrder?.type | |||||
| var rebuildMs = 0L | var rebuildMs = 0L | ||||
| var ensureMs = 0L | var ensureMs = 0L | ||||
| var polPartialMs = 0L | var polPartialMs = 0L | ||||
| var postMs = 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 (pickOrderId != null) { | ||||
| if (hasExplicitQty) { | if (hasExplicitQty) { | ||||
| rebuildMs = measureTimeMillis { | rebuildMs = measureTimeMillis { | ||||
| @@ -623,13 +626,13 @@ if (pickOrderId != null) { | |||||
| targetQty = explicitRemainder, | targetQty = explicitRemainder, | ||||
| storeId = request.storeId, | storeId = request.storeId, | ||||
| excludeInventoryLotLineId = scannedIll.id, | excludeInventoryLotLineId = scannedIll.id, | ||||
| excludeWarehouseCodes = request.excludeWarehouseCodes, | |||||
| excludeWarehouseCodes = effectiveExcludeWarehouseCodes, | |||||
| ) | ) | ||||
| } else { | } else { | ||||
| suggestedPickLotWorkbenchService.setNoHoldSuggestionsForPickOrderLineExactQty( | suggestedPickLotWorkbenchService.setNoHoldSuggestionsForPickOrderLineExactQty( | ||||
| pickOrderLineId = polId, | pickOrderLineId = polId, | ||||
| targetQty = BigDecimal.ZERO, | targetQty = BigDecimal.ZERO, | ||||
| excludeWarehouseCodes = request.excludeWarehouseCodes, | |||||
| excludeWarehouseCodes = effectiveExcludeWarehouseCodes, | |||||
| ) | ) | ||||
| } | } | ||||
| } | } | ||||
| @@ -656,7 +659,7 @@ if (pickOrderId != null) { | |||||
| suggestedPickLotWorkbenchService.rebuildNoHoldSuggestionsForPickOrderLine( | suggestedPickLotWorkbenchService.rebuildNoHoldSuggestionsForPickOrderLine( | ||||
| pickOrderLineId = polId, | pickOrderLineId = polId, | ||||
| storeId = request.storeId, | storeId = request.storeId, | ||||
| excludeWarehouseCodes = request.excludeWarehouseCodes, | |||||
| excludeWarehouseCodes = effectiveExcludeWarehouseCodes, | |||||
| ) | ) | ||||
| } | } | ||||
| ensureMs = measureTimeMillis { | ensureMs = measureTimeMillis { | ||||