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 barcodeUl;
|
||||||
private String posizione;
|
private String posizione;
|
||||||
|
private String codJfas;
|
||||||
private MtbPartitaMag partitaMag;
|
private MtbPartitaMag partitaMag;
|
||||||
private String annotazioni;
|
private String annotazioni;
|
||||||
|
|
||||||
@@ -30,6 +31,15 @@ public class SaveCqPomodoriRGDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCodJfas() {
|
||||||
|
return codJfas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SaveCqPomodoriRGDTO setCodJfas(String codJfas) {
|
||||||
|
this.codJfas = codJfas;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public MtbPartitaMag getPartitaMag() {
|
public MtbPartitaMag getPartitaMag() {
|
||||||
return partitaMag;
|
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.dto.CertificatiValorizzatiDTO;
|
||||||
import it.integry.ems.system.exchange.service.structure.ExchangeImportDataManagerService;
|
import it.integry.ems.system.exchange.service.structure.ExchangeImportDataManagerService;
|
||||||
import it.integry.ems.system.exchange.service.structure.ExchangeImportSchemaManagerService;
|
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.EntityBase;
|
||||||
import it.integry.ems_model.base.EquatableEntityInterface;
|
import it.integry.ems_model.base.EquatableEntityInterface;
|
||||||
import it.integry.ems_model.entity.MtbColt;
|
import it.integry.ems_model.entity.MtbColt;
|
||||||
@@ -410,27 +411,27 @@ public class RossoGarganoProductionService {
|
|||||||
MtbColt mtbColt = WMSUtility.retrieveBarcodeUlAnag(multiDBTransactionManager.getPrimaryConnection(), dto.getBarcodeUl());
|
MtbColt mtbColt = WMSUtility.retrieveBarcodeUlAnag(multiDBTransactionManager.getPrimaryConnection(), dto.getBarcodeUl());
|
||||||
if (mtbColt == null)
|
if (mtbColt == null)
|
||||||
throw new Exception("Impossibile identificare il carico selezionato!");
|
throw new Exception("Impossibile identificare il carico selezionato!");
|
||||||
|
boolean movementEdited = false;
|
||||||
if (UtilityString.hasContent(dto.getPosizione())) {
|
if (UtilityString.hasContent(dto.getCodJfas())) {
|
||||||
|
mtbColt.setCodJfas(dto.getCodJfas());
|
||||||
List<MvwSitArtUdcDetInventarioDTO> giacenzaUl = wmsGiacenzaULService.retrieveArtsInGiacenzaByBarcodeUl(multiDBTransactionManager.getPrimaryConnection(), dto.getBarcodeUl());
|
movementEdited = true;
|
||||||
if (!UtilityList.isNullOrEmpty(giacenzaUl)) {
|
|
||||||
wmsGenericService.cambiaPosizioneUL(new UpdatePosizioneULRequestDTO()
|
|
||||||
.setSscc(dto.getBarcodeUl())
|
|
||||||
.setPosizione(dto.getPosizione()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (UtilityString.hasContent(dto.getAnnotazioni())) {
|
if (UtilityString.hasContent(dto.getAnnotazioni())) {
|
||||||
mtbColt.setAnnotazioni(dto.getAnnotazioni());
|
mtbColt.setAnnotazioni(dto.getAnnotazioni());
|
||||||
|
movementEdited = true;
|
||||||
|
}
|
||||||
|
if (movementEdited) {
|
||||||
|
mtbColt.setOperation(OperationType.UPDATE);
|
||||||
entityList.add(mtbColt);
|
entityList.add(mtbColt);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dto.getPartitaMag() != null) {
|
if (dto.getPartitaMag() != null) {
|
||||||
dto.getPartitaMag().setOperation(OperationType.UPDATE);
|
dto.getPartitaMag().setOperation(OperationType.UPDATE);
|
||||||
entityList.add(dto.getPartitaMag());
|
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();
|
DtbOrdt ordine = chiusuraLavorazioneDTO.getOrdine();
|
||||||
ScaricoLavorazioneDTO datiScarico = chiusuraLavorazioneDTO.getScaricoLavorazioneDTO();
|
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 =
|
String sql =
|
||||||
" SELECT DISTINCT ordL.cod_prod, " +
|
" SELECT DISTINCT ordL.cod_prod, " +
|
||||||
" ordL.unt_mis_prod, " +
|
" ordL.unt_mis_prod, " +
|
||||||
@@ -3320,10 +3320,12 @@ public class DocumentProdService {
|
|||||||
if (dettaglioScaricoDTO == null) {
|
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.");
|
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 qtaProdUMMag = produzioneOrdine.getQuantita();
|
||||||
BigDecimal qtaProd = qtaProdUMMag.divide(ordine.getRapConvProd(), 5, RoundingMode.HALF_UP);
|
BigDecimal qtaProd = qtaProdUMMag.divide(ordine.getRapConvProd(), 5, RoundingMode.HALF_UP);
|
||||||
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
// Verifica esistenza partita magazzino
|
// Verifica esistenza partita magazzino
|
||||||
|
|||||||
@@ -28,10 +28,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -64,7 +61,7 @@ public class WMSMagazzinoBufferService {
|
|||||||
private WMSGiacenzaULService wmsGiacenzaULService;
|
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 barcodeUl = magazzinoBufferVersamentoMaterialeRequestDTO.getBarcodeUl();
|
||||||
String sql = Query.format("SELECT * FROM mtb_colr" +
|
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.ser_collo = mtb_colt.ser_collo AND " +
|
||||||
"mtb_colr.num_collo = mtb_colt.num_collo " +
|
"mtb_colr.num_collo = mtb_colt.num_collo " +
|
||||||
" WHERE barcode_ul_out = {} " +
|
" WHERE barcode_ul_out = {} " +
|
||||||
" AND posizione_out = " + UtilityDB.valueToString(posizione) +
|
" and segno = -1 " +
|
||||||
" AND qta_col = 0", barcodeUl);
|
" AND mtb_colt.cod_jfas = {}" +
|
||||||
|
" AND qta_col = 0", barcodeUl, codJfas);
|
||||||
|
|
||||||
final List<MtbColr> refMtbColrs = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, MtbColr.class);
|
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 {
|
public void startVersamentoMateriale(MagazzinoBufferVersamentoMaterialeRequestDTO magazzinoBufferVersamentoMaterialeRequestDTO, String posizione) throws Exception {
|
||||||
if (isVersamentoStarted(magazzinoBufferVersamentoMaterialeRequestDTO, posizione))
|
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());
|
MtbColt mtbColtRef = WMSUtility.retrieveBarcodeUlAnag(multiDBTransactionManager.getPrimaryConnection(), magazzinoBufferVersamentoMaterialeRequestDTO.getBarcodeUl());
|
||||||
if (mtbColtRef == null)
|
if (mtbColtRef == null)
|
||||||
@@ -151,10 +149,9 @@ public class WMSMagazzinoBufferService {
|
|||||||
final List<MvwSitArtUdcDetInventarioDTO> udcMtbColrs = wmsGiacenzaULService.retrieveArtsInGiacenzaByBarcodeUl(multiDBTransactionManager.getPrimaryConnection(), magazzinoBufferVersamentoMaterialeRequestDTO.getBarcodeUl());
|
final List<MvwSitArtUdcDetInventarioDTO> udcMtbColrs = wmsGiacenzaULService.retrieveArtsInGiacenzaByBarcodeUl(multiDBTransactionManager.getPrimaryConnection(), magazzinoBufferVersamentoMaterialeRequestDTO.getBarcodeUl());
|
||||||
if (UtilityList.isNullOrEmpty(udcMtbColrs))
|
if (UtilityList.isNullOrEmpty(udcMtbColrs))
|
||||||
throw new Exception("Nessuna UDC trovata");
|
throw new Exception("Nessuna UDC trovata");
|
||||||
final MvwSitArtUdcDetInventarioDTO giacenzaUDC = udcMtbColrs.stream().filter(x->x.getPosizione().equalsIgnoreCase(posizione)).findFirst().orElse(null);
|
if (udcMtbColrs.size() > 1)
|
||||||
|
throw new Exception("Il barcode selezionato è presente più volte nella giacenza!");
|
||||||
if (giacenzaUDC == null)
|
final MvwSitArtUdcDetInventarioDTO giacenzaUDC = udcMtbColrs.stream().findFirst().orElse(null);
|
||||||
throw new Exception("Nessuna UDC trovata");
|
|
||||||
|
|
||||||
if (UtilityBigDecimal.greaterThan(magazzinoBufferVersamentoMaterialeRequestDTO.getNumCnfDaScaricare(), giacenzaUDC.getNumCnf())) {
|
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)",
|
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());
|
giacenzaUm = giacenzaUm.subtract(clone.getQtaCol());
|
||||||
giacenzaCnf = giacenzaCnf.subtract(BigDecimal.ONE);
|
giacenzaCnf = giacenzaCnf.subtract(BigDecimal.ONE);
|
||||||
|
|
||||||
if (i == totalNumCnf -2){
|
if (i == totalNumCnf - 2) {
|
||||||
if (UtilityBigDecimal.greaterThan(giacenzaUm.abs(),BigDecimal.valueOf(0.1)))
|
if (UtilityBigDecimal.lowerThan(giacenzaUm.abs(), BigDecimal.valueOf(0.1)))
|
||||||
clone.setQtaCol(clone.getQtaCol().add(giacenzaUm));
|
clone.setQtaCol(clone.getQtaCol().add(giacenzaUm));
|
||||||
if (UtilityBigDecimal.greaterThan(giacenzaCnf.abs(),BigDecimal.valueOf(0.1)))
|
if (UtilityBigDecimal.lowerThan(giacenzaCnf.abs(), BigDecimal.valueOf(0.1)))
|
||||||
clone.setNumCnf(clone.getQtaCol().add(giacenzaCnf));
|
clone.setNumCnf(clone.getNumCnf().add(giacenzaCnf));
|
||||||
}
|
}
|
||||||
|
|
||||||
LocalDateTime dateTimeRow = clone.getDatetimeRow();
|
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
|
//controllo che non si cerchi di scaricare più di quello che è presente nel collo originale
|
||||||
checkQuantitaScaricate(colloRif, mapScarichi.get(barcodeUlOut));
|
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);
|
MtbColt scarico = MagazzinoBufferVersamentoMaterialeEditRequestDTO.getMtbColt(dto);
|
||||||
entityProcessor.processEntity(scarico, true, multiDBTransactionManager);
|
entityProcessor.processEntity(scarico, true, multiDBTransactionManager);
|
||||||
if (UtilityString.isNullOrEmpty(scarico.getCodAnag())) {
|
if (UtilityString.isNullOrEmpty(scarico.getCodAnag())) {
|
||||||
@@ -270,39 +267,16 @@ public class WMSMagazzinoBufferService {
|
|||||||
}
|
}
|
||||||
//sgancio il collo dal documenti di scarico (verrà ricreato a fine procedura)
|
//sgancio il collo dal documenti di scarico (verrà ricreato a fine procedura)
|
||||||
DtbDoct docScarico = documentProdService.sganciaDocumentoDaCollo(scarico);
|
DtbDoct docScarico = documentProdService.sganciaDocumentoDaCollo(scarico);
|
||||||
if (dto.getNumCnfVers().equals(BigDecimal.ZERO)){
|
|
||||||
scarico.setOperation(OperationType.DELETE);
|
scarico.setOperation(OperationType.DELETE);
|
||||||
entityProcessor.processEntity(scarico, false, multiDBTransactionManager);
|
entityProcessor.processEntity(scarico, false, multiDBTransactionManager);
|
||||||
return;
|
if (dto.getNumCnfVers().equals(BigDecimal.ZERO)) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
MtbColr rows = new MtbColr();
|
|
||||||
//elimino tutte le righe
|
MagazzinoBufferVersamentoMaterialeRequestDTO startVersamentoRequest = new MagazzinoBufferVersamentoMaterialeRequestDTO();
|
||||||
rows.deleteAllEntities(multiDBTransactionManager.getPrimaryConnection(), scarico);
|
startVersamentoRequest.setBarcodeUl(dto.getBarcodeUl())
|
||||||
scarico.setPosizione(dto.getPosizione())
|
|
||||||
.setOraInizPrep(UtilityLocalDate.localDateTimeToDate(dto.getOraInizPrep()))
|
|
||||||
.setOraFinePrep(UtilityLocalDate.localDateTimeToDate(dto.getOraFinePrep()))
|
|
||||||
.setCodJfas(dto.getCodJfas());
|
.setCodJfas(dto.getCodJfas());
|
||||||
entityProcessor.processEntity(scarico, true, multiDBTransactionManager);
|
startVersamentoMateriale(startVersamentoRequest, dto.getCodJfas());
|
||||||
|
|
||||||
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()));
|
|
||||||
|
|
||||||
|
|
||||||
MagazzinoBufferVersamentoMaterialeCloseRequestDTO endVersamentoRequest = new MagazzinoBufferVersamentoMaterialeCloseRequestDTO();
|
MagazzinoBufferVersamentoMaterialeCloseRequestDTO endVersamentoRequest = new MagazzinoBufferVersamentoMaterialeCloseRequestDTO();
|
||||||
endVersamentoRequest
|
endVersamentoRequest
|
||||||
|
|||||||
Reference in New Issue
Block a user