From 71a18e9ffa9467d88d071d85c5df7283d45326bd Mon Sep 17 00:00:00 2001 From: MarcoE Date: Thu, 15 May 2025 12:52:42 +0200 Subject: [PATCH] Fix scansione barcode alternativi in VerificaGiacenze --- .../integrywmsnative/core/model/MtbAart.java | 9 +++ .../core/model/MtbAartBarCode.java | 55 +++++++++++++++++++ .../VerificaGiacenzeViewModel.java | 21 +++++-- 3 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/model/MtbAartBarCode.java diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java index fca85348..5a0eb06c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAart.java @@ -97,6 +97,8 @@ public class MtbAart extends EntityBase { private List mtbUntMis; + private List mtbAartBarCode; + public enum UntMisRifPesoEnum { C, @@ -965,6 +967,13 @@ public class MtbAart extends EntityBase { return getMtbUntMis() != null && !getMtbUntMis().isEmpty() ? getMtbUntMis().get(0) : null; } + public List getMtbAartBarCode() { + return mtbAartBarCode; + } + + public void setMtbAartBarCode(List mtbAartBarCode) { + this.mtbAartBarCode = mtbAartBarCode; + } @Override public boolean equals(Object o) { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAartBarCode.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAartBarCode.java new file mode 100644 index 00000000..b499fcbe --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbAartBarCode.java @@ -0,0 +1,55 @@ +package it.integry.integrywmsnative.core.model; + +import java.math.BigDecimal; + +public class MtbAartBarCode extends EntityBase { + private String codBarre; + private String codMart; + private BigDecimal qtaCnf; + private String flagPrimario; + private String tipoCodBarre; + + public MtbAartBarCode() { + this.type = "mtb_aart_bar_code"; + } + + public String getCodBarre() { + return codBarre; + } + + public void setCodBarre(String codBarre) { + this.codBarre = codBarre; + } + + public String getCodMart() { + return codMart; + } + + public void setCodMart(String codMart) { + this.codMart = codMart; + } + + public BigDecimal getQtaCnf() { + return qtaCnf; + } + + public void setQtaCnf(BigDecimal qtaCnf) { + this.qtaCnf = qtaCnf; + } + + public String getFlagPrimario() { + return flagPrimario; + } + + public void setFlagPrimario(String flagPrimario) { + this.flagPrimario = flagPrimario; + } + + public String getTipoCodBarre() { + return tipoCodBarre; + } + + public void setTipoCodBarre(String tipoCodBarre) { + this.tipoCodBarre = tipoCodBarre; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java index 7433c52b..690502bd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_verifica_giacenze/VerificaGiacenzeViewModel.java @@ -11,6 +11,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.concurrent.ExecutorService; import java.util.stream.Collectors; @@ -24,6 +25,7 @@ import it.integry.integrywmsnative.core.data_store.db.respository_new.VerificaGi import it.integry.integrywmsnative.core.exception.NoArtsFoundException; import it.integry.integrywmsnative.core.mapper.VerificaGiacenzeMapper; import it.integry.integrywmsnative.core.model.MtbAart; +import it.integry.integrywmsnative.core.model.MtbAartBarCode; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.GiacenzaPvRESTConsumer; import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel; @@ -116,7 +118,7 @@ public class VerificaGiacenzeViewModel { public void randomizeElements(int elementsCount) { - for(int i = 0; i < elementsCount; i++) { + for (int i = 0; i < elementsCount; i++) { var randomIndex = (int) (Math.random() * currentLoadedAnagrafiche.size()); var randomAnagrafica = currentLoadedAnagrafiche.get(randomIndex); @@ -168,7 +170,7 @@ public class VerificaGiacenzeViewModel { public void save() throws Exception { - if(currentVerificaRows.getValue().isEmpty()) { + if (currentVerificaRows.getValue().isEmpty()) { delete(); return; } @@ -280,10 +282,21 @@ public class VerificaGiacenzeViewModel { } public MtbAart searchAnagraficaByBarcode(String barcode) { - return currentLoadedAnagrafiche.parallelStream() - .filter(mtbAart -> barcode.equals(mtbAart.getBarCode())) + MtbAart mtbAart = currentLoadedAnagrafiche.parallelStream() + .filter(x -> barcode.equals(x.getBarCode())) .findFirst() .orElse(null); + + if (mtbAart == null) { + mtbAart = currentLoadedAnagrafiche.parallelStream() + .filter(x -> x.getMtbAartBarCode() != null && + x.getMtbAartBarCode().stream() + .anyMatch(y -> barcode.equals(y.getCodBarre()))) + .findFirst() + .orElse(null); + } + + return mtbAart; } public void insertRow(VerificaGiacenzeRowEntity rowEntity) {