Cambiato SpostaUlRequestDTO, ora accetta una lista di barcode ul.
Creati servizi per trasferimento pedane.
This commit is contained in:
@@ -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
@@ -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) {
|
||||
@@ -692,79 +688,79 @@ public class DocumentiDirettiService {
|
||||
createUDSRequestOrderDTO.add(ord);
|
||||
}
|
||||
|
||||
if (isLavorazione) {
|
||||
uds = wmsLavorazioneService.createUDS(
|
||||
new CreateUDSRequestDTO()
|
||||
.setCodAnag(createUDSFromDocuments.getCodAnag())
|
||||
.setCodMdep(createUDSFromDocuments.getCodMdep())
|
||||
.setCodVdes(createUDSFromDocuments.getCodVdes())
|
||||
.setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO)
|
||||
.setOrders(createUDSRequestOrderDTO));
|
||||
} else {
|
||||
uds = wmsSpedizioneService.createUDS(
|
||||
new CreateUDSRequestDTO()
|
||||
.setCodAnag(createUDSFromDocuments.getCodAnag())
|
||||
.setCodMdep(codMdep)
|
||||
.setCodVdes(createUDSFromDocuments.getCodVdes())
|
||||
.setOrders(createUDSRequestOrderDTO));
|
||||
if (isLavorazione) {
|
||||
uds = wmsLavorazioneService.createUDS(
|
||||
new CreateUDSRequestDTO()
|
||||
.setCodAnag(createUDSFromDocuments.getCodAnag())
|
||||
.setCodMdep(createUDSFromDocuments.getCodMdep())
|
||||
.setCodVdes(createUDSFromDocuments.getCodVdes())
|
||||
.setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO)
|
||||
.setOrders(createUDSRequestOrderDTO));
|
||||
} else {
|
||||
uds = wmsSpedizioneService.createUDS(
|
||||
new CreateUDSRequestDTO()
|
||||
.setCodAnag(createUDSFromDocuments.getCodAnag())
|
||||
.setCodMdep(codMdep)
|
||||
.setCodVdes(createUDSFromDocuments.getCodVdes())
|
||||
.setOrders(createUDSRequestOrderDTO));
|
||||
}
|
||||
}
|
||||
}
|
||||
uds.getMtbCols().forEach(x -> x.setOperation(OperationType.NO_OP));
|
||||
|
||||
List<MvwSitArtUdcDetInventarioDTO> mvwSitArtUdcDetInventarioDTOS =
|
||||
wmsGiacenzaULService.retrieveArtsInGiacenzaByArticolo(multiDBTransactionManager.getPrimaryConnection(), new RetrieveArtsInGiacenzaByArtRequestDTO()
|
||||
.setBarcodeUl(ulRowDTO.getBarcodeUl())
|
||||
.setCodMart(ulRowDTO.getCodMart())
|
||||
.setPartitaMag(ulRowDTO.getPartitaMag()));
|
||||
List<MvwSitArtUdcDetInventarioDTO> mvwSitArtUdcDetInventarioDTOS =
|
||||
wmsGiacenzaULService.retrieveArtsInGiacenzaByArticolo(multiDBTransactionManager.getPrimaryConnection(), new RetrieveArtsInGiacenzaByArtRequestDTO()
|
||||
.setBarcodeUl(ulRowDTO.getBarcodeUl())
|
||||
.setCodMart(ulRowDTO.getCodMart())
|
||||
.setPartitaMag(ulRowDTO.getPartitaMag()));
|
||||
|
||||
MtbColr sourceMtbColr = null;
|
||||
if (mvwSitArtUdcDetInventarioDTOS != null) {
|
||||
MvwSitArtUdcDetInventarioDTO mvwSitArtUdcDetInventarioDTO = mvwSitArtUdcDetInventarioDTOS.stream()
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
MtbColr sourceMtbColr = null;
|
||||
if (mvwSitArtUdcDetInventarioDTOS != null) {
|
||||
MvwSitArtUdcDetInventarioDTO mvwSitArtUdcDetInventarioDTO = mvwSitArtUdcDetInventarioDTOS.stream()
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
|
||||
if (mvwSitArtUdcDetInventarioDTO != null) {
|
||||
sourceMtbColr = WMSUtility.convertMvwItemToMtbColr(mvwSitArtUdcDetInventarioDTO);
|
||||
sourceMtbColr = WMSUtility.convertMvwItemToMtbColr(mvwSitArtUdcDetInventarioDTO);
|
||||
}
|
||||
}
|
||||
|
||||
if (isLavorazione) {
|
||||
wmsLavorazioneService.insertUDSRow(
|
||||
new InsertUDSRowRequestDTO()
|
||||
.setCodMart(ulRowDTO.getCodMart())
|
||||
.setPartitaMag(ulRowDTO.getPartitaMag())
|
||||
.setQtaTot(ulRowDTO.getQtaCol())
|
||||
.setDataOrd(ulRowDTO.getDataOrd())
|
||||
.setNumOrd(ulRowDTO.getNumOrd())
|
||||
.setRigaOrd(ulRowDTO.getRigaOrd())
|
||||
.setTargetMtbColt(uds)
|
||||
.setSourceMtbColr(sourceMtbColr)
|
||||
);
|
||||
if (isLavorazione) {
|
||||
wmsLavorazioneService.insertUDSRow(
|
||||
new InsertUDSRowRequestDTO()
|
||||
.setCodMart(ulRowDTO.getCodMart())
|
||||
.setPartitaMag(ulRowDTO.getPartitaMag())
|
||||
.setQtaTot(ulRowDTO.getQtaCol())
|
||||
.setDataOrd(ulRowDTO.getDataOrd())
|
||||
.setNumOrd(ulRowDTO.getNumOrd())
|
||||
.setRigaOrd(ulRowDTO.getRigaOrd())
|
||||
.setTargetMtbColt(uds)
|
||||
.setSourceMtbColr(sourceMtbColr)
|
||||
);
|
||||
|
||||
} else {
|
||||
wmsSpedizioneService.insertUDSRow(
|
||||
new InsertUDSRowRequestDTO()
|
||||
.setCodMart(ulRowDTO.getCodMart())
|
||||
.setPartitaMag(ulRowDTO.getPartitaMag())
|
||||
.setQtaTot(ulRowDTO.getQtaCol())
|
||||
.setDataOrd(ulRowDTO.getDataOrd())
|
||||
.setNumOrd(ulRowDTO.getNumOrd())
|
||||
.setRigaOrd(ulRowDTO.getRigaOrd())
|
||||
.setTargetMtbColt(uds)
|
||||
.setSourceMtbColr(sourceMtbColr)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
wmsSpedizioneService.insertUDSRow(
|
||||
new InsertUDSRowRequestDTO()
|
||||
.setCodMart(ulRowDTO.getCodMart())
|
||||
.setPartitaMag(ulRowDTO.getPartitaMag())
|
||||
.setQtaTot(ulRowDTO.getQtaCol())
|
||||
.setDataOrd(ulRowDTO.getDataOrd())
|
||||
.setNumOrd(ulRowDTO.getNumOrd())
|
||||
.setRigaOrd(ulRowDTO.getRigaOrd())
|
||||
.setTargetMtbColt(uds)
|
||||
.setSourceMtbColr(sourceMtbColr)
|
||||
);
|
||||
}
|
||||
|
||||
if (!createUDSFromDocuments.isMonoUl()) {
|
||||
if (isLavorazione) {
|
||||
CloseUDSLavorazioneRequestDTO closeUDSLavorazioneRequestDTO =
|
||||
new CloseUDSLavorazioneRequestDTO();
|
||||
closeUDSLavorazioneRequestDTO.setMtbColt(uds);
|
||||
wmsLavorazioneService.closeUDS(closeUDSLavorazioneRequestDTO);
|
||||
} else {
|
||||
wmsSpedizioneService.closeUDS(new CloseUDSRequestDTO().setMtbColt(uds));
|
||||
}
|
||||
if (isLavorazione) {
|
||||
CloseUDSLavorazioneRequestDTO closeUDSLavorazioneRequestDTO =
|
||||
new CloseUDSLavorazioneRequestDTO();
|
||||
closeUDSLavorazioneRequestDTO.setMtbColt(uds);
|
||||
wmsLavorazioneService.closeUDS(closeUDSLavorazioneRequestDTO);
|
||||
} else {
|
||||
wmsSpedizioneService.closeUDS(new CloseUDSRequestDTO().setMtbColt(uds));
|
||||
}
|
||||
|
||||
generatedMtbColt.add(uds);
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
@@ -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);
|
||||
}});
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user