Fix su group by durante il riproporzionamento degli scarichi
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-08-08 12:56:23 +02:00
parent 565cbc9f30
commit fa2bca9c99

View File

@@ -864,30 +864,50 @@ public class WMSLavorazioneService {
String sqlSelectMtbColrRows = "SELECT gestione,\n" +
" data_collo,\n" +
" num_collo,\n" +
" MIN(riga) AS riga,\n" +
" ser_collo,\n" +
" MIN(riga) AS riga,\n" +
" cod_barre,\n" +
" cod_mart,\n" +
" cod_col,\n" +
" cod_tagl,\n" +
" SUM(qta_col) AS qta_col,\n" +
" partita_mag,\n" +
" cod_jcom,\n" +
" data_ord,\n" +
" num_ord,\n" +
" riga_ord,\n" +
" ser_collo,\n" +
" partita_mag,\n" +
" AVG(qta_cnf) AS qta_cnf,\n" +
" note,\n" +
" MIN(datetime_row) AS datetime_row,\n" +
" cod_jcom,\n" +
" SUM(num_cnf) AS num_cnf,\n" +
" cod_anag_doc,\n" +
" cod_dtip_doc,\n" +
" data_doc,\n" +
" ser_doc,\n" +
" num_doc,\n" +
" id_riga_doc,\n" +
" SUM(peso_netto_kg) AS peso_netto_kg,\n" +
" SUM(peso_lordo_kg) AS peso_lordo_kg,\n" +
" SUM(qta_col) AS qta_col,\n" +
" AVG(qta_cnf) AS qta_cnf,\n" +
" MIN(datetime_row) AS datetime_row,\n" +
" SUM(num_cnf) AS num_cnf,\n" +
" SUM(peso_netto_kg) AS peso_netto_kg,\n" +
" SUM(peso_lordo_kg) AS peso_lordo_kg,\n" +
" barcode_ul_in,\n" +
" barcode_ul_out,\n" +
" posizione_in,\n" +
" posizione_out,\n" +
" cod_mdep_in,\n" +
" cod_mdep_out,\n" +
" (SELECT TOP 1 causale\n" +
" FROM mtb_colr m2\n" +
" WHERE m2.gestione = mtb_colr.gestione\n" +
" AND m2.data_collo = mtb_colr.data_collo\n" +
" AND m2.num_collo = mtb_colr.num_collo\n" +
" AND m2.riga = MIN(mtb_colr.riga)\n" +
" ORDER BY m2.datetime_row ASC) AS causale,\n" +
" (SELECT TOP 1 note\n" +
" FROM mtb_colr m2\n" +
" WHERE m2.gestione = mtb_colr.gestione\n" +
" AND m2.data_collo = mtb_colr.data_collo\n" +
" AND m2.num_collo = mtb_colr.num_collo\n" +
" AND m2.riga = MIN(mtb_colr.riga)\n" +
" ORDER BY m2.datetime_row ASC) AS note,\n" +
" (SELECT TOP 1 system_note\n" +
" FROM mtb_colr m2\n" +
" WHERE m2.gestione = mtb_colr.gestione\n" +
" AND m2.data_collo = mtb_colr.data_collo\n" +
" AND m2.num_collo = mtb_colr.num_collo\n" +
" AND m2.riga = MIN(mtb_colr.riga)\n" +
" ORDER BY m2.datetime_row ASC) AS system_note,\n" +
" (SELECT TOP 1 utente\n" +
" FROM mtb_colr m2\n" +
" WHERE m2.gestione = mtb_colr.gestione\n" +
@@ -905,26 +925,9 @@ public class WMSLavorazioneService {
}})
.collect(Collectors.toList()));
sqlSelectMtbColrRows += "\nGROUP BY gestione,\n" +
" data_collo,\n" +
" num_collo,\n" +
" cod_barre,\n" +
" cod_mart,\n" +
" cod_col,\n" +
" cod_tagl,\n" +
" data_ord,\n" +
" num_ord,\n" +
" riga_ord,\n" +
" ser_collo,\n" +
" partita_mag,\n" +
" note,\n" +
" cod_jcom,\n" +
" cod_anag_doc,\n" +
" cod_dtip_doc,\n" +
" data_doc,\n" +
" ser_doc,\n" +
" num_doc,\n" +
" id_riga_doc";
sqlSelectMtbColrRows += "\nGROUP BY gestione, cod_mdep_out, cod_mdep_in, posizione_out, posizione_in, barcode_ul_out, barcode_ul_in, riga_ord,\n" +
" num_ord, data_ord, cod_jcom, partita_mag, cod_tagl, cod_col, cod_mart, cod_barre, ser_collo, num_collo,\n" +
" data_collo";
List<MtbColr> udsMateriaPrimaRows = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sqlSelectMtbColrRows, MtbColr.class);
@@ -932,6 +935,10 @@ public class WMSLavorazioneService {
return;
}
if(udsMateriaPrimaRows.stream().anyMatch(x -> UtilityString.isNullOrEmpty(x.getBarcodeUlOut()))) {
throw new Exception("Non è possibile riproporzionare gli scarichi UDS se non sono stati dichiarati i barcode UL di uscita!");
}
UtilityTiming.intervalTiming(timingId, "Caricamento righe UDS Materia Prima");
udsMateriaPrimaRows.forEach(x -> x.setOperation(OperationType.NO_OP));