Migliorata gestione status missioni
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-11-04 12:33:12 +01:00
parent 68075b89fa
commit 7a9a72f11a
15 changed files with 77 additions and 55 deletions

View File

@@ -1,40 +1,34 @@
package it.integry.ems.service; 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 it.integry.ems_model.utility.UtilityDB;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
@Scope("request")
public class AziendaService { public class AziendaService {
@Autowired public String retrieveInternalCodAnagFornitore(Connection connection) throws Exception {
private MultiDBTransactionManager multiDBTransactionManager;
public String retrieveInternalCodAnagFornitore() throws Exception {
String internalCodAnagsQuery = "SELECT CAST(ga.cod_anag AS VARCHAR(5)) AS cod_anag\n" + String internalCodAnagsQuery = "SELECT CAST(ga.cod_anag AS VARCHAR(5)) AS cod_anag\n" +
"FROM azienda\n" + "FROM azienda\n" +
" INNER JOIN gtb_anag ga ON azienda.part_iva = ga.part_iva\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'"; " 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" + String internalCodAnagsQuery = "SELECT CAST(ga.cod_anag AS VARCHAR(5)) AS cod_anag\n" +
"FROM azienda\n" + "FROM azienda\n" +
" INNER JOIN gtb_anag ga ON azienda.part_iva = ga.part_iva\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'"; " 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" + String internalCodAnagsQuery = "SELECT part_iva\n" +
"FROM azienda"; "FROM azienda";
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), internalCodAnagsQuery); return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, internalCodAnagsQuery);
} }
} }

View File

