|
|
|
|
@@ -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,24 +1028,23 @@ public class SpedizioneViewModel {
|
|
|
|
|
.collect(Collectors.toList()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.sendBatchLotSelectionRequest(tmp, selected -> {
|
|
|
|
|
this.sendOnLoadingEnded();
|
|
|
|
|
var selected = this.sendBatchLotSelectionRequest(tmp);
|
|
|
|
|
this.sendOnLoadingEnded();
|
|
|
|
|
|
|
|
|
|
if (selected != null) {
|
|
|
|
|
MtbColr scannedMtbColr = pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().stream()
|
|
|
|
|
.filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) &&
|
|
|
|
|
((x.getPartitaMag() != null && selected.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(selected.getPartitaMag()))
|
|
|
|
|
|| (x.getPartitaMag() == null && selected.getPartitaMag() == null)))
|
|
|
|
|
.findFirst()
|
|
|
|
|
.orElse(null);
|
|
|
|
|
if (selected != null) {
|
|
|
|
|
MtbColr scannedMtbColr = pickingObjectDTO.getTempPickData().getSourceMtbColt().getMtbColr().stream()
|
|
|
|
|
.filter(x -> x.getCodMart().equalsIgnoreCase(pickingObjectDTO.getMtbAart().getCodMart()) &&
|
|
|
|
|
((x.getPartitaMag() != null && selected.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(selected.getPartitaMag()))
|
|
|
|
|
|| (x.getPartitaMag() == null && selected.getPartitaMag() == null)))
|
|
|
|
|
.findFirst()
|
|
|
|
|
.orElse(null);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, refMtbColr, scannedMtbColr, canPartitaMagBeChanged, executeImmediately);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
this.sendError(e);
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, refMtbColr, scannedMtbColr, canPartitaMagBeChanged, executeImmediately);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
this.sendError(e);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
dispatchOrdineRowOnPostBatchLotSelection(pickingObjectDTO, refMtbColt, refMtbColr, scannedMtbColrs.get(0), canPartitaMagBeChanged, executeImmediately);
|
|
|
|
|
|