modificata vista gramm OlapFermiMacchina
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
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_20251031125910 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if(isCustomer(IntegryCustomer.Gramm)) {
|
||||
createOrUpdateView("[OlapFermiMacchina]", "CREATE view [dbo].[OlapFermiMacchina] as \n" +
|
||||
"\n" +
|
||||
" \n" +
|
||||
"\n" +
|
||||
"\n" +
|
||||
"\n" +
|
||||
" WITH controlli_qualita AS (SELECT [Data Inizio],[Data Fine], [Operatore], [Tipologia], [Descrizione del Fermo] as Note, gestione, data_ord, num_ord, num_rip\n" +
|
||||
" FROM (\n" +
|
||||
" select controllo, valore_ril, DTB_ORDT.gestione, dtb_ordt.data_ord, dtb_ordt.num_ord, dtb_ord_cqr.num_rip\n" +
|
||||
" \n" +
|
||||
"from dtb_ord_cqr inner join dtb_ord_cq on dtb_ord_cqr.gestione=dtb_ord_cq.gestione and \n" +
|
||||
" dtb_ord_cqr.data_ord=dtb_ord_cq.data_ord and dtb_ord_cqr.num_ord=dtb_ord_cq.num_ord \n" +
|
||||
" and dtb_ord_cqr.id_riga=dtb_ord_cq.id_riga\n" +
|
||||
" inner join dtb_ordt on dtb_ord_cqr.gestione=dtb_ordt.gestione and \n" +
|
||||
" dtb_ord_cqr.data_ord=dtb_ordt.data_ord and \n" +
|
||||
" dtb_ord_cqr.num_ord=dtb_ordt.num_ord\n" +
|
||||
" \n" +
|
||||
"where dtb_ord_cqr.gestione='L' and dtb_ord_cqr.data_ord >'2024/10/01' and dtb_ordt.cod_mdep in('34','01','33')\n" +
|
||||
" ) cq\n" +
|
||||
" PIVOT\n" +
|
||||
" (max(valore_ril)\n" +
|
||||
" FOR controllo IN ([Data Inizio],[Data Fine], [Operatore],[Tipologia],[Descrizione del Fermo])\n" +
|
||||
" ) AS pivottable)\n" +
|
||||
"\n" +
|
||||
"select dtb_ordt.cod_mdep,\n" +
|
||||
" dtb_ord_steps.cod_jfas,\n" +
|
||||
" dtb_ordt.data_ord, \n" +
|
||||
" dtb_ordt.num_ord,\n" +
|
||||
" dtb_ordt.cod_prod,\n" +
|
||||
" mtb_aart.descrizione,\n" +
|
||||
" mtb_aart.marchio,\n" +
|
||||
" dtb_ordt.partita_mag,\n" +
|
||||
" dtb_ordt.unt_mis_prod,\n" +
|
||||
" dtb_ordt.qta_evasa_prod,\n" +
|
||||
" try_convert(datetime, controlli_qualita.[Data Inizio], 103) as Data_inz_fermo,\n" +
|
||||
" try_convert(datetime, controlli_qualita.[Data Fine], 103) as Data_fine_fermo,\n" +
|
||||
" controlli_qualita.Operatore,\n" +
|
||||
" controlli_qualita.Note,\n" +
|
||||
" SUM(\n" +
|
||||
" CASE\n" +
|
||||
" WHEN TRY_CONVERT(datetime, controlli_qualita.[Data Inizio], 103) IS NOT NULL\n" +
|
||||
" AND TRY_CONVERT(datetime, controlli_qualita.[Data Fine], 103) IS NOT NULL\n" +
|
||||
" THEN DATEDIFF(\n" +
|
||||
" MINUTE,\n" +
|
||||
" TRY_CONVERT(datetime, controlli_qualita.[Data Inizio], 103),\n" +
|
||||
" TRY_CONVERT(datetime, controlli_qualita.[Data Fine], 103)\n" +
|
||||
" )\n" +
|
||||
" ELSE 0\n" +
|
||||
" END\n" +
|
||||
") AS min_lav, -- min_fermo (non è stato cambiato il nome del campo perchè ci sono diversi report che leggono da questa vista)\n" +
|
||||
"\n" +
|
||||
"0 AS h_lav,\n" +
|
||||
"\n" +
|
||||
"SUM(\n" +
|
||||
" CASE\n" +
|
||||
" WHEN TRY_CONVERT(datetime, controlli_qualita.[Data Inizio], 103) IS NOT NULL\n" +
|
||||
" AND TRY_CONVERT(datetime, controlli_qualita.[Data Fine], 103) IS NOT NULL\n" +
|
||||
" THEN DATEDIFF(\n" +
|
||||
" HOUR,\n" +
|
||||
" TRY_CONVERT(datetime, controlli_qualita.[Data Inizio], 103),\n" +
|
||||
" TRY_CONVERT(datetime, controlli_qualita.[Data Fine], 103)\n" +
|
||||
" )\n" +
|
||||
" ELSE 0\n" +
|
||||
" END\n" +
|
||||
") OVER (PARTITION BY dtb_ordt.gestione, dtb_ordt.data_ord, dtb_ordt.num_ord) AS h_fermo,\n" +
|
||||
"\n" +
|
||||
"controlli_qualita.Tipologia\n" +
|
||||
"\n" +
|
||||
" \n" +
|
||||
"from controlli_qualita inner join dtb_ordt on controlli_qualita.gestione=dtb_ordt.gestione and \n" +
|
||||
" controlli_qualita.data_ord=dtb_ordt.data_ord and \n" +
|
||||
" controlli_qualita.num_ord=dtb_ordt.num_ord\n" +
|
||||
" \n" +
|
||||
" inner join mtb_aart on dtb_ordt.cod_prod=mtb_aart.cod_mart\n" +
|
||||
" left outer join ( select num_ord, data_ord, gestione, cod_jfas\n" +
|
||||
" from \n" +
|
||||
" (select num_ord, data_ord, gestione, data_iniz, cod_jfas,\n" +
|
||||
" ROW_NUMBER() OVER (PARTITION BY gestione, data_ord, num_ord ORDER BY data_iniz ASC) AS num\n" +
|
||||
" from dtb_ord_steps\n" +
|
||||
" where data_iniz IS NOT NULL) step\n" +
|
||||
" where num='1') dtb_ord_steps ON dtb_ordt.gestione = dtb_ord_steps.gestione\n" +
|
||||
" AND dtb_ordt.data_ord = dtb_ord_steps.data_ord\n" +
|
||||
" AND dtb_ordt.num_ord = dtb_ord_steps.num_ord\n" +
|
||||
"where dtb_ordt.gestione='L' and dtb_ordt.data_ord>'2024/10/01' and dtb_ordt.cod_mdep in('34','01','33') \n" +
|
||||
"\n" +
|
||||
"group by dtb_ordt.cod_mdep,\n" +
|
||||
" dtb_ord_steps.cod_jfas,\n" +
|
||||
" dtb_ordt.data_ord, \n" +
|
||||
" dtb_ordt.num_ord,\n" +
|
||||
" dtb_ordt.cod_prod,\n" +
|
||||
" mtb_aart.descrizione,\n" +
|
||||
" mtb_aart.marchio,\n" +
|
||||
" dtb_ordt.partita_mag,\n" +
|
||||
" dtb_ordt.unt_mis_prod,\n" +
|
||||
" dtb_ordt.qta_prod,\n" +
|
||||
" dtb_ordt.qta_evasa_prod,\n" +
|
||||
" controlli_qualita.[Data Inizio],\n" +
|
||||
" controlli_qualita.[Data Fine],\n" +
|
||||
" controlli_qualita.Operatore,\n" +
|
||||
" controlli_qualita.Note,\n" +
|
||||
" dtb_ordt.gestione,\n" +
|
||||
" controlli_qualita.Tipologia");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user