diff --git a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchDopoAssignmentService.kt b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchDopoAssignmentService.kt index 6e795c4..f5ffc57 100644 --- a/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchDopoAssignmentService.kt +++ b/src/main/java/com/ffii/fpsms/modules/deliveryOrder/service/DoWorkbenchDopoAssignmentService.kt @@ -110,7 +110,7 @@ open class DoWorkbenchDopoAssignmentService( "4/F" -> "4/F" else -> request.storeId } - println(" DEBUG: assignByLaneForWorkbench storeId=$actualStoreId date=${request.requiredDate} lane=${request.truckLanceCode} dep=${request.truckDepartureTime}") + println(" DEBUG: assignByLaneForWorkbench storeId=$actualStoreId date=${request.requiredDate} lane=${request.truckLanceCode} dep=${request.truckDepartureTime} seq=${request.loadingSequence}") val params = mutableMapOf( "storeId" to actualStoreId, @@ -140,6 +140,10 @@ open class DoWorkbenchDopoAssignmentService( sql.append(" AND dop.truckDepartureTime = :depTime ") params["depTime"] = depSqlTime } + if (request.loadingSequence != null) { + sql.append(" AND dop.loadingSequence = :loadingSequence ") + params["loadingSequence"] = request.loadingSequence + } // Fetch a batch of candidates and try atomic-assign sequentially. // This avoids forcing the frontend to refresh when a single picked candidate is concurrently assigned. val candidateLimit = 50 @@ -205,7 +209,7 @@ open class DoWorkbenchDopoAssignmentService( "4/F" -> "4/F" else -> request.storeId } - println(" DEBUG: assignByLaneForWorkbenchV1 storeId=$actualStoreId date=${request.requiredDate} lane=${request.truckLanceCode} dep=${request.truckDepartureTime}") + println(" DEBUG: assignByLaneForWorkbenchV1 storeId=$actualStoreId date=${request.requiredDate} lane=${request.truckLanceCode} dep=${request.truckDepartureTime} seq=${request.loadingSequence}") val params = mutableMapOf( "storeId" to actualStoreId, @@ -234,6 +238,10 @@ open class DoWorkbenchDopoAssignmentService( sql.append(" AND dop.truckDepartureTime = :depTime ") params["depTime"] = depSqlTime } + if (request.loadingSequence != null) { + sql.append(" AND dop.loadingSequence = :loadingSequence ") + params["loadingSequence"] = request.loadingSequence + } sql.append(" ORDER BY dop.requiredDeliveryDate ASC, dop.truckDepartureTime ASC, dop.id ASC LIMIT 1 ") val candidates = try {