Cambiato SpostaUlRequestDTO, ora accetta una lista di barcode ul.

Creati servizi per trasferimento pedane.
This commit is contained in:
2025-07-02 17:16:31 +02:00
parent c38608d92b
commit cecf45cc8f
12 changed files with 229 additions and 86 deletions

View File

@@ -181,6 +181,7 @@ public class EmsRestConstants {
public static final String PATH_SAVE_PROPOSTA_ORDINE = PATH + "savePropostaOrdine";
public static final String PATH_GET_COSTO_PRODOTTO = PATH + "getCostoProdotto";
public static final String PATH_GET_COSTO_PRODOTTO_CC = PATH + "getCostoProdottoCC";
public static final String PATH_GET_COLLI_BY_BARCODES = PATH + "getColliByBarcodes";
public static final String PATH_GET_COLLO_BY_BARCODE = PATH + "getColloByBarcode";
public static final String PATH_GET_COLLO_IN_GIAC = PATH + "getColloInGiac";
public static final String PATH_GET_COLLI_IN_BASKET = PATH + "getColliInBasket";

File diff suppressed because one or more lines are too long

View File

@@ -174,7 +174,10 @@ public class DocumentiDirettiService {
.setCodMdep(dtbDoct.getCodMdep())
.setCreateDocAutomatically(true)
.setAnnotazioni(String.format("Trasferimento per ordine di vendita n.%d del %s", dtbDoct.getNumOrd(), UtilityDate.formatDate(dtbDoct.getDataOrd(), CommonConstants.DATE_FORMAT_DMY)))
.setMtbColtsToMove(ulsToTransfer.stream().filter(u -> u.getCodMdep().equals(codMdep)).collect(Collectors.toList()));
.setBarcodeUlList(ulsToTransfer.stream()
.filter(u -> u.getCodMdep().equals(codMdep))
.map(MtbColt::getBarcodeUl)
.collect(Collectors.toList()));
wmsGenericService.spostaUL(transferRequest);
}
@@ -313,7 +316,7 @@ public class DocumentiDirettiService {
if ((fatturaPedaneCliente || fatturaVettore) &&
dtbDoct.getDtbDocImb().stream().
filter(x -> x.getOperation() != OperationType.DELETE )
filter(x -> x.getOperation() != OperationType.DELETE)
.anyMatch(x -> x.getTipoReso() != 2 && !x.getNumImbCons().equals(x.getNumImbResi()))
) {
final String gestName = "DTB_DOCT";
@@ -559,17 +562,10 @@ public class DocumentiDirettiService {
}
if (isTrasferimento) {
List<MtbColt> mtbColsToMode = new ArrayList<>();
List<String> barcodeUlListToMove = new ArrayList<>();
for (ULRowDTO ulRowDTO : createULFromDocument.getUlRows()) {
MvwSitArtUdcDetInventarioDTO datiCollo = getDatiCollo(ulRowDTO.getBarcodeUl(), ulRowDTO.getCodMart(), ulRowDTO.getPartitaMag());
MtbColt mtbColt =
new MtbColt()
.setGestione(datiCollo.getGestione())
.setDataCollo(datiCollo.getDataCollo())
.setSerCollo(datiCollo.getSerCollo())
.setNumCollo(datiCollo.getNumCollo())
.setBarcodeUl(ulRowDTO.getBarcodeUl());
mtbColsToMode.add(mtbColt);
barcodeUlListToMove.add(ulRowDTO.getBarcodeUl());
}
if (createULFromDocument.getSegnoDoc() > 0) {
codMdepTrasf = createULFromDocument.getCodMdep();
@@ -577,7 +573,7 @@ public class DocumentiDirettiService {
SpostaUlRequestDTO requestDTO = new SpostaUlRequestDTO()
.setCodMdep(codMdepTrasf)
.setCreateDocAutomatically(false)
.setMtbColtsToMove(mtbColsToMode);
.setBarcodeUlList(barcodeUlListToMove);
MtbColt mtbColt = wmsGenericService.spostaUL(requestDTO);
List<MtbColt> colliRet = new ArrayList<>();
colliRet.add(mtbColt);
@@ -679,7 +675,7 @@ public class DocumentiDirettiService {
Map<String, List<ULRowDTO>> ulGroup = createUDSFromDocuments.getUlRows().stream().collect(groupingBy(ULRowDTO::getCodMdep));
for(Map.Entry<String, List<ULRowDTO>> entry : ulGroup.entrySet()) {
for (Map.Entry<String, List<ULRowDTO>> entry : ulGroup.entrySet()) {
String codMdep = entry.getKey();
for (ULRowDTO ulRowDTO : entry.getValue()) {
if (!createUDSFromDocuments.isMonoUl() || uds == null) {

View File

@@ -1575,7 +1575,7 @@ public class MesProductionServiceV2 {
.setCreateDocAutomatically(true)
.setGroupDailyTransfers(true)
.setGroupingPolicy(SpostaUlRequestDTO.TransferGroupPolicy.BY_USER)
.setMtbColtsToMove(Collections.singletonList(dto.getMtbColt()));
.setBarcodeUlList(Collections.singletonList(dto.getMtbColt().getBarcodeUl()));
wmsGenericService.spostaUL(trasferimentoRequest);
}
//</editor-fold>

View File

@@ -38,8 +38,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -527,7 +525,21 @@ public class PvmController {
return ServiceRestResponse.createPositiveResponse(pvmService.getCostoProdottoDatiCommerciali(codProd, dataValidita.toInstant(), codVlis));
}
@RequestMapping(value = EmsRestConstants.PATH_GET_COLLO_BY_BARCODE, method = RequestMethod.POST)
@PostMapping(value = EmsRestConstants.PATH_GET_COLLI_BY_BARCODES)
public @ResponseBody
ServiceRestResponse getColliByBarcodes(
@RequestBody GetColliByBarcodesRequestDTO requestData,
@RequestParam(required = false, defaultValue = "true") boolean throwExcIfNull) throws Exception {
List<MtbColt> foundColli = pvmService.getColliByBarcodes(requestData.getBarcodes(), requestData.isOnlyResiduo());
if ((foundColli == null || foundColli.isEmpty()) && throwExcIfNull)
throw new Exception("Nessun bancale trovato");
return ServiceRestResponse.createPositiveResponse(foundColli);
}
@PostMapping(value = EmsRestConstants.PATH_GET_COLLO_BY_BARCODE)
public @ResponseBody
ServiceRestResponse getColloByBarcode(
HttpServletRequest request,

View File

@@ -0,0 +1,28 @@
package it.integry.ems.retail.pvmRetail.dto;
import java.util.List;
public class GetColliByBarcodesRequestDTO {
private List<String> barcodes;
private boolean onlyResiduo;
public List<String> getBarcodes() {
return barcodes;
}
public GetColliByBarcodesRequestDTO setBarcodes(List<String> barcodes) {
this.barcodes = barcodes;
return this;
}
public boolean isOnlyResiduo() {
return onlyResiduo;
}
public GetColliByBarcodesRequestDTO setOnlyResiduo(boolean onlyResiduo) {
this.onlyResiduo = onlyResiduo;
return this;
}
}

View File

@@ -1512,6 +1512,22 @@ public class PvmService {
}
}
public List<MtbColt> getColliByBarcodes(List<String> barcodes, boolean onlyResiduo) throws Exception {
if (barcodes == null || barcodes.isEmpty()) return Collections.emptyList();
List<MtbColt> colli = new ArrayList<>();
for (String barcode : barcodes) {
MtbColt mtbColt = getColloByBarcode(barcode, onlyResiduo);
if (mtbColt != null) {
colli.add(mtbColt);
}
}
return colli;
}
//TODO: Spostare servizio in WmsGenericService (?)
public MtbColt getColloByBarcode(String codBarreCollo, boolean onlyResiduo) throws Exception {
MtbColt mtbColt = getColloByExternalBarcode(codBarreCollo);

View File

@@ -0,0 +1,36 @@
package it.integry.ems.retail.wms.generic.controller;
import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.retail.wms.generic.dto.SaveTrasferimentoRequestDTO;
import it.integry.ems.retail.wms.generic.service.WMSTrasferimentoService;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.web.bind.annotation.*;
@RestController
@Scope("request")
@RequestMapping("wms/trasferimento")
public class WMSTrasferimentoController {
private final Logger logger = LogManager.getLogger();
@Autowired
private WMSTrasferimentoService wmsTrasferimentoService;
@Autowired
private MultiDBTransactionManager multiDBTransactionManager;
@PostMapping(value = "save")
public @ResponseBody
ServiceRestResponse save(@RequestBody SaveTrasferimentoRequestDTO requestData) throws Exception {
wmsTrasferimentoService.saveTrasferimento(multiDBTransactionManager.getPrimaryConnection(), requestData.getCodMdepDest(), requestData.getBarcodeUlList());
return ServiceRestResponse.createPositiveResponse();
}
}

View File

@@ -0,0 +1,27 @@
package it.integry.ems.retail.wms.generic.dto;
import java.util.List;
public class SaveTrasferimentoRequestDTO {
private String codMdepDest;
private List<String> barcodeUlList;
public String getCodMdepDest() {
return codMdepDest;
}
public SaveTrasferimentoRequestDTO setCodMdepDest(String codMdepDest) {
this.codMdepDest = codMdepDest;
return this;
}
public List<String> getBarcodeUlList() {
return barcodeUlList;
}
public SaveTrasferimentoRequestDTO setBarcodeUlList(List<String> barcodeUlList) {
this.barcodeUlList = barcodeUlList;
return this;
}
}

View File

@@ -1,7 +1,6 @@
package it.integry.ems.retail.wms.generic.dto;
import com.fasterxml.jackson.annotation.JsonValue;
import it.integry.ems_model.entity.MtbColt;
import it.integry.ems_model.entity._enum.IBaseEnum;
import java.time.LocalDateTime;
@@ -17,7 +16,7 @@ public class SpostaUlRequestDTO {
private boolean createDocAutomatically = true;
private boolean groupDailyTransfers = false;
private TransferGroupPolicy groupingPolicy = TransferGroupPolicy.NONE;
private List<MtbColt> mtbColtsToMove = new ArrayList<>();
private List<String> barcodeUlList = new ArrayList<>();
public LocalDateTime getDataTrasf() {
return dataTrasf;
@@ -46,12 +45,12 @@ public class SpostaUlRequestDTO {
return this;
}
public List<MtbColt> getMtbColtsToMove() {
return mtbColtsToMove;
public List<String> getBarcodeUlList() {
return barcodeUlList;
}
public SpostaUlRequestDTO setMtbColtsToMove(List<MtbColt> mtbColtsToMove) {
this.mtbColtsToMove = mtbColtsToMove;
public SpostaUlRequestDTO setBarcodeUlList(List<String> barcodeUlList) {
this.barcodeUlList = barcodeUlList;
return this;
}

View File

@@ -2053,8 +2053,7 @@ public class WMSGenericService {
throw new Exception("Nessun deposito di arrivo selezionato");
}
List<String> ulToMove = requestDTO.getMtbColtsToMove().stream()
.map(MtbColt::getBarcodeUl)
List<String> ulToMove = requestDTO.getBarcodeUlList().stream()
.distinct()
.collect(Collectors.toList());

View File

@@ -0,0 +1,29 @@
package it.integry.ems.retail.wms.generic.service;
import it.integry.ems.retail.wms.generic.dto.SpostaUlRequestDTO;
import it.integry.ems.sync.MultiDBTransaction.Connection;
import it.integry.ems_model.entity.MtbColt;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Scope("request")
public class WMSTrasferimentoService {
@Autowired
private WMSGenericService wmsGenericService;
public void saveTrasferimento(Connection primaryConnection, String codMdepDest, List<String> barcodeUlList) throws Exception {
final MtbColt movementMtbColt = wmsGenericService.spostaUL(new SpostaUlRequestDTO() {{
setCodMdep(codMdepDest);
setBarcodeUlList(barcodeUlList);
setCreateDocAutomatically(true);
setGroupDailyTransfers(false);
}});
}
}