Fix su arraylist di mtbColt null nel servizio di spostaArtsTraUl

This commit is contained in:
2025-01-08 10:20:22 +01:00
parent 11674851ad
commit 6bbd896e14
3 changed files with 22 additions and 10 deletions

View File

@@ -549,7 +549,7 @@ public class WMSGenericController {
@RequestMapping(value = EmsRestConstants.PATH_SPOSTA_UL_IN_POSIZIONE_DTO, method = RequestMethod.POST)
public @ResponseBody
ServiceRestResponse spostaULInPosizioneDTO(@RequestParam(CommonConstants.PROFILE_DB) String configuration,
ServiceRestResponse spostaULInPosizione(@RequestParam(CommonConstants.PROFILE_DB) String configuration,
@RequestBody SpostaUlInPosizioneRequestDTO requestDTO) throws Exception {
wmsGenericService.spostaUL(requestDTO);

View File

@@ -2,14 +2,15 @@ package it.integry.ems.retail.wms.generic.dto;
import it.integry.ems_model.entity.MtbColt;
import java.util.ArrayList;
import java.util.List;
public class SpostaUlInPosizioneRequestDTO {
private String codMdep;
private String posizione;
private List<MtbColt> mtbColtsToMove;
private String annotazioni;
private List<MtbColt> mtbColtsToMove = new ArrayList<>();
public String getCodMdep() {
return codMdep;

View File

@@ -1924,26 +1924,38 @@ public class WMSGenericService {
if (UtilityString.isNullOrEmpty(requestDTO.getCodMdep())) {
throw new Exception("Nessun deposito di arrivo selezionato");
}
List<EntityBase> entitiesToSave = new ArrayList<>();
List<MtbColt> mtbCotlList = requestDTO.getMtbColtsToMove();
List<String> codMdeps = mtbCotlList.stream().map(MtbColt::getCodMdep).distinct().collect(Collectors.toList());
if (codMdeps.isEmpty()) {
throw new Exception("Nessun deposito di partenza selezionato!");
}
if (codMdeps.size() > 1) {
throw new Exception("Le UL selezionate provengono da depositi differenti");
}
MtbDepo mtbDepo = new MtbDepo();
mtbDepo.setCodMdep(requestDTO.getCodMdep())
.setOperation(OperationType.SELECT_OBJECT);
entityProcessor.processEntity(mtbDepo, multiDBTransactionManager);
if (!UtilityString.isNullOrEmpty(requestDTO.getPosizione())) {
MtbDepoPosizioni mtbDepoPosizioni = new MtbDepoPosizioni()
.setCodMdep(requestDTO.getCodMdep())
.setPosizione(requestDTO.getPosizione());
mtbDepoPosizioni.setOperation(OperationType.SELECT_OBJECT);
if (codMdeps.size() > 1) {
throw new Exception("Le UL selezionate provengono da depositi differenti! ");
entityProcessor.processEntity(mtbDepoPosizioni, multiDBTransactionManager);
if(mtbDepoPosizioni.getCodMdep() == null || mtbDepoPosizioni.getPosizione() == null) {
throw new Exception("La posizione " + requestDTO.getPosizione() + " non esiste nel deposito " + requestDTO.getCodMdep());
}
}
List<EntityBase> entitiesToSave = new ArrayList<>();
String codMdepPartenza = codMdeps.get(0);
if (!UtilityString.equalsIgnoreCase(codMdepPartenza, requestDTO.getCodMdep())) {
@@ -1953,18 +1965,17 @@ public class WMSGenericService {
if (UtilityString.isNullOrEmpty(codDtipToUse))
throw new Exception("La configurazione della setup gest non è completa per gestire gli spostamenti tra depositi");
DtbDoct dtbDoct = new DtbDoct()
.setCodMdep(codMdepPartenza)
.setCodVdes(mtbDepo.getCodVdes())
.setCodAnag(mtbDepo.getCodAnag())
.setAnnotazioni(requestDTO.getAnnotazioni())
.setCodDtip(codDtipToUse);
dtbDoct.setOperation(OperationType.INSERT);
for (MtbColt mtbColtToMove : mtbCotlList) {
for (MtbColr mtbColr : mtbColtToMove.getMtbColr()) {
DtbDocr dtbDocr = new DtbDocr()
.setCodMart(mtbColr.getCodMart())
.setPartitaMag(mtbColr.getPartitaMag())