diff --git a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchMainService.kt b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchMainService.kt index a046520..f03bae9 100644 --- a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchMainService.kt +++ b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchMainService.kt @@ -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 {