Migliorata gestione status missioni
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ public class PrinterService {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SetupGest setupGest;
|
private SetupGest setupGest;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ReportProcessor reportProcessor;
|
private ReportProcessor reportProcessor;
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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" +
|
||||||
|
|||||||
@@ -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())));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user