[ROSSOGARGANO]
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

Servizio di trasferimento UL
This commit is contained in:
2024-12-19 18:13:49 +01:00
parent 5e9c853880
commit cc4a8cf979
5 changed files with 122 additions and 16 deletions

View File

@@ -0,0 +1,25 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomer;
import it.integry.ems.migration._base.IntegryCustomerDB;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20241219162201 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (isCustomer(IntegryCustomer.RossoGargano) && isCustomerDb(IntegryCustomerDB.RossoGargano_RossoGargano))
executeInsertStatement("INSERT INTO stb_gest_setup_depo (cod_mdep, gest_name, section, key_section, value)\n" +
"SELECT cod_mdep, N'PICKING', N'LOGISTICA', N'COD_DTIP_DOC_TRASF_INTERNI', IIF(cod_mdep = '01', N'R4', N'R3')\n" +
"FROM mtb_depo\n" +
"WHERE cod_anag = 'F0002';");
}
@Override
public void down() throws Exception {
}
}

View File

@@ -199,6 +199,7 @@ public class EmsRestConstants {
public static final String PATH_SPOSTA_ART_IN_POSIZIONE = PATH + "wms/spostaArtInPosizione";
public static final String PATH_WMS_PRINT_CLOSED_ORDERS = PATH + "wms/printClosedOrders";
public static final String PATH_SPOSTA_UL_IN_POSIZIONE = PATH + "wms/spostaULInPosizione";
public static final String PATH_SPOSTA_UL_IN_POSIZIONE_DTO = PATH + "wms/spostaUL";
public static final String PATH_SPOSTA_ARTS_TRA_UL = PATH + "wms/spostaArtsTraUL";
public static final String PATH_PRINT_ETICHETTA_SSCC = PATH + "wms/printEtichettaSSCC";
public static final String PATH_VERSAMENTO_AUTOMATICO_UL = PATH + "wms/versamentoAutomaticoUL";

View File

@@ -546,6 +546,19 @@ public class WMSGenericController {
}
@RequestMapping(value = EmsRestConstants.PATH_SPOSTA_UL_IN_POSIZIONE_DTO, method = RequestMethod.POST)
public @ResponseBody
ServiceRestResponse spostaULInPosizioneDTO(@RequestParam(CommonConstants.PROFILE_DB) String configuration,
@RequestBody SpostaUlInPosizioneRequestDTO requestDTO) throws Exception {
wmsGenericService.spostaUL(requestDTO);
return ServiceRestResponse.createPositiveResponse();
}
@RequestMapping(value = EmsRestConstants.PATH_SPOSTA_ARTS_TRA_UL, method = RequestMethod.POST)
public @ResponseBody
ServiceRestResponse spostaArtsTraUL(@RequestParam(CommonConstants.PROFILE_DB) String configuration,

View File

@@ -0,0 +1,47 @@
package it.integry.ems.retail.wms.generic.dto;
import it.integry.ems_model.entity.MtbColt;
public class SpostaUlInPosizioneRequestDTO {
private String codMdep;
private String posizione;
private MtbColt mtbColtToMove;
private String annotazioni;
public String getCodMdep() {
return codMdep;
}
public SpostaUlInPosizioneRequestDTO setCodMdep(String codMdep) {
this.codMdep = codMdep;
return this;
}
public String getPosizione() {
return posizione;
}
public SpostaUlInPosizioneRequestDTO setPosizione(String posizione) {
this.posizione = posizione;
return this;
}
public MtbColt getMtbColtToMove() {
return mtbColtToMove;
}
public SpostaUlInPosizioneRequestDTO setMtbColtToMove(MtbColt mtbColtToMove) {
this.mtbColtToMove = mtbColtToMove;
return this;
}
public String getAnnotazioni() {
return annotazioni;
}
public SpostaUlInPosizioneRequestDTO setAnnotazioni(String annotazioni) {
this.annotazioni = annotazioni;
return this;
}
}

View File

@@ -31,6 +31,7 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.UserSession;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.db.ResultSetMapper;
import it.integry.ems_model.entity.*;
import it.integry.ems_model.service.SetupGest;
@@ -1918,33 +1919,34 @@ public class WMSGenericService {
UtilityEntity.throwEntitiesException(entitiesToSave);
}
public void spostaULInPosizione(MtbColt mtbColtToMove, MtbDepoPosizioni mtbDepoPosizioni) throws Exception {
public void spostaUL(SpostaUlInPosizioneRequestDTO requestDTO) throws Exception {
if (mtbDepoPosizioni == null) {
throw new Exception("Nessuna posizione selezionata");
} else {
mtbDepoPosizioni.setOperation(OperationType.SELECT_OBJECT);
entityProcessor.processEntity(mtbDepoPosizioni, multiDBTransactionManager);
if (UtilityString.isNullOrEmpty(requestDTO.getCodMdep())) {
throw new Exception("Nessun deposito selezionato");
}
List<EntityBase> entitiesToSave = new ArrayList<>();
if (!UtilityString.equalsIgnoreCase(mtbColtToMove.getCodMdep(), mtbDepoPosizioni.getCodMdep())) {
MtbColt mtbColtToMove = requestDTO.getMtbColtToMove();
String codDtipToUse = setupGest.getSetupDepo(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "LOGISTICA", "COD_DTIP_DOC_TRASF_INTERNI", mtbDepoPosizioni.getCodMdep());
MtbDepo mtbDepo = new MtbDepo();
mtbDepo.setCodMdep(requestDTO.getCodMdep())
.setOperation(OperationType.SELECT_OBJECT);
entityProcessor.processEntity(mtbDepo, multiDBTransactionManager);
if (!UtilityString.equalsIgnoreCase(mtbColtToMove.getCodMdep(), requestDTO.getCodMdep())) {
String codDtipToUse = setupGest.getSetupDepo(multiDBTransactionManager.getPrimaryConnection(), "PICKING", "LOGISTICA", "COD_DTIP_DOC_TRASF_INTERNI", requestDTO.getCodMdep());
if (UtilityString.isNullOrEmpty(codDtipToUse))
throw new Exception("La configurazione della setup gest non è completa per gestire gli spostamenti tra depositi");
MtbDepo mtbDepo = new MtbDepo()
.setCodMdep(mtbDepoPosizioni.getCodMdep());
mtbDepo.setOperation(OperationType.SELECT_OBJECT);
entityProcessor.processEntity(mtbDepo, multiDBTransactionManager);
DtbDoct dtbDoct = new DtbDoct()
.setCodMdep(mtbColtToMove.getCodMdep())
.setCodVdes(mtbDepo.getCodVdes())
.setCodAnag(mtbDepo.getCodAnag())
.setAnnotazioni(requestDTO.getAnnotazioni())
.setCodDtip(codDtipToUse);
dtbDoct.setOperation(OperationType.INSERT);
@@ -1967,14 +1969,32 @@ public class WMSGenericService {
mtbColtToMove.setOperation(OperationType.UPDATE);
mtbColtToMove
.setMtbColr(new ArrayList<>())
.setPosizione(mtbDepoPosizioni.getPosizione())
.setCodMdep(mtbDepoPosizioni.getCodMdep());
.setPosizione(UtilityString.isNull(requestDTO.getPosizione(), EmsRestConstants.NULL))
.setCodMdep(requestDTO.getCodMdep());
entitiesToSave.add(mtbColtToMove);
entityProcessor.processEntityList(entitiesToSave, true);
UtilityEntity.throwEntitiesException(entitiesToSave);
}
public void spostaULInPosizione(MtbColt mtbColtToMove, MtbDepoPosizioni mtbDepoPosizioni) throws Exception {
if (mtbDepoPosizioni == null) {
throw new Exception("Nessuna posizione selezionata");
} else {
mtbDepoPosizioni.setOperation(OperationType.SELECT_OBJECT);
entityProcessor.processEntity(mtbDepoPosizioni, multiDBTransactionManager);
}
SpostaUlInPosizioneRequestDTO requestDTO = new SpostaUlInPosizioneRequestDTO();
requestDTO.setMtbColtToMove(mtbColtToMove)
.setPosizione(mtbDepoPosizioni.getPosizione())
.setCodMdep(mtbDepoPosizioni.getCodMdep());
spostaUL(requestDTO);
}
public SpostaArtsTraULResponseDTO spostaArtsTraUL(MtbColt sourceMtbColt, MtbColt destinationMtbColt, boolean flagForceUseRefs) throws Exception {