Fix modal BatchLotSelection

This commit is contained in:
Marco Elefante 2025-04-15 18:39:38 +02:00
parent edc9470e9b
commit c287852ce6

View File

@ -515,7 +515,6 @@ public class SpedizioneViewModel {
}
private Pair<Boolean, MtbDepoPosizione> sendLUPositionChangeRequest() {
final CountDownLatch latch = new CountDownLatch(1);
AtomicReference<Pair<Boolean, MtbDepoPosizione>> result = new AtomicReference<>();
@ -533,9 +532,22 @@ public class SpedizioneViewModel {
return null;
}
private void sendBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots, RunnableArgs<MtbPartitaMag> onComplete) {
if (this.mListener != null)
mListener.onBatchLotSelectionRequest(availableBatchLots, onComplete);
private MtbPartitaMag sendBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots) {
final CountDownLatch latch = new CountDownLatch(1);
AtomicReference<MtbPartitaMag> result = new AtomicReference<>();
mListener.onBatchLotSelectionRequest(availableBatchLots, item -> {
result.set(item);
latch.countDown();
});
try {
latch.await(); // Attende che il dialog venga chiuso
return result.get();
} catch (InterruptedException e) {
this.sendError(e);
}
return null;
}
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO) throws Exception {
@ -1016,7 +1028,7 @@ public class SpedizioneViewModel {
.collect(Collectors.toList()));
}
this.sendBatchLotSelectionRequest(tmp, selected -> {
var selected = this.sendBatchLotSelectionRequest(tmp);
this.sendOnLoadingEnded();
if (selected != null) {
@ -1033,7 +1045,6 @@ public class SpedizioneViewModel {
this.sendError(e);
}
}
});
} else {
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, refMtbColr, scannedMtbColrs.get(0), canPartitaMagBeChanged, executeImmediately);