diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251210095206.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251210095206.java index 51e84f9fa2..085cd5c1be 100644 --- a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251210095206.java +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251210095206.java @@ -13,7 +13,7 @@ public class Migration_20251210095206 extends BaseMigration implements Migration executeStatement("ALTER TABLE mtb_aart_anag ADD cod_vdes varchar(5);"); - if(isCustomerDb(IntegryCustomerDB.Carelli_Format) && isCustomerDb(IntegryCustomerDB.Carelli_GestFood)){ + if(isCustomerDb(IntegryCustomerDB.Carelli_Format) || isCustomerDb(IntegryCustomerDB.Carelli_GestFood)){ executeStatement("delete from mtb_aart_anag\n" + "from (\n" + "select cod_mart, cod_mart_anag, cod_anag, ROW_NUMBER() over (partition by cod_mart, cod_anag order by cod_mart, cod_mart_anag, cod_anag ) as id\n" + diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251212151308.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251212151308.java new file mode 100644 index 0000000000..c2863224e6 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20251212151308.java @@ -0,0 +1,121 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.IntegryCustomer; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20251212151308 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + if ( !isCustomer(IntegryCustomer.Carelli) ) return; + + createOrUpdateFunction("steup_getRilevazioni", "CREATE FUNCTION [dbo].[steup_getRilevazioni]\n" + + "(\n" + + " @dataIspezione DATETIME,\n" + + " @codMdep VARCHAR(5),\n" + + " @userRilevatore VARCHAR(20)\n" + + ")\n" + + "RETURNS TABLE AS return \n" + + "SELECT activity_id,\n" + + " stb_activity.user_name,\n" + + " user_creator,\n" + + " ISNULL(effective_time, ora_ins_act) AS effective_time,\n" + + " effective_endtime,\n" + + " activity_result_id,\n" + + " mtb_depo.cod_mdep,\n" + + " mtb_depo.descrizione AS descr_deposito,\n" + + " ISNULL(effective_date, data_ins_act) AS data_isp\n" + + "FROM winact.dbo.stb_activity INNER JOIN winact.dbo.wtb_depo ON stb_activity.user_name = wtb_depo.user_name\n" + + " INNER JOIN winact.dbo.mtb_depo ON wtb_depo.cod_mdep = mtb_depo.cod_mdep\n" + + "WHERE flag_tipologia = 'P' AND\n" + + " activity_type_id = 'ISPEZIONE' AND \n" + + " (@dataIspezione is null or stb_activity.effective_date = @dataIspezione ) AND \n" + + " (@codMdep is null or mtb_depo.cod_mdep = @codMdep ) AND \n" + + " (@userRilevatore is null or stb_activity.user_creator = @userRilevatore );"); + createOrUpdateFunction("steup_getEntriesRilevazione", "CREATE FUNCTION [dbo].[steup_getEntriesRilevazione](@idIspezione varchar(20))\n" + + " RETURNS TABLE AS return\n" + + "WITH steup_ispezioni AS (SELECT * FROM steup_getRilevazioni(null, null, null)),\n" + + "\n" + + " steup_activities AS (SELECT stb_activity.activity_id,\n" + + " stb_activity.activity_type_id,\n" + + " stb_activity.data_ins_act,\n" + + " ISNULL(stb_activity.effective_time, stb_activity.ora_ins_act) AS effective_time,\n" + + " stb_activity.cod_mart,\n" + + " mtb_aart.descrizione AS descr_art,\n" + + " stb_activity.activity_play_counter,\n" + + " stb_activity.note,\n" + + " stb_activity.cod_jfas,\n" + + " stb_activity.flag_tipologia,\n" + + " stb_activity.persona_rif,\n" + + " stb_activity.priorita,\n" + + " wtb_depo.cod_mdep,\n" + + " jtb_fasi.descrizione AS descr_fase,\n" + + " stb_activity.parent_activity_id as id_ispezione,\n" + + " stb_activity.indice_gradimento,\n" + + " stb_activity.user_creator,\n" + + " jtb_fasi.max_allocazione,\n" + + " SUM(indice_gradimento)\n" + + " OVER ( PARTITION BY parent_activity_id,wtb_depo.cod_mdep,jtb_fasi.cod_jfas ) AS gradimento_reparto,\n" + + " steup_ispezioni.data_isp\n" + + " FROM winact.dbo.stb_activity\n" + + " INNER JOIN steup_ispezioni ON parent_activity_id = steup_ispezioni.activity_id\n" + + " LEFT OUTER JOIN winact.dbo.jtb_fasi ON stb_activity.cod_jfas = jtb_fasi.cod_jfas\n" + + " LEFT OUTER JOIN winact.dbo.mtb_aart ON stb_activity.cod_mart = mtb_aart.cod_mart\n" + + " LEFT OUTER JOIN winact.dbo.wtb_depo ON stb_activity.user_name = wtb_depo.user_name\n" + + " WHERE ISNULL(cod_jcom, '') <> 'MODEL'\n" + + " and stb_activity.cod_mart is null\n" + + " AND stb_activity.flag_tipologia = 'A')\n" + + " ,\n" + + "\n" + + "\n" + + "\n" + + "\n" + + " gradimento_reparto AS (SELECT DISTINCT id_ispezione,\n" + + " cod_jfas,\n" + + " cod_mdep,\n" + + " data_isp,\n" + + " gradimento_reparto,\n" + + " LAG(gradimento_reparto, 1, 0)\n" + + " OVER (PARTITION BY cod_mdep,cod_jfas ORDER BY data_isp ) AS grad_1,\n" + + " LAG(gradimento_reparto, 2, 0)\n" + + " OVER (PARTITION BY cod_mdep,cod_jfas ORDER BY data_isp ) AS grad_2\n" + + "\n" + + " FROM (SELECT DISTINCT id_ispezione, cod_mdep, cod_jfas, gradimento_reparto, data_isp\n" + + " FROM steup_activities) acti)\n" + + "\n" + + "\n" + + "SELECT steup_activities.*,\n" + + " CASE\n" + + " WHEN gradimento_reparto.grad_1 > max_allocazione AND gradimento_reparto.grad_2 > max_allocazione THEN 1\n" + + " ELSE 0 END AS recidiva,\n" + + " ((SELECT COUNT(*)\n" + + " FROM stb_activity art\n" + + " WHERE steup_activities.activity_id = art.parent_activity_id) + (SELECT COUNT(*)\n" + + " FROM mtb_colt\n" + + " INNER JOIN mtb_colr\n" + + " ON mtb_colt.gestione =\n" + + " mtb_colr.gestione AND\n" + + " mtb_colt.data_collo =\n" + + " mtb_colr.data_collo AND\n" + + " mtb_colt.ser_collo =\n" + + " mtb_colr.ser_collo AND\n" + + " mtb_colt.num_collo =\n" + + " mtb_colr.num_collo\n" + + " WHERE mtb_colt.activity_id = steup_activities.activity_id)) AS count_art\n" + + "FROM steup_activities\n" + + " left outer JOIN gradimento_reparto ON steup_activities.id_ispezione = gradimento_reparto.id_ispezione\n" + + " AND steup_activities.cod_mdep = gradimento_reparto.cod_mdep\n" + + " AND steup_activities.cod_jfas = gradimento_reparto.cod_jfas\n" + + "WHERE (@idIspezione is null or steup_activities.id_ispezione = @idIspezione)"); + } + + @Override + public void down() throws Exception { + + } + +} diff --git a/ems-engine/src/main/java/it/integry/ems/activity/service/SteUPService.java b/ems-engine/src/main/java/it/integry/ems/activity/service/SteUPService.java index d2bfb5288c..ced8d02196 100644 --- a/ems-engine/src/main/java/it/integry/ems/activity/service/SteUPService.java +++ b/ems-engine/src/main/java/it/integry/ems/activity/service/SteUPService.java @@ -1425,7 +1425,7 @@ public class SteUPService { " activity_result_id,\n" + " cod_mdep,\n" + " descr_deposito\n" + - "FROM dbo.steup_getRilevazioni()\n" + + "FROM dbo.steup_getRilevazioni(null, null, null)\n" + "WHERE CAST(effective_time AS DATE) BETWEEN %s AND %s", dataInizio, dataFine