diff --git a/ems-core/src/main/java/it/integry/ems/service/AziendaService.java b/ems-core/src/main/java/it/integry/ems/service/AziendaService.java index 2d2062c55e..bc9507567c 100644 --- a/ems-core/src/main/java/it/integry/ems/service/AziendaService.java +++ b/ems-core/src/main/java/it/integry/ems/service/AziendaService.java @@ -1,40 +1,34 @@ package it.integry.ems.service; -import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; +import it.integry.ems.sync.MultiDBTransaction.Connection; import it.integry.ems_model.utility.UtilityDB; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; @Service -@Scope("request") public class AziendaService { - @Autowired - private MultiDBTransactionManager multiDBTransactionManager; - - public String retrieveInternalCodAnagFornitore() throws Exception { + public String retrieveInternalCodAnagFornitore(Connection connection) throws Exception { String internalCodAnagsQuery = "SELECT CAST(ga.cod_anag AS VARCHAR(5)) AS cod_anag\n" + "FROM azienda\n" + " INNER JOIN gtb_anag ga ON azienda.part_iva = ga.part_iva\n" + " INNER JOIN atb_forn af ON ga.cod_anag = af.cod_anag AND af.flag_stato = 'A'"; - return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), internalCodAnagsQuery); + return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, internalCodAnagsQuery); } - public String retrieveInternalCodAnagCliente() throws Exception { + public String retrieveInternalCodAnagCliente(Connection connection) throws Exception { String internalCodAnagsQuery = "SELECT CAST(ga.cod_anag AS VARCHAR(5)) AS cod_anag\n" + "FROM azienda\n" + " INNER JOIN gtb_anag ga ON azienda.part_iva = ga.part_iva\n" + " INNER JOIN vtb_clie vc ON ga.cod_anag = vc.cod_anag AND vc.flag_stato = 'A'"; - return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), internalCodAnagsQuery); + return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, internalCodAnagsQuery); } - public String retrieveInternalPartIva() throws Exception { + public String retrieveInternalPartIva(Connection connection) throws Exception { String internalCodAnagsQuery = "SELECT part_iva\n" + "FROM azienda"; - return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), internalCodAnagsQuery); + return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, internalCodAnagsQuery); } } diff --git a/ems-core/src/main/java/it/integry/ems/service/PrinterService.java b/ems-core/src/main/java/it/integry/ems/service/PrinterService.java index d09f49e86a..5e1aade170 100644 --- a/ems-core/src/main/java/it/integry/ems/service/PrinterService.java +++ b/ems-core/src/main/java/it/integry/ems/service/PrinterService.java @@ -43,6 +43,7 @@ public class PrinterService { @Autowired private SetupGest setupGest; + @Autowired private ReportProcessor reportProcessor; diff --git a/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/controller/MissioniMagazzinoAutomaticoController.java b/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/controller/MissioniMagazzinoAutomaticoController.java index 9bfc247198..ea671dbdec 100644 --- a/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/controller/MissioniMagazzinoAutomaticoController.java +++ b/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/controller/MissioniMagazzinoAutomaticoController.java @@ -7,6 +7,7 @@ import it.integry.ems.logistic.missioni.magazzino_automatico.dto.CreateMissioneM import it.integry.ems.logistic.missioni.magazzino_automatico.dto.LogErrorMissioneMagazzinoAutomaticoRequestDTO; import it.integry.ems.logistic.missioni.magazzino_automatico.service.MissioniMagazzinoAutomaticoService; import it.integry.ems.response.ServiceRestResponse; +import it.integry.ems.retail.wms.generic.service.WMSGenericService; import it.integry.ems.retail.wms.generic.service.WMSGiacenzaULService; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.user.UserSession; @@ -28,13 +29,15 @@ public class MissioniMagazzinoAutomaticoController { private final RequestDataDTO requestDataDTO; private final UserSession userSession; private final WMSGiacenzaULService wmsGiacenzaULService; + private final WMSGenericService wmsGenericService; - public MissioniMagazzinoAutomaticoController(MissioniMagazzinoAutomaticoService missioniMagazzinoAutomaticoService, MultiDBTransactionManager multiDBTransactionManager, RequestDataDTO requestDataDTO, UserSession userSession, WMSGiacenzaULService wmsGiacenzaULService) { + public MissioniMagazzinoAutomaticoController(MissioniMagazzinoAutomaticoService missioniMagazzinoAutomaticoService, MultiDBTransactionManager multiDBTransactionManager, RequestDataDTO requestDataDTO, UserSession userSession, WMSGiacenzaULService wmsGiacenzaULService, WMSGenericService wmsGenericService) { this.missioniMagazzinoAutomaticoService = missioniMagazzinoAutomaticoService; this.multiDBTransactionManager = multiDBTransactionManager; this.requestDataDTO = requestDataDTO; this.userSession = userSession; this.wmsGiacenzaULService = wmsGiacenzaULService; + this.wmsGenericService = wmsGenericService; } @@ -85,14 +88,17 @@ public class MissioniMagazzinoAutomaticoController { ServiceRestResponse setAsStarted(@RequestParam(CommonConstants.PROFILE_DB) String profileDB, @RequestParam long missionId, @RequestParam long missionRowId, - @RequestParam String action) throws Exception { + @RequestParam String action, + @RequestParam(required = false) String posizioneIn) throws Exception { userSession.checkUser(); try { missioniMagazzinoAutomaticoService.updateMissionStatus(multiDBTransactionManager, + wmsGenericService, missionId, missionRowId, - action); + action, + posizioneIn); } catch (Exception ex) { multiDBTransactionManager.rollbackAll(); diff --git a/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/service/EuroforkDataSyncronizerService.java b/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/service/EuroforkDataSyncronizerService.java index d80d3097c1..98308ba1b8 100644 --- a/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/service/EuroforkDataSyncronizerService.java +++ b/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/service/EuroforkDataSyncronizerService.java @@ -47,7 +47,7 @@ public class EuroforkDataSyncronizerService { String sqlRetrieveEuroforkStatus = "SELECT LU.[Number] AS SSCC,\n" + " ISNULL(\n" + - " IIF(LEN(Cells.[Note]) > 0, CONCAT('WH1', Cells.[Note]), NULL),\n" + + " IIF(LEN(Cells.[Note]) > 0, CONCAUT('WH1', Cells.[Note]), NULL),\n" + " CONCAT('WH1',\n" + " FORMAT(Cells.[Level], '00'),\n" + " Cells.[ColumnSide],\n" + diff --git a/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/service/MissioniMagazzinoAutomaticoService.java b/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/service/MissioniMagazzinoAutomaticoService.java index d805a8df1c..706538d7a8 100644 --- a/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/service/MissioniMagazzinoAutomaticoService.java +++ b/ems-engine/src/main/java/it/integry/ems/logistic/missioni/magazzino_automatico/service/MissioniMagazzinoAutomaticoService.java @@ -3,13 +3,14 @@ package it.integry.ems.logistic.missioni.magazzino_automatico.service; import it.integry.ems.exception.PrimaryDatabaseNotPresentException; import it.integry.ems.logistic.missioni.magazzino_automatico.dto.MissioneMagazzinoAutomaticoDTO; import it.integry.ems.logistic.missioni.magazzino_automatico.utils.MissioniMagazzinoAutomaticoUtils; +import it.integry.ems.retail.wms.Utility.WMSUtility; +import it.integry.ems.retail.wms.generic.dto.SpostaUlRequestDTO; +import it.integry.ems.retail.wms.generic.service.WMSGenericService; import it.integry.ems.service.EntityProcessor; import it.integry.ems.sync.MultiDBTransaction.Connection; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems_model.config.EmsRestConstants; -import it.integry.ems_model.entity.MtbMissioneMagAuto; -import it.integry.ems_model.entity.MtbMissioneMagAutoDet; -import it.integry.ems_model.entity.StbUser; +import it.integry.ems_model.entity.*; import it.integry.ems_model.exception.DataConverterNotFoundException; import it.integry.ems_model.types.OperationType; import it.integry.ems_model.utility.UtilityDB; @@ -22,6 +23,7 @@ import org.springframework.stereotype.Service; import javax.validation.constraints.NotNull; import java.sql.SQLException; import java.time.LocalDateTime; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; @@ -182,7 +184,7 @@ public class MissioniMagazzinoAutomaticoService { return mtbMissioneMagAuto.getId(); } - public void updateMissionStatus(MultiDBTransactionManager multiDBTransactionManager, long missionId, long missionRowId, String action) throws Exception { + public void updateMissionStatus(MultiDBTransactionManager multiDBTransactionManager, WMSGenericService wmsGenericService, long missionId, long missionRowId, String action, String posizioneIn) throws Exception { if (UtilityString.isNullOrEmpty(action)) throw new IllegalArgumentException("Il parametro action non può essere vuoto"); @@ -202,6 +204,7 @@ public class MissioniMagazzinoAutomaticoService { case "started": missioneRow.setStartedAt(LocalDateTime.now()); missioneRow.setCompleted(false); + missioneRow.setPosizioneIn(posizioneIn); missioneRow.setEndedAt(EmsRestConstants.LOCAL_DATE_TIME_NULL); break; @@ -220,23 +223,35 @@ public class MissioniMagazzinoAutomaticoService { switch (action) { case "started": - onMissionStarted(missioneRow); + onMissionStarted(multiDBTransactionManager, wmsGenericService, missioneRow); break; case "completed": - onMissionCompleted(missioneRow); + onMissionCompleted(multiDBTransactionManager, wmsGenericService, missioneRow); break; } - throw new RuntimeException("TESSSSTTT"); +// throw new RuntimeException("TESSSSTTT"); } - private void onMissionStarted(MtbMissioneMagAutoDet missioneRow) { + private void onMissionStarted(MultiDBTransactionManager multiDBTransactionManager, WMSGenericService wmsGenericService, MtbMissioneMagAutoDet missioneRow) { // Implement any logic needed when a mission starts } - private void onMissionCompleted(MtbMissioneMagAutoDet missioneRow) { + private void onMissionCompleted(MultiDBTransactionManager multiDBTransactionManager, WMSGenericService wmsGenericService, MtbMissioneMagAutoDet missioneRow) throws Exception { + MtbDepoPosizioni posizioneDest = + WMSUtility.getPosizioneFromName(multiDBTransactionManager.getPrimaryConnection(), missioneRow.getPosizioneIn()); + + if (posizioneDest == null) + throw new Exception("Posizione di destinazione " + missioneRow.getPosizioneIn() + " non trovata."); + + + final MtbColt wmsMovement = wmsGenericService.spostaUL(new SpostaUlRequestDTO() + .setCodMdep(posizioneDest.getCodMdep()) + .setPosizione(posizioneDest.getPosizione()) + .setCreateDocAutomatically(false) + .setBarcodeUlList(Collections.singletonList(missioneRow.getSscc()))); } diff --git a/ems-engine/src/main/java/it/integry/ems/production/service/ProductionOrdersLifecycleService.java b/ems-engine/src/main/java/it/integry/ems/production/service/ProductionOrdersLifecycleService.java index dbe9dfaf1b..afc55799a7 100644 --- a/ems-engine/src/main/java/it/integry/ems/production/service/ProductionOrdersLifecycleService.java +++ b/ems-engine/src/main/java/it/integry/ems/production/service/ProductionOrdersLifecycleService.java @@ -103,7 +103,7 @@ public class ProductionOrdersLifecycleService { dto.setRapConvProd(dtbOrdt.getRapConvProd()); dto.setUntMisProd(dtbOrdt.getUntMisProd()); dto.setRifOrd(dtbOrdt.getRifOrd()); - String partIvaAzienda = aziendaService.retrieveInternalPartIva(); + String partIvaAzienda = aziendaService.retrieveInternalPartIva(multiDBTransactionManager.getPrimaryConnection()); String partIvaOrder = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), Query.format("SELECT part_iva from gtb_anag where cod_anag = {}", dtbOrdt.getCodAnag())); boolean isOrdineInterno = partIvaAzienda.equalsIgnoreCase(partIvaOrder); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneService.java index 26e36732a6..c045665ba3 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/accettazione/service/WMSAccettazioneService.java @@ -153,7 +153,7 @@ public class WMSAccettazioneService { boolean useCodAnagAziendale = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "SETUP", "FLAG_USE_COD_ANAG_AZIENDALE"); if (UtilityString.isNullOrEmpty(createUDCRequestDTO.getCodAnag()) && useCodAnagAziendale) { - String defaultCodAnag = aziendaService.retrieveInternalCodAnagFornitore(); + String defaultCodAnag = aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection()); udcMtbColt.setCodAnag(defaultCodAnag); } else udcMtbColt.setCodAnag(createUDCRequestDTO.getCodAnag()); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGiacenzaController.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGiacenzaController.java index 00704552e2..2ced03f129 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGiacenzaController.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/controller/WMSGiacenzaController.java @@ -112,6 +112,6 @@ public class WMSGiacenzaController { .setCodJcom(codJcom)); return ServiceRestResponse.createPositiveResponse( - wmsGiacenzaService.retrieveInstantItemSituation(retrieveInstantItemSituationRequestDTOList)); + wmsGiacenzaService.retrieveInstantItemSituation(multiDBTransactionManager.getPrimaryConnection(), retrieveInstantItemSituationRequestDTOList)); } } 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 0f30029d5e..e17f97b116 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 @@ -747,7 +747,10 @@ public class WMSGenericService { .collect(Collectors.toList()); if (gestioneOrd.equalsIgnoreCase("V")) { - final List instantItemSituationIncomingItemDTOS = wmsGiacenzaService.retrieveIncomingItems(incomingItemsRequest); + final List instantItemSituationIncomingItemDTOS = + wmsGiacenzaService.retrieveIncomingItems( + multiDBTransactionManager.getPrimaryConnection(), + incomingItemsRequest); for (SitArtOrdDTO sitArtOrd : sitArtOrdDTOS) { sitArtOrd.setQtaArrivo(BigDecimal.ZERO); @@ -1283,7 +1286,7 @@ public class WMSGenericService { DtbDoct dtbDoctInv = null; - if (shouldCreateMovimentoFiscale && createNewCollo) { + if (shouldCreateMovimentoFiscale && createNewCollo) { String codDtipToUse = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "RETTIFICA_GIACENZE", "TIPO_MOVIMENTO_FISCALE"); if (UtilityString.isNullOrEmpty(codDtipToUse)) @@ -1299,7 +1302,7 @@ public class WMSGenericService { dtbDoctInv = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sqlCheckDocExists, DtbDoct.class); if (dtbDoctInv == null) { - String codAnagAziendale = aziendaService.retrieveInternalCodAnagFornitore(); + String codAnagAziendale = aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection()); dtbDoctInv = new DtbDoct(codAnagAziendale, codDtipToUse, LocalDate.now(), null, null) .setCodMdep(codMdep); dtbDoctInv.setOperation(OperationType.INSERT); @@ -1461,7 +1464,7 @@ public class WMSGenericService { .setPosizioneOut(null) .setOperation(OperationType.INSERT); - if (anagUl.getGestione().equalsIgnoreCase("L") && anagUl.getSegno() > 0 && anagUl.getOrdine() != null){ + if (anagUl.getGestione().equalsIgnoreCase("L") && anagUl.getSegno() > 0 && anagUl.getOrdine() != null) { mtbColrToSave.setDataOrd(anagUl.getDataOrd()) .setNumOrd(anagUl.getNumOrd()); } @@ -2086,7 +2089,7 @@ public class WMSGenericService { if (!shouldGenerateDoc) { codMdepDoc = codMdepPartenza; - codAnag = aziendaService.retrieveInternalCodAnagFornitore(); + codAnag = aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection()); codVdes = null; } else { String codDtipToUse = setupGest.getSetupDepo(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "LOGISTICA", "COD_DTIP_DOC_TRASF_INTERNI", codMdepArrivo); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaService.java index c63465b856..c8587ee5ee 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSGiacenzaService.java @@ -1,14 +1,13 @@ package it.integry.ems.retail.wms.generic.service; import it.integry.ems.retail.wms.generic.dto.*; -import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; +import it.integry.ems.sync.MultiDBTransaction.Connection; import it.integry.ems_model.service.SetupGest; import it.integry.ems_model.utility.Query; import it.integry.ems_model.utility.UtilityDB; import it.integry.ems_model.utility.UtilityQuery; import it.integry.ems_model.utility.UtilityString; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -16,12 +15,8 @@ import java.util.List; import java.util.stream.Collectors; @Service -@Scope("request") public class WMSGiacenzaService { - @Autowired - private MultiDBTransactionManager multiDBTransactionManager; - @Autowired private WMSGiacenzaULService wmsGiacenzaULService; @@ -29,8 +24,8 @@ public class WMSGiacenzaService { private SetupGest setupGest; - public InstantItemSituationResponseDTO retrieveInstantItemSituation(List instantItemSituationRequestList) throws Exception { - final List incomingItems = retrieveIncomingItems(instantItemSituationRequestList); + public InstantItemSituationResponseDTO retrieveInstantItemSituation(Connection connection, List instantItemSituationRequestList) throws Exception { + final List incomingItems = retrieveIncomingItems(connection, instantItemSituationRequestList); final List retrieveArtsInGiacenzaByArtRequestDTOList = instantItemSituationRequestList.stream() .map(x -> new RetrieveArtsInGiacenzaByArtRequestDTO() @@ -39,7 +34,7 @@ public class WMSGiacenzaService { .setCodMdep(x.getCodMdep())) .collect(Collectors.toList()); - final List availableItems = wmsGiacenzaULService.retrieveArtsInGiacenzaByArticolo(multiDBTransactionManager.getPrimaryConnection(), + final List availableItems = wmsGiacenzaULService.retrieveArtsInGiacenzaByArticolo(connection, retrieveArtsInGiacenzaByArtRequestDTOList, false); @@ -49,7 +44,7 @@ public class WMSGiacenzaService { } - public List retrieveIncomingItems(List instantItemSituationRequestList) throws Exception { + public List retrieveIncomingItems(Connection connection, List instantItemSituationRequestList) throws Exception { final String commessaMagazzino = setupGest.getSetup("PICKING", "SETUP", "COMMESSA_MAGAZZINO"); List> whereCondMaps = instantItemSituationRequestList.stream() @@ -148,7 +143,7 @@ public class WMSGiacenzaService { " AND (qta_ord * rap_conv) - dtb_ordr.qta_evasa - ISNULL(evasione_colli.qta_col, 0) > 0\n" + "ORDER BY ISNULL(data_cons, dtb_ordr.data_ord) DESC"); - return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), queryRetrieveOrders, InstantItemSituationIncomingItemDTO.class); + return UtilityDB.executeSimpleQueryDTO(connection, queryRetrieveOrders, InstantItemSituationIncomingItemDTO.class); } } diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSMagazzinoAutomaticoService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSMagazzinoAutomaticoService.java index 70c9f9f57e..1c6258df53 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSMagazzinoAutomaticoService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSMagazzinoAutomaticoService.java @@ -31,6 +31,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.Collections; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.stream.Collectors; @@ -171,12 +172,20 @@ public class WMSMagazzinoAutomaticoService { if (!existingMissions.isEmpty()) throw new IllegalArgumentException("Esistono missioni in corso per le unità logistiche: " + String.join(", ", existingMissions.keySet())); - final HashMap giacenzaItems = + final HashMap giacenzaItemsTemp = wmsGiacenzaULService.retrieveBarcodeUlsCurrentPosition(multiDBTransactionManager.getPrimaryConnection(), inputData.getBarcodeUl()); - if (giacenzaItems == null || giacenzaItems.isEmpty()) + if (giacenzaItemsTemp == null || giacenzaItemsTemp.isEmpty()) throw new IllegalArgumentException("Unità logistica non trovata: " + inputData.getBarcodeUl()); + // Riordina giacenzaItems secondo l'ordine di inputData.getBarcodeUl() + final LinkedHashMap giacenzaItems = new LinkedHashMap<>(); + for (String barcode : inputData.getBarcodeUl()) { + if (giacenzaItemsTemp.containsKey(barcode)) { + giacenzaItems.put(barcode, giacenzaItemsTemp.get(barcode)); + } + } + //Controlli base per correttezza dei barcode ricevuti List barcodeNonTrovati = inputData.getBarcodeUl().stream() .filter(barcode -> !giacenzaItems.containsKey(barcode)) diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSMagazzinoBufferService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSMagazzinoBufferService.java index f0c51459d2..11afa0844c 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSMagazzinoBufferService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/generic/service/WMSMagazzinoBufferService.java @@ -14,7 +14,6 @@ import it.integry.ems.rules.businessLogic.dto.LoadColliDTO; import it.integry.ems.service.AziendaService; import it.integry.ems.service.EntityProcessor; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; -import it.integry.ems.utility.UtilityEntity; import it.integry.ems_model.base.EntityBase; import it.integry.ems_model.entity.DtbDoct; import it.integry.ems_model.entity.MtbColr; @@ -105,7 +104,7 @@ public class WMSMagazzinoBufferService { final MtbColt startUds = wmsLavorazioneService.createUDS(new CreateUDSRequestDTO() .setSegno(-1) - .setCodAnag(aziendaService.retrieveInternalCodAnagCliente()) + .setCodAnag(aziendaService.retrieveInternalCodAnagCliente(multiDBTransactionManager.getPrimaryConnection())) .setSerCollo(magazzinoBufferVersamentoMaterialeRequestDTO.getSerCollo()) .setNumCollo(magazzinoBufferVersamentoMaterialeRequestDTO.getNumCollo()) .setOraInizPrep(magazzinoBufferVersamentoMaterialeRequestDTO.getDataInizVersamento()) @@ -212,7 +211,7 @@ public class WMSMagazzinoBufferService { entityProcessor.processEntityList(entityList, multiDBTransactionManager, true); LoadColliDTO loadColliDTO = new LoadColliDTO() - .setCodAnag(UtilityString.isNull(mtbColtToUpdate.getCodAnag(), aziendaService.retrieveInternalCodAnagFornitore())) + .setCodAnag(UtilityString.isNull(mtbColtToUpdate.getCodAnag(), aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection()))) .setCodDtip(setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "W_PORDI_RC", "SETUP_DOCUMENTI", "COD_DTIP_SCAR")) .setCodMdep(mtbColtToUpdate.getCodMdep()) .setSaveDoc(true) @@ -256,7 +255,7 @@ public class WMSMagazzinoBufferService { MtbColt scarico = MagazzinoBufferVersamentoMaterialeEditRequestDTO.getMtbColt(dto); entityProcessor.processEntity(scarico, true, multiDBTransactionManager); if (UtilityString.isNullOrEmpty(scarico.getCodAnag())) { - scarico.setCodAnag(aziendaService.retrieveInternalCodAnagFornitore()); + scarico.setCodAnag(aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection())); } //sgancio il collo dal documenti di scarico (verrà ricreato a fine procedura) DtbDoct docScarico = documentProdService.sganciaDocumentoDaCollo(scarico); diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/service/WMSImballiService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/service/WMSImballiService.java index 27b8485b45..7afc530b70 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/service/WMSImballiService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/imballi/service/WMSImballiService.java @@ -69,7 +69,7 @@ public class WMSImballiService { public void registraScarico(String codVvett, List imballiToRegister) throws Exception { final String codDtip = setupGest.getSetup("PICKING", "IMBALLI", "COD_DTIP_SCARICO"); - String codAnag = aziendaService.retrieveInternalCodAnagCliente(); + String codAnag = aziendaService.retrieveInternalCodAnagCliente(multiDBTransactionManager.getPrimaryConnection()); registraImballi(codAnag, codDtip, codVvett, imballiToRegister); } diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSLavorazioneService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSLavorazioneService.java index 7acdcdb7a7..ab930df849 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSLavorazioneService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSLavorazioneService.java @@ -769,7 +769,7 @@ public class WMSLavorazioneService { boolean useCodAnagAziendale = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "SETUP", "FLAG_USE_COD_ANAG_AZIENDALE"); if (UtilityString.isNullOrEmpty(createUDCRequestDTO.getCodAnag()) && useCodAnagAziendale) { - String defaultCodAnag = aziendaService.retrieveInternalCodAnagFornitore(); + String defaultCodAnag = aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection()); udcMtbColt.setCodAnag(defaultCodAnag); } else udcMtbColt.setCodAnag(createUDCRequestDTO.getCodAnag()); diff --git a/ems-engine/src/main/java/it/integry/ems/system/controller/AziendaController.java b/ems-engine/src/main/java/it/integry/ems/system/controller/AziendaController.java index b1f62f5677..b6665c7595 100644 --- a/ems-engine/src/main/java/it/integry/ems/system/controller/AziendaController.java +++ b/ems-engine/src/main/java/it/integry/ems/system/controller/AziendaController.java @@ -48,12 +48,12 @@ public class AziendaController { @GetMapping("fornitore") public ServiceRestResponse retrieveInternalCodAnagFornitore() throws Exception { - return ServiceRestResponse.createPositiveResponse(aziendaService.retrieveInternalCodAnagFornitore()); + return ServiceRestResponse.createPositiveResponse(aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection())); } @GetMapping("cliente") public ServiceRestResponse retrieveInternalCodAnagCliente() throws Exception { - return ServiceRestResponse.createPositiveResponse(aziendaService.retrieveInternalCodAnagCliente()); + return ServiceRestResponse.createPositiveResponse(aziendaService.retrieveInternalCodAnagCliente(multiDBTransactionManager.getPrimaryConnection())); } @PostMapping("update-pvm-endpoint")