Merge remote-tracking branch 'origin/feature/RefactoringGestioneColli' into feature/RefactoringGestioneColli
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:
@@ -9,6 +9,7 @@ public class SaveCqPomodoriRGDTO {
|
||||
|
||||
private String barcodeUl;
|
||||
private String posizione;
|
||||
private String codJfas;
|
||||
private MtbPartitaMag partitaMag;
|
||||
private String annotazioni;
|
||||
|
||||
@@ -30,6 +31,15 @@ public class SaveCqPomodoriRGDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodJfas() {
|
||||
return codJfas;
|
||||
}
|
||||
|
||||
public SaveCqPomodoriRGDTO setCodJfas(String codJfas) {
|
||||
this.codJfas = codJfas;
|
||||
return this;
|
||||
}
|
||||
|
||||
public MtbPartitaMag getPartitaMag() {
|
||||
return partitaMag;
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.system.exchange.dto.CertificatiValorizzatiDTO;
|
||||
import it.integry.ems.system.exchange.service.structure.ExchangeImportDataManagerService;
|
||||
import it.integry.ems.system.exchange.service.structure.ExchangeImportSchemaManagerService;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.base.EquatableEntityInterface;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
@@ -410,27 +411,27 @@ public class RossoGarganoProductionService {
|
||||
MtbColt mtbColt = WMSUtility.retrieveBarcodeUlAnag(multiDBTransactionManager.getPrimaryConnection(), dto.getBarcodeUl());
|
||||
if (mtbColt == null)
|
||||
throw new Exception("Impossibile identificare il carico selezionato!");
|
||||
|
||||
if (UtilityString.hasContent(dto.getPosizione())) {
|
||||
|
||||
List<MvwSitArtUdcDetInventarioDTO> giacenzaUl = wmsGiacenzaULService.retrieveArtsInGiacenzaByBarcodeUl(multiDBTransactionManager.getPrimaryConnection(), dto.getBarcodeUl());
|
||||
if (!UtilityList.isNullOrEmpty(giacenzaUl)) {
|
||||
wmsGenericService.cambiaPosizioneUL(new UpdatePosizioneULRequestDTO()
|
||||
.setSscc(dto.getBarcodeUl())
|
||||
.setPosizione(dto.getPosizione()));
|
||||
}
|
||||
boolean movementEdited = false;
|
||||
if (UtilityString.hasContent(dto.getCodJfas())) {
|
||||
mtbColt.setCodJfas(dto.getCodJfas());
|
||||
movementEdited = true;
|
||||
}
|
||||
if (UtilityString.hasContent(dto.getAnnotazioni())) {
|
||||
mtbColt.setAnnotazioni(dto.getAnnotazioni());
|
||||
movementEdited = true;
|
||||
}
|
||||
if (movementEdited) {
|
||||
mtbColt.setOperation(OperationType.UPDATE);
|
||||
entityList.add(mtbColt);
|
||||
}
|
||||
|
||||
if (dto.getPartitaMag() != null) {
|
||||
dto.getPartitaMag().setOperation(OperationType.UPDATE);
|
||||
entityList.add(dto.getPartitaMag());
|
||||
}
|
||||
|
||||
entityProcessor.processEntityList(entityList,multiDBTransactionManager,true);
|
||||
|
||||
entityProcessor.processEntityList(entityList, multiDBTransactionManager, true);
|
||||
UtilityEntity.throwEntitiesException(entityList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3289,7 +3289,7 @@ public class DocumentProdService {
|
||||
DtbOrdt ordine = chiusuraLavorazioneDTO.getOrdine();
|
||||
ScaricoLavorazioneDTO datiScarico = chiusuraLavorazioneDTO.getScaricoLavorazioneDTO();
|
||||
|
||||
// Acquisizione dati prodotto finito per riproporzionare i materiali
|
||||
//<editor-fold desc="Acquisizione dati prodotto finito per riproporzionare i materiali">
|
||||
String sql =
|
||||
" SELECT DISTINCT ordL.cod_prod, " +
|
||||
" ordL.unt_mis_prod, " +
|
||||
@@ -3320,10 +3320,12 @@ public class DocumentProdService {
|
||||
if (dettaglioScaricoDTO == null) {
|
||||
throw new Exception("L'ordine di lavorazione n." + UtilityDB.valueToString(ordine.getNumOrd()) + " del " + UtilityDB.valueToString(ordine.getDataOrd()) + " e/o la distinta corrispondente presentano delle anomalie.");
|
||||
}
|
||||
//</editor-fold>
|
||||
|
||||
// Acquisizione dati prodotto dall'esterno
|
||||
//<editor-fold desc="Acquisizione dati prodotto dall'esterno">
|
||||
BigDecimal qtaProdUMMag = produzioneOrdine.getQuantita();
|
||||
BigDecimal qtaProd = qtaProdUMMag.divide(ordine.getRapConvProd(), 5, RoundingMode.HALF_UP);
|
||||
//</editor-fold>
|
||||
|
||||
|
||||
// Verifica esistenza partita magazzino
|
||||
|
||||
@@ -28,10 +28,7 @@ import org.springframework.stereotype.Service;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@@ -64,7 +61,7 @@ public class WMSMagazzinoBufferService {
|
||||
private WMSGiacenzaULService wmsGiacenzaULService;
|
||||
|
||||
|
||||
public boolean isVersamentoStarted(MagazzinoBufferVersamentoMaterialeRequestDTO magazzinoBufferVersamentoMaterialeRequestDTO, String posizione) throws Exception {
|
||||
public boolean isVersamentoStarted(MagazzinoBufferVersamentoMaterialeRequestDTO magazzinoBufferVersamentoMaterialeRequestDTO, String codJfas) throws Exception {
|
||||
|
||||
String barcodeUl = magazzinoBufferVersamentoMaterialeRequestDTO.getBarcodeUl();
|
||||
String sql = Query.format("SELECT * FROM mtb_colr" +
|
||||
@@ -73,8 +70,9 @@ public class WMSMagazzinoBufferService {
|
||||
"mtb_colr.ser_collo = mtb_colt.ser_collo AND " +
|
||||
"mtb_colr.num_collo = mtb_colt.num_collo " +
|
||||
" WHERE barcode_ul_out = {} " +
|
||||
" AND posizione_out = " + UtilityDB.valueToString(posizione) +
|
||||
" AND qta_col = 0", barcodeUl);
|
||||
" and segno = -1 " +
|
||||
" AND mtb_colt.cod_jfas = {}" +
|
||||
" AND qta_col = 0", barcodeUl, codJfas);
|
||||
|
||||
final List<MtbColr> refMtbColrs = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MtbColr.class);
|
||||
|
||||
@@ -84,7 +82,7 @@ public class WMSMagazzinoBufferService {
|
||||
|
||||
public void startVersamentoMateriale(MagazzinoBufferVersamentoMaterialeRequestDTO magazzinoBufferVersamentoMaterialeRequestDTO, String posizione) throws Exception {
|
||||
if (isVersamentoStarted(magazzinoBufferVersamentoMaterialeRequestDTO, posizione))
|
||||
throw new Exception("C'è già un versamento attivo su questa posizione");
|
||||
throw new Exception("C'è già un versamento attivo su questa linea");
|
||||
|
||||
MtbColt mtbColtRef = WMSUtility.retrieveBarcodeUlAnag(multiDBTransactionManager.getPrimaryConnection(), magazzinoBufferVersamentoMaterialeRequestDTO.getBarcodeUl());
|
||||
if (mtbColtRef == null)
|
||||
@@ -151,10 +149,9 @@ public class WMSMagazzinoBufferService {
|
||||
final List<MvwSitArtUdcDetInventarioDTO> udcMtbColrs = wmsGiacenzaULService.retrieveArtsInGiacenzaByBarcodeUl(multiDBTransactionManager.getPrimaryConnection(), magazzinoBufferVersamentoMaterialeRequestDTO.getBarcodeUl());
|
||||
if (UtilityList.isNullOrEmpty(udcMtbColrs))
|
||||
throw new Exception("Nessuna UDC trovata");
|
||||
final MvwSitArtUdcDetInventarioDTO giacenzaUDC = udcMtbColrs.stream().filter(x->x.getPosizione().equalsIgnoreCase(posizione)).findFirst().orElse(null);
|
||||
|
||||
if (giacenzaUDC == null)
|
||||
throw new Exception("Nessuna UDC trovata");
|
||||
if (udcMtbColrs.size() > 1)
|
||||
throw new Exception("Il barcode selezionato è presente più volte nella giacenza!");
|
||||
final MvwSitArtUdcDetInventarioDTO giacenzaUDC = udcMtbColrs.stream().findFirst().orElse(null);
|
||||
|
||||
if (UtilityBigDecimal.greaterThan(magazzinoBufferVersamentoMaterialeRequestDTO.getNumCnfDaScaricare(), giacenzaUDC.getNumCnf())) {
|
||||
throw new Exception(String.format("La quantità che si vuole scaricare (%d colli) è maggiore della quantità disponibile (%d colli)",
|
||||
@@ -192,11 +189,11 @@ public class WMSMagazzinoBufferService {
|
||||
giacenzaUm = giacenzaUm.subtract(clone.getQtaCol());
|
||||
giacenzaCnf = giacenzaCnf.subtract(BigDecimal.ONE);
|
||||
|
||||
if (i == totalNumCnf -2){
|
||||
if (UtilityBigDecimal.greaterThan(giacenzaUm.abs(),BigDecimal.valueOf(0.1)))
|
||||
if (i == totalNumCnf - 2) {
|
||||
if (UtilityBigDecimal.lowerThan(giacenzaUm.abs(), BigDecimal.valueOf(0.1)))
|
||||
clone.setQtaCol(clone.getQtaCol().add(giacenzaUm));
|
||||
if (UtilityBigDecimal.greaterThan(giacenzaCnf.abs(),BigDecimal.valueOf(0.1)))
|
||||
clone.setNumCnf(clone.getQtaCol().add(giacenzaCnf));
|
||||
if (UtilityBigDecimal.lowerThan(giacenzaCnf.abs(), BigDecimal.valueOf(0.1)))
|
||||
clone.setNumCnf(clone.getNumCnf().add(giacenzaCnf));
|
||||
}
|
||||
|
||||
LocalDateTime dateTimeRow = clone.getDatetimeRow();
|
||||
@@ -262,7 +259,7 @@ public class WMSMagazzinoBufferService {
|
||||
//controllo che non si cerchi di scaricare più di quello che è presente nel collo originale
|
||||
checkQuantitaScaricate(colloRif, mapScarichi.get(barcodeUlOut));
|
||||
|
||||
for (MagazzinoBufferVersamentoMaterialeEditRequestDTO dto : mapScarichi.get(barcodeUlOut)) {
|
||||
for (MagazzinoBufferVersamentoMaterialeEditRequestDTO dto : mapScarichi.get(barcodeUlOut).stream().sorted(Comparator.comparing(MagazzinoBufferVersamentoMaterialeEditRequestDTO::getNumCnfVers)).collect(Collectors.toList())) {
|
||||
MtbColt scarico = MagazzinoBufferVersamentoMaterialeEditRequestDTO.getMtbColt(dto);
|
||||
entityProcessor.processEntity(scarico, true, multiDBTransactionManager);
|
||||
if (UtilityString.isNullOrEmpty(scarico.getCodAnag())) {
|
||||
@@ -270,39 +267,16 @@ public class WMSMagazzinoBufferService {
|
||||
}
|
||||
//sgancio il collo dal documenti di scarico (verrà ricreato a fine procedura)
|
||||
DtbDoct docScarico = documentProdService.sganciaDocumentoDaCollo(scarico);
|
||||
if (dto.getNumCnfVers().equals(BigDecimal.ZERO)){
|
||||
scarico.setOperation(OperationType.DELETE);
|
||||
entityProcessor.processEntity(scarico, false, multiDBTransactionManager);
|
||||
return;
|
||||
if (dto.getNumCnfVers().equals(BigDecimal.ZERO)) {
|
||||
continue;
|
||||
}
|
||||
MtbColr rows = new MtbColr();
|
||||
//elimino tutte le righe
|
||||
rows.deleteAllEntities(multiDBTransactionManager.getPrimaryConnection(), scarico);
|
||||
scarico.setPosizione(dto.getPosizione())
|
||||
.setOraInizPrep(UtilityLocalDate.localDateTimeToDate(dto.getOraInizPrep()))
|
||||
.setOraFinePrep(UtilityLocalDate.localDateTimeToDate(dto.getOraFinePrep()))
|
||||
|
||||
MagazzinoBufferVersamentoMaterialeRequestDTO startVersamentoRequest = new MagazzinoBufferVersamentoMaterialeRequestDTO();
|
||||
startVersamentoRequest.setBarcodeUl(dto.getBarcodeUl())
|
||||
.setCodJfas(dto.getCodJfas());
|
||||
entityProcessor.processEntity(scarico, true, multiDBTransactionManager);
|
||||
|
||||
MtbColr udcMtbColr = new MtbColr();
|
||||
udcMtbColr
|
||||
.setGestione(colloRif.getGestione())
|
||||
.setDataCollo(colloRif.getDataCollo())
|
||||
.setSerCollo(colloRif.getSerCollo())
|
||||
.setNumCollo(colloRif.getNumCollo())
|
||||
.setPosizioneIn(dto.getPosizione())
|
||||
.setBarcodeUlIn(dto.getBarcodeUl())
|
||||
.setCodMdepIn(dto.getCodMdep());
|
||||
|
||||
wmsLavorazioneService.insertUDSRow(new InsertUDSRowRequestDTO()
|
||||
.setTargetMtbColt(scarico)
|
||||
.setSourceMtbColr(udcMtbColr)
|
||||
.setCodMart(dto.getCodMart())
|
||||
.setQtaTot(BigDecimal.ZERO)
|
||||
.setNumCnf(BigDecimal.ZERO)
|
||||
.setQtaCnf(dto.getQtaCnf())
|
||||
.setPartitaMag(dto.getPartitaMag()));
|
||||
|
||||
startVersamentoMateriale(startVersamentoRequest, dto.getCodJfas());
|
||||
|
||||
MagazzinoBufferVersamentoMaterialeCloseRequestDTO endVersamentoRequest = new MagazzinoBufferVersamentoMaterialeCloseRequestDTO();
|
||||
endVersamentoRequest
|
||||
|
||||
Reference in New Issue
Block a user