diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java index 15c0b56b66..82677a6e68 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGenericController.java @@ -549,7 +549,7 @@ public class WMSGenericController { @RequestMapping(value = EmsRestConstants.PATH_SPOSTA_UL_IN_POSIZIONE_DTO, method = RequestMethod.POST) public @ResponseBody - ServiceRestResponse spostaULInPosizioneDTO(@RequestParam(CommonConstants.PROFILE_DB) String configuration, + ServiceRestResponse spostaULInPosizione(@RequestParam(CommonConstants.PROFILE_DB) String configuration, @RequestBody SpostaUlInPosizioneRequestDTO requestDTO) throws Exception { wmsGenericService.spostaUL(requestDTO); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/dto/SpostaUlInPosizioneRequestDTO.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/dto/SpostaUlInPosizioneRequestDTO.java index 2be1942751..f05e8fefed 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/dto/SpostaUlInPosizioneRequestDTO.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/dto/SpostaUlInPosizioneRequestDTO.java @@ -2,14 +2,15 @@ package it.integry.ems.retail.wms.generic.dto; import it.integry.ems_model.entity.MtbColt; +import java.util.ArrayList; import java.util.List; public class SpostaUlInPosizioneRequestDTO { private String codMdep; private String posizione; - private List mtbColtsToMove; private String annotazioni; + private List mtbColtsToMove = new ArrayList<>(); public String getCodMdep() { return codMdep; diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java index 0ac5acb050..2218d96f2d 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGenericService.java @@ -1924,26 +1924,38 @@ public class WMSGenericService { if (UtilityString.isNullOrEmpty(requestDTO.getCodMdep())) { throw new Exception("Nessun deposito di arrivo selezionato"); } - List entitiesToSave = new ArrayList<>(); + List mtbCotlList = requestDTO.getMtbColtsToMove(); - - List codMdeps = mtbCotlList.stream().map(MtbColt::getCodMdep).distinct().collect(Collectors.toList()); if (codMdeps.isEmpty()) { throw new Exception("Nessun deposito di partenza selezionato!"); } - + if (codMdeps.size() > 1) { + throw new Exception("Le UL selezionate provengono da depositi differenti"); + } MtbDepo mtbDepo = new MtbDepo(); mtbDepo.setCodMdep(requestDTO.getCodMdep()) .setOperation(OperationType.SELECT_OBJECT); + entityProcessor.processEntity(mtbDepo, multiDBTransactionManager); + if (!UtilityString.isNullOrEmpty(requestDTO.getPosizione())) { + MtbDepoPosizioni mtbDepoPosizioni = new MtbDepoPosizioni() + .setCodMdep(requestDTO.getCodMdep()) + .setPosizione(requestDTO.getPosizione()); + mtbDepoPosizioni.setOperation(OperationType.SELECT_OBJECT); - if (codMdeps.size() > 1) { - throw new Exception("Le UL selezionate provengono da depositi differenti! "); + entityProcessor.processEntity(mtbDepoPosizioni, multiDBTransactionManager); + + if(mtbDepoPosizioni.getCodMdep() == null || mtbDepoPosizioni.getPosizione() == null) { + throw new Exception("La posizione " + requestDTO.getPosizione() + " non esiste nel deposito " + requestDTO.getCodMdep()); + } } + + + List entitiesToSave = new ArrayList<>(); String codMdepPartenza = codMdeps.get(0); if (!UtilityString.equalsIgnoreCase(codMdepPartenza, requestDTO.getCodMdep())) { @@ -1953,18 +1965,17 @@ public class WMSGenericService { if (UtilityString.isNullOrEmpty(codDtipToUse)) throw new Exception("La configurazione della setup gest non รจ completa per gestire gli spostamenti tra depositi"); - DtbDoct dtbDoct = new DtbDoct() .setCodMdep(codMdepPartenza) .setCodVdes(mtbDepo.getCodVdes()) .setCodAnag(mtbDepo.getCodAnag()) .setAnnotazioni(requestDTO.getAnnotazioni()) .setCodDtip(codDtipToUse); + dtbDoct.setOperation(OperationType.INSERT); for (MtbColt mtbColtToMove : mtbCotlList) { for (MtbColr mtbColr : mtbColtToMove.getMtbColr()) { - DtbDocr dtbDocr = new DtbDocr() .setCodMart(mtbColr.getCodMart()) .setPartitaMag(mtbColr.getPartitaMag())