@@ -43,6 +43,7 @@ public class PrinterService {
@Autowired @Autowired
private SetupGest setupGest; private SetupGest setupGest;
@Autowired @Autowired
private ReportProcessor reportProcessor; private ReportProcessor reportProcessor;

View File

@@ -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.dto.LogErrorMissioneMagazzinoAutomaticoRequestDTO;
import it.integry.ems.logistic.missioni.magazzino_automatico.service.MissioniMagazzinoAutomaticoService; import it.integry.ems.logistic.missioni.magazzino_automatico.service.MissioniMagazzinoAutomaticoService;
import it.integry.ems.response.ServiceRestResponse; 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.retail.wms.generic.service.WMSGiacenzaULService;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.UserSession; import it.integry.ems.user.UserSession;
@@ -28,13 +29,15 @@ public class MissioniMagazzinoAutomaticoController {
private final RequestDataDTO requestDataDTO; private final RequestDataDTO requestDataDTO;
private final UserSession userSession; private final UserSession userSession;
private final WMSGiacenzaULService wmsGiacenzaULService; 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.missioniMagazzinoAutomaticoService = missioniMagazzinoAutomaticoService;
this.multiDBTransactionManager = multiDBTransactionManager; this.multiDBTransactionManager = multiDBTransactionManager;
this.requestDataDTO = requestDataDTO; this.requestDataDTO = requestDataDTO;
this.userSession = userSession; this.userSession = userSession;
this.wmsGiacenzaULService = wmsGiacenzaULService; this.wmsGiacenzaULService = wmsGiacenzaULService;
this.wmsGenericService = wmsGenericService;
} }
@@ -85,14 +88,17 @@ public class MissioniMagazzinoAutomaticoController {
ServiceRestResponse setAsStarted(@RequestParam(CommonConstants.PROFILE_DB) String profileDB, ServiceRestResponse setAsStarted(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
@RequestParam long missionId, @RequestParam long missionId,
@RequestParam long missionRowId, @RequestParam long missionRowId,
@RequestParam String action) throws Exception { @RequestParam String action,
@RequestParam(required = false) String posizioneIn) throws Exception {
userSession.checkUser(); userSession.checkUser();
try { try {
missioniMagazzinoAutomaticoService.updateMissionStatus(multiDBTransactionManager, missioniMagazzinoAutomaticoService.updateMissionStatus(multiDBTransactionManager,
wmsGenericService,
missionId, missionId,
missionRowId, missionRowId,
action); action,
posizioneIn);
} catch (Exception ex) { } catch (Exception ex) {
multiDBTransactionManager.rollbackAll(); multiDBTransactionManager.rollbackAll();

View File

@@ -47,7 +47,7 @@ public class EuroforkDataSyncronizerService {
String sqlRetrieveEuroforkStatus = "SELECT LU.[Number] AS SSCC,\n" + String sqlRetrieveEuroforkStatus = "SELECT LU.[Number] AS SSCC,\n" +
" ISNULL(\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" + " CONCAT('WH1',\n" +
" FORMAT(Cells.[Level], '00'),\n" + " FORMAT(Cells.[Level], '00'),\n" +
" Cells.[ColumnSide],\n" + " Cells.[ColumnSide],\n" +

View File

@@ -3,13 +3,14 @@ package it.integry.ems.logistic.missioni.magazzino_automatico.service;
import it.integry.ems.exception.PrimaryDatabaseNotPresentException; import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
import it.integry.ems.logistic.missioni.magazzino_automatico.dto.MissioneMagazzinoAutomaticoDTO; import it.integry.ems.logistic.missioni.magazzino_automatico.dto.MissioneMagazzinoAutomaticoDTO;
import it.integry.ems.logistic.missioni.magazzino_automatico.utils.MissioniMagazzinoAutomaticoUtils; 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.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.Connection; import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems_model.config.EmsRestConstants; import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.entity.MtbMissioneMagAuto; import it.integry.ems_model.entity.*;
import it.integry.ems_model.entity.MtbMissioneMagAutoDet;
import it.integry.ems_model.entity.StbUser;
import it.integry.ems_model.exception.DataConverterNotFoundException; import it.integry.ems_model.exception.DataConverterNotFoundException;
import it.integry.ems_model.types.OperationType; import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.UtilityDB; import it.integry.ems_model.utility.UtilityDB;
@@ -22,6 +23,7 @@ import org.springframework.stereotype.Service;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.sql.SQLException; import java.sql.SQLException;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@@ -182,7 +184,7 @@ public class MissioniMagazzinoAutomaticoService {
return mtbMissioneMagAuto.getId(); 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)) if (UtilityString.isNullOrEmpty(action))
throw new IllegalArgumentException("Il parametro action non può essere vuoto"); throw new IllegalArgumentException("Il parametro action non può essere vuoto");
@@ -202,6 +204,7 @@ public class MissioniMagazzinoAutomaticoService {
case "started": case "started":
missioneRow.setStartedAt(LocalDateTime.now()); missioneRow.setStartedAt(LocalDateTime.now());
missioneRow.setCompleted(false); missioneRow.setCompleted(false);
missioneRow.setPosizioneIn(posizioneIn);
missioneRow.setEndedAt(EmsRestConstants.LOCAL_DATE_TIME_NULL); missioneRow.setEndedAt(EmsRestConstants.LOCAL_DATE_TIME_NULL);
break; break;
@@ -220,23 +223,35 @@ public class MissioniMagazzinoAutomaticoService {
switch (action) { switch (action) {
case "started": case "started":
onMissionStarted(missioneRow); onMissionStarted(multiDBTransactionManager, wmsGenericService, missioneRow);
break; break;
case "completed": case "completed":
onMissionCompleted(missioneRow); onMissionCompleted(multiDBTransactionManager, wmsGenericService, missioneRow);
break; 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 // 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())));
} }

View File

@@ -103,7 +103,7 @@ public class ProductionOrdersLifecycleService {
dto.setRapConvProd(dtbOrdt.getRapConvProd()); dto.setRapConvProd(dtbOrdt.getRapConvProd());
dto.setUntMisProd(dtbOrdt.getUntMisProd()); dto.setUntMisProd(dtbOrdt.getUntMisProd());
dto.setRifOrd(dtbOrdt.getRifOrd()); 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())); String partIvaOrder = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), Query.format("SELECT part_iva from gtb_anag where cod_anag = {}", dtbOrdt.getCodAnag()));
boolean isOrdineInterno = partIvaAzienda.equalsIgnoreCase(partIvaOrder); boolean isOrdineInterno = partIvaAzienda.equalsIgnoreCase(partIvaOrder);

View File

@@ -153,7 +153,7 @@ public class WMSAccettazioneService {
boolean useCodAnagAziendale = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "SETUP", "FLAG_USE_COD_ANAG_AZIENDALE"); boolean useCodAnagAziendale = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "SETUP", "FLAG_USE_COD_ANAG_AZIENDALE");
if (UtilityString.isNullOrEmpty(createUDCRequestDTO.getCodAnag()) && useCodAnagAziendale) { if (UtilityString.isNullOrEmpty(createUDCRequestDTO.getCodAnag()) && useCodAnagAziendale) {
String defaultCodAnag = aziendaService.retrieveInternalCodAnagFornitore(); String defaultCodAnag = aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection());
udcMtbColt.setCodAnag(defaultCodAnag); udcMtbColt.setCodAnag(defaultCodAnag);
} else } else
udcMtbColt.setCodAnag(createUDCRequestDTO.getCodAnag()); udcMtbColt.setCodAnag(createUDCRequestDTO.getCodAnag());

View File

@@ -112,6 +112,6 @@ public class WMSGiacenzaController {
.setCodJcom(codJcom)); .setCodJcom(codJcom));
return ServiceRestResponse.createPositiveResponse( return ServiceRestResponse.createPositiveResponse(
wmsGiacenzaService.retrieveInstantItemSituation(retrieveInstantItemSituationRequestDTOList)); wmsGiacenzaService.retrieveInstantItemSituation(multiDBTransactionManager.getPrimaryConnection(), retrieveInstantItemSituationRequestDTOList));
} }
} }

