Aggiunto blocco inserimento righe uds in caso di anomalia sulla ul
Some checks failed
IntegryManagementSystem_Multi/pipeline/head There was a failure building this commit

This commit is contained in:
2025-12-09 13:19:53 +01:00
parent fd20914e8c
commit aae80b698e
5 changed files with 90 additions and 12 deletions

View File

@@ -1674,8 +1674,6 @@ public class PvmService {
if (getColloInGiacResponse != null) {
getColloInGiacResponse.getMtbColt().setOnlyPkMaster(false);
getColloInGiacResponse.getMtbColt().setOperation(OperationType.SELECT_OBJECT);
} else {
getColloInGiacResponse = new GetColloInGiacResponseDTO();
}
return getColloInGiacResponse;

View File

@@ -7,6 +7,7 @@ import it.integry.ems._context.ApplicationContextProvider;
import it.integry.ems.dynamic_cache.EntityCacheComponent;
import it.integry.ems.exception.MissingDataException;
import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.retail.wms.accettazione.dto.AnomaliaUlDTO;
import it.integry.ems.retail.wms.dto.*;
import it.integry.ems.retail.wms.exceptions.InvalidArticoloException;
import it.integry.ems.retail.wms.generic.dto.MvwSitArtUdcDetInventarioDTO;
@@ -52,7 +53,8 @@ public class WMSUtility {
final MtbDepoTipi mtbDepoTipi = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(connection, selectSql, MtbDepoTipi.class);
if (mtbDepoTipi == null) throw new Exception("Informazioni sul tipo deposito non specificate per il deposito: "+codMdep);
if (mtbDepoTipi == null)
throw new Exception("Informazioni sul tipo deposito non specificate per il deposito: " + codMdep);
return mtbDepoTipi.getGestisciColli() == null || mtbDepoTipi.getGestisciColli();
}
@@ -109,7 +111,7 @@ public class WMSUtility {
}
public static HashMap<String, MtbTcol> getListaTipiColloByBarcodeUls(List<String> barcodeUls, Connection connection) throws Exception {
if(barcodeUls == null || barcodeUls.isEmpty()) return new HashMap<>();
if (barcodeUls == null || barcodeUls.isEmpty()) return new HashMap<>();
@NotNull List<HashMap<String, Object>> barcodesWithCodTcol = UtilityDB.executeSimpleQuery(connection,
"SELECT DISTINCT barcode_ul, cod_tcol FROM mtb_colt WHERE barcode_ul IN (" + UtilityQuery.concatStringFieldsWithSeparator(barcodeUls, ",") + ")");
@@ -380,7 +382,6 @@ public class WMSUtility {
}
public static List<MtbColr> createCambiaPosizioneUlMovement(Connection connection, String sscc, boolean changeCodMdep, String newCodMdep, String newPosizione) throws Exception {
return createCambiaPosizioneUlMovements(connection, Collections.singletonList(sscc), changeCodMdep, newCodMdep, newPosizione);
}
@@ -539,9 +540,9 @@ public class WMSUtility {
.setOperation(OperationType.UPDATE);
if(useRequestUsername)
if (useRequestUsername)
stornoSourceMtbColr
.setUtente(requestDataDTO.getUsername());
.setUtente(requestDataDTO.getUsername());
mtbColrSourceList.add(stornoSourceMtbColr);
}
@@ -578,7 +579,7 @@ public class WMSUtility {
.setPosizioneIn(destinationPosizione)
.setOperation(OperationType.INSERT_OR_UPDATE);
if(useRequestUsername)
if (useRequestUsername)
cloneMtbColr
.setUtente(requestDataDTO.getUsername());
@@ -677,9 +678,9 @@ public class WMSUtility {
.setNote(insertUDCRowRequestDTO.getAnnotazioni())
.setNumEtich(insertUDCRowRequestDTO.getNumEtich());
if (insertUDCRowRequestDTO.getCodDtip() != null){
targetMtbColr.setCodAnagDoc(insertUDCRowRequestDTO.getTargetMtbColt().getCodAnag());
}
if (insertUDCRowRequestDTO.getCodDtip() != null) {
targetMtbColr.setCodAnagDoc(insertUDCRowRequestDTO.getTargetMtbColt().getCodAnag());
}
targetMtbColr.setBarcodeUlIn(UtilityString.isNull(insertUDCRowRequestDTO.getCustomBarcodeUlIn(), targetMtbColt.getBarcodeUl()))
.setCodMdepIn(UtilityString.isNull(insertUDCRowRequestDTO.getCustomCodMdepIn(), targetMtbColt.getCodMdep()))
@@ -1084,6 +1085,21 @@ public class WMSUtility {
public static List<MtbColt> retrieveUlsByBarcodes(Connection connection, List<String> barcodeList) throws Exception {
if (barcodeList == null || barcodeList.isEmpty()) return new ArrayList<>();
return UtilityDB.executeSimpleQueryDTO(connection,Query.format("SELECT * from mtb_colt where barcode_ul in ("+UtilityDB.listValueToString(barcodeList)+")"), MtbColt.class);
return UtilityDB.executeSimpleQueryDTO(connection, Query.format("SELECT * from mtb_colt where barcode_ul in (" + UtilityDB.listValueToString(barcodeList) + ")"), MtbColt.class);
}
public static AnomaliaUlDTO getAnomaliaUl(Connection connection, MtbColt mtbColt) {
String sql = Query.format(
"SELECT mtb_anomalie_ul.descrizione AS descrizione_anomalia,\n" +
" mtb_livelli_anomalie.descrizione AS descrizione_livello_anomalia,\n" +
" escludi_picking_vendita,\n" +
" escludi_picking_lavorazione\n" +
"FROM mtb_colt\n" +
" LEFT OUTER JOIN mtb_anomalie_ul ON id_anomalia = mtb_anomalie_ul.id\n" +
" LEFT OUTER JOIN mtb_livelli_anomalie ON mtb_livelli_anomalie.id = mtb_anomalie_ul.id_livello_anomalia\n" +
"WHERE barcode_ul = %s", mtbColt.getBarcodeUl()
);
return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(connection, sql, AnomaliaUlDTO.class).getDescrizioneAnomalia();
}
}

View File

@@ -0,0 +1,54 @@
package it.integry.ems.retail.wms.accettazione.dto;
import it.integry.ems_model.annotation.SqlField;
public class AnomaliaUlDTO {
@SqlField("descrizione_anomalia")
private String descrizioneAnomalia;
@SqlField("descrizione_livello_anomalia")
private String descrizioneLivelloAnomalia;
@SqlField("escludi_picking_vendita")
private Boolean escludiPickingVendita;
@SqlField("escludi_picking_lavorazione")
private Boolean escludiPickingLavorazione;
public String getDescrizioneAnomalia() {
return descrizioneAnomalia;
}
public AnomaliaUlDTO setDescrizioneAnomalia(String descrizioneAnomalia) {
this.descrizioneAnomalia = descrizioneAnomalia;
return this;
}
public String getDescrizioneLivelloAnomalia() {
return descrizioneLivelloAnomalia;
}
public AnomaliaUlDTO setDescrizioneLivelloAnomalia(String descrizioneLivelloAnomalia) {
this.descrizioneLivelloAnomalia = descrizioneLivelloAnomalia;
return this;
}
public Boolean getEscludiPickingVendita() {
return escludiPickingVendita;
}
public AnomaliaUlDTO setEscludiPickingVendita(Boolean escludiPickingVendita) {
this.escludiPickingVendita = escludiPickingVendita;
return this;
}
public Boolean getEscludiPickingLavorazione() {
return escludiPickingLavorazione;
}
public AnomaliaUlDTO setEscludiPickingLavorazione(Boolean escludiPickingLavorazione) {
this.escludiPickingLavorazione = escludiPickingLavorazione;
return this;
}
}

View File

@@ -6,6 +6,7 @@ import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.logistic.dto.sm2.FiltroDistribuzioneColloDTO;
import it.integry.ems.product.importaz.service.ProductServices;
import it.integry.ems.retail.wms.Utility.WMSUtility;
import it.integry.ems.retail.wms.accettazione.dto.AnomaliaUlDTO;
import it.integry.ems.retail.wms.colli.service.WMSColliService;
import it.integry.ems.retail.wms.dto.*;
import it.integry.ems.retail.wms.exceptions.InvalidArticoloException;
@@ -161,6 +162,10 @@ public class WMSLavorazioneService {
entityProcessor.processEntity(targetMtbColt, multiDBTransactionManager);
targetMtbColt.setOperation(OperationType.NO_OP);
AnomaliaUlDTO anomaliaUl = WMSUtility.getAnomaliaUl(multiDBTransactionManager.getPrimaryConnection(), targetMtbColt);
if (anomaliaUl.getEscludiPickingLavorazione())
throw new Exception(anomaliaUl.getDescrizioneAnomalia());
insertUDSRowRequestDTO.setTargetMtbColt(targetMtbColt);
InsertUDSRowResponseDTO generatedMovement = WMSUtility.insertUDSLavorazioneRowMovement(multiDBTransactionManager.getPrimaryConnection(), insertUDSRowRequestDTO, userSession.getUsername());

View File

@@ -8,6 +8,7 @@ import it.integry.ems.retail.pvmRetail.dto.save.DocFromPickingDTO;
import it.integry.ems.retail.pvmRetail.service.PvmServiceSave;
import it.integry.ems.retail.wms.Utility.WMSUtility;
import it.integry.ems.retail.wms.accettazione.dto.AlreadyRegisteredUlDTO;
import it.integry.ems.retail.wms.accettazione.dto.AnomaliaUlDTO;
import it.integry.ems.retail.wms.colli.service.WMSColliService;
import it.integry.ems.retail.wms.dto.*;
import it.integry.ems.retail.wms.exceptions.InvalidArticoloException;
@@ -249,6 +250,10 @@ public class WMSSpedizioneService {
entityProcessor.processEntity(targetMtbColt, multiDBTransactionManager);
targetMtbColt.setOperation(OperationType.NO_OP);
AnomaliaUlDTO anomaliaUl = WMSUtility.getAnomaliaUl(multiDBTransactionManager.getPrimaryConnection(), targetMtbColt);
if (anomaliaUl.getEscludiPickingLavorazione())
throw new Exception(anomaliaUl.getDescrizioneAnomalia());
insertUDSRowRequestDTO.setTargetMtbColt(targetMtbColt);
InsertUDSRowResponseDTO generatedMovement = insertUDSRowMovement(insertUDSRowRequestDTO);