diff --git a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSLavorazioneService.java b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSLavorazioneService.java index ee399d590d..365959cd69 100644 --- a/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSLavorazioneService.java +++ b/ems-engine/src/main/java/it/integry/ems/retail/wms/lavorazione/service/WMSLavorazioneService.java @@ -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 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));