View File

@@ -747,7 +747,10 @@ public class WMSGenericService {
.collect(Collectors.toList()); .collect(Collectors.toList());
if (gestioneOrd.equalsIgnoreCase("V")) { if (gestioneOrd.equalsIgnoreCase("V")) {
final List<InstantItemSituationIncomingItemDTO> instantItemSituationIncomingItemDTOS = wmsGiacenzaService.retrieveIncomingItems(incomingItemsRequest); final List<InstantItemSituationIncomingItemDTO> instantItemSituationIncomingItemDTOS =
wmsGiacenzaService.retrieveIncomingItems(
multiDBTransactionManager.getPrimaryConnection(),
incomingItemsRequest);
for (SitArtOrdDTO sitArtOrd : sitArtOrdDTOS) { for (SitArtOrdDTO sitArtOrd : sitArtOrdDTOS) {
sitArtOrd.setQtaArrivo(BigDecimal.ZERO); sitArtOrd.setQtaArrivo(BigDecimal.ZERO);
@@ -1283,7 +1286,7 @@ public class WMSGenericService {
DtbDoct dtbDoctInv = null; DtbDoct dtbDoctInv = null;
if (shouldCreateMovimentoFiscale && createNewCollo) { if (shouldCreateMovimentoFiscale && createNewCollo) {
String codDtipToUse = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "RETTIFICA_GIACENZE", "TIPO_MOVIMENTO_FISCALE"); String codDtipToUse = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "RETTIFICA_GIACENZE", "TIPO_MOVIMENTO_FISCALE");
if (UtilityString.isNullOrEmpty(codDtipToUse)) if (UtilityString.isNullOrEmpty(codDtipToUse))
@@ -1299,7 +1302,7 @@ public class WMSGenericService {
dtbDoctInv = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sqlCheckDocExists, DtbDoct.class); dtbDoctInv = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sqlCheckDocExists, DtbDoct.class);
if (dtbDoctInv == null) { if (dtbDoctInv == null) {
String codAnagAziendale = aziendaService.retrieveInternalCodAnagFornitore(); String codAnagAziendale = aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection());
dtbDoctInv = new DtbDoct(codAnagAziendale, codDtipToUse, LocalDate.now(), null, null) dtbDoctInv = new DtbDoct(codAnagAziendale, codDtipToUse, LocalDate.now(), null, null)
.setCodMdep(codMdep); .setCodMdep(codMdep);
dtbDoctInv.setOperation(OperationType.INSERT); dtbDoctInv.setOperation(OperationType.INSERT);
@@ -1461,7 +1464,7 @@ public class WMSGenericService {
.setPosizioneOut(null) .setPosizioneOut(null)
.setOperation(OperationType.INSERT); .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()) mtbColrToSave.setDataOrd(anagUl.getDataOrd())
.setNumOrd(anagUl.getNumOrd()); .setNumOrd(anagUl.getNumOrd());
} }
@@ -2086,7 +2089,7 @@ public class WMSGenericService {
if (!shouldGenerateDoc) { if (!shouldGenerateDoc) {
codMdepDoc = codMdepPartenza; codMdepDoc = codMdepPartenza;
codAnag = aziendaService.retrieveInternalCodAnagFornitore(); codAnag = aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection());
codVdes = null; codVdes = null;
} else { } else {
String codDtipToUse = setupGest.getSetupDepo(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "LOGISTICA", "COD_DTIP_DOC_TRASF_INTERNI", codMdepArrivo); String codDtipToUse = setupGest.getSetupDepo(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "LOGISTICA", "COD_DTIP_DOC_TRASF_INTERNI", codMdepArrivo);

View File

@@ -1,14 +1,13 @@
package it.integry.ems.retail.wms.generic.service; package it.integry.ems.retail.wms.generic.service;
import it.integry.ems.retail.wms.generic.dto.*; 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.service.SetupGest;
import it.integry.ems_model.utility.Query; import it.integry.ems_model.utility.Query;
import it.integry.ems_model.utility.UtilityDB; import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityQuery; import it.integry.ems_model.utility.UtilityQuery;
import it.integry.ems_model.utility.UtilityString; import it.integry.ems_model.utility.UtilityString;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap; import java.util.HashMap;
@@ -16,12 +15,8 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@Scope("request")
public class WMSGiacenzaService { public class WMSGiacenzaService {
@Autowired
private MultiDBTransactionManager multiDBTransactionManager;
@Autowired @Autowired
private WMSGiacenzaULService wmsGiacenzaULService; private WMSGiacenzaULService wmsGiacenzaULService;
@@ -29,8 +24,8 @@ public class WMSGiacenzaService {
private SetupGest setupGest; private SetupGest setupGest;
public InstantItemSituationResponseDTO retrieveInstantItemSituation(List<RetrieveInstantItemSituationRequestDTO> instantItemSituationRequestList) throws Exception { public InstantItemSituationResponseDTO retrieveInstantItemSituation(Connection connection, List<RetrieveInstantItemSituationRequestDTO> instantItemSituationRequestList) throws Exception {
final List<InstantItemSituationIncomingItemDTO> incomingItems = retrieveIncomingItems(instantItemSituationRequestList); final List<InstantItemSituationIncomingItemDTO> incomingItems = retrieveIncomingItems(connection, instantItemSituationRequestList);
final List<RetrieveArtsInGiacenzaByArtRequestDTO> retrieveArtsInGiacenzaByArtRequestDTOList = instantItemSituationRequestList.stream() final List<RetrieveArtsInGiacenzaByArtRequestDTO> retrieveArtsInGiacenzaByArtRequestDTOList = instantItemSituationRequestList.stream()
.map(x -> new RetrieveArtsInGiacenzaByArtRequestDTO() .map(x -> new RetrieveArtsInGiacenzaByArtRequestDTO()
@@ -39,7 +34,7 @@ public class WMSGiacenzaService {
.setCodMdep(x.getCodMdep())) .setCodMdep(x.getCodMdep()))
.collect(Collectors.toList()); .collect(Collectors.toList());
final List<MvwSitArtUdcDetInventarioDTO> availableItems = wmsGiacenzaULService.retrieveArtsInGiacenzaByArticolo(multiDBTransactionManager.getPrimaryConnection(), final List<MvwSitArtUdcDetInventarioDTO> availableItems = wmsGiacenzaULService.retrieveArtsInGiacenzaByArticolo(connection,
retrieveArtsInGiacenzaByArtRequestDTOList, false); retrieveArtsInGiacenzaByArtRequestDTOList, false);
@@ -49,7 +44,7 @@ public class WMSGiacenzaService {
} }
public List<InstantItemSituationIncomingItemDTO> retrieveIncomingItems(List<RetrieveInstantItemSituationRequestDTO> instantItemSituationRequestList) throws Exception { public List<InstantItemSituationIncomingItemDTO> retrieveIncomingItems(Connection connection, List<RetrieveInstantItemSituationRequestDTO> instantItemSituationRequestList) throws Exception {
final String commessaMagazzino = setupGest.getSetup("PICKING", "SETUP", "COMMESSA_MAGAZZINO"); final String commessaMagazzino = setupGest.getSetup("PICKING", "SETUP", "COMMESSA_MAGAZZINO");
List<HashMap<String, Object>> whereCondMaps = instantItemSituationRequestList.stream() List<HashMap<String, Object>> 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" + " 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"); "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);
} }
} }

View File

@@ -31,6 +31,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -171,12 +172,20 @@ public class WMSMagazzinoAutomaticoService {
if (!existingMissions.isEmpty()) if (!existingMissions.isEmpty())
throw new IllegalArgumentException("Esistono missioni in corso per le unità logistiche: " + String.join(", ", existingMissions.keySet())); throw new IllegalArgumentException("Esistono missioni in corso per le unità logistiche: " + String.join(", ", existingMissions.keySet()));
final HashMap<String, String> giacenzaItems = final HashMap<String, String> giacenzaItemsTemp =
wmsGiacenzaULService.retrieveBarcodeUlsCurrentPosition(multiDBTransactionManager.getPrimaryConnection(), inputData.getBarcodeUl()); 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()); throw new IllegalArgumentException("Unità logistica non trovata: " + inputData.getBarcodeUl());
// Riordina giacenzaItems secondo l'ordine di inputData.getBarcodeUl()
final LinkedHashMap<String, String> 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 //Controlli base per correttezza dei barcode ricevuti
List<String> barcodeNonTrovati = inputData.getBarcodeUl().stream() List<String> barcodeNonTrovati = inputData.getBarcodeUl().stream()
.filter(barcode -> !giacenzaItems.containsKey(barcode)) .filter(barcode -> !giacenzaItems.containsKey(barcode))

View File

@@ -14,7 +14,6 @@ import it.integry.ems.rules.businessLogic.dto.LoadColliDTO;
import it.integry.ems.service.AziendaService; import it.integry.ems.service.AziendaService;
import it.integry.ems.service.EntityProcessor; import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; 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.base.EntityBase;
import it.integry.ems_model.entity.DtbDoct; import it.integry.ems_model.entity.DtbDoct;
import it.integry.ems_model.entity.MtbColr; import it.integry.ems_model.entity.MtbColr;
@@ -105,7 +104,7 @@ public class WMSMagazzinoBufferService {
final MtbColt startUds = wmsLavorazioneService.createUDS(new CreateUDSRequestDTO() final MtbColt startUds = wmsLavorazioneService.createUDS(new CreateUDSRequestDTO()
.setSegno(-1) .setSegno(-1)
.setCodAnag(aziendaService.retrieveInternalCodAnagCliente()) .setCodAnag(aziendaService.retrieveInternalCodAnagCliente(multiDBTransactionManager.getPrimaryConnection()))
.setSerCollo(magazzinoBufferVersamentoMaterialeRequestDTO.getSerCollo()) .setSerCollo(magazzinoBufferVersamentoMaterialeRequestDTO.getSerCollo())
.setNumCollo(magazzinoBufferVersamentoMaterialeRequestDTO.getNumCollo()) .setNumCollo(magazzinoBufferVersamentoMaterialeRequestDTO.getNumCollo())
.setOraInizPrep(magazzinoBufferVersamentoMaterialeRequestDTO.getDataInizVersamento()) .setOraInizPrep(magazzinoBufferVersamentoMaterialeRequestDTO.getDataInizVersamento())
@@ -212,7 +211,7 @@ public class WMSMagazzinoBufferService {
entityProcessor.processEntityList(entityList, multiDBTransactionManager, true); entityProcessor.processEntityList(entityList, multiDBTransactionManager, true);
LoadColliDTO loadColliDTO = new LoadColliDTO() 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")) .setCodDtip(setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "W_PORDI_RC", "SETUP_DOCUMENTI", "COD_DTIP_SCAR"))
.setCodMdep(mtbColtToUpdate.getCodMdep()) .setCodMdep(mtbColtToUpdate.getCodMdep())
.setSaveDoc(true) .setSaveDoc(true)
@@ -256,7 +255,7 @@ public class WMSMagazzinoBufferService {
MtbColt scarico = MagazzinoBufferVersamentoMaterialeEditRequestDTO.getMtbColt(dto); MtbColt scarico = MagazzinoBufferVersamentoMaterialeEditRequestDTO.getMtbColt(dto);
entityProcessor.processEntity(scarico, true, multiDBTransactionManager); entityProcessor.processEntity(scarico, true, multiDBTransactionManager);
if (UtilityString.isNullOrEmpty(scarico.getCodAnag())) { 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) //sgancio il collo dal documenti di scarico (verrà ricreato a fine procedura)
DtbDoct docScarico = documentProdService.sganciaDocumentoDaCollo(scarico); DtbDoct docScarico = documentProdService.sganciaDocumentoDaCollo(scarico);

View File

@@ -69,7 +69,7 @@ public class WMSImballiService {
public void registraScarico(String codVvett, List<ImballoQuantityDTO> imballiToRegister) throws Exception { public void registraScarico(String codVvett, List<ImballoQuantityDTO> imballiToRegister) throws Exception {
final String codDtip = setupGest.getSetup("PICKING", "IMBALLI", "COD_DTIP_SCARICO"); 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); registraImballi(codAnag, codDtip, codVvett, imballiToRegister);
} }

View File

@@ -769,7 +769,7 @@ public class WMSLavorazioneService {
boolean useCodAnagAziendale = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "SETUP", "FLAG_USE_COD_ANAG_AZIENDALE"); boolean useCodAnagAziendale = setupGest.getSetupBoolean(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "SETUP", "FLAG_USE_COD_ANAG_AZIENDALE");
if (UtilityString.isNullOrEmpty(createUDCRequestDTO.getCodAnag()) && useCodAnagAziendale) { if (UtilityString.isNullOrEmpty(createUDCRequestDTO.getCodAnag()) && useCodAnagAziendale) {
String defaultCodAnag = aziendaService.retrieveInternalCodAnagFornitore(); String defaultCodAnag = aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection());
udcMtbColt.setCodAnag(defaultCodAnag); udcMtbColt.setCodAnag(defaultCodAnag);
} else } else
udcMtbColt.setCodAnag(createUDCRequestDTO.getCodAnag()); udcMtbColt.setCodAnag(createUDCRequestDTO.getCodAnag());

View File

@@ -48,12 +48,12 @@ public class AziendaController {
@GetMapping("fornitore") @GetMapping("fornitore")
public ServiceRestResponse retrieveInternalCodAnagFornitore() throws Exception { public ServiceRestResponse retrieveInternalCodAnagFornitore() throws Exception {
return ServiceRestResponse.createPositiveResponse(aziendaService.retrieveInternalCodAnagFornitore()); return ServiceRestResponse.createPositiveResponse(aziendaService.retrieveInternalCodAnagFornitore(multiDBTransactionManager.getPrimaryConnection()));
} }
@GetMapping("cliente") @GetMapping("cliente")
public ServiceRestResponse retrieveInternalCodAnagCliente() throws Exception { public ServiceRestResponse retrieveInternalCodAnagCliente() throws Exception {
return ServiceRestResponse.createPositiveResponse(aziendaService.retrieveInternalCodAnagCliente()); return ServiceRestResponse.createPositiveResponse(aziendaService.retrieveInternalCodAnagCliente(multiDBTransactionManager.getPrimaryConnection()));
} }
@PostMapping("update-pvm-endpoint") @PostMapping("update-pvm-endpoint")