Files
mmt_sql/onetime/dataloadfunctions/budni/BUDNI_NMT_STG2.sql
2021-07-02 08:40:37 +00:00

470 lines
18 KiB
PL/PgSQL
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
drop function if exists staging2.fn_BUDNI_NMT_Block ;
CREATE OR REPLACE FUNCTION staging2.fn_BUDNI_NMT_Block(p_client_id int,p_function_id int, p_file_mnemonic text,p_file_sheet_mnemonic text, p_file_syspk int)
RETURNS void
LANGUAGE plpgsql
AS $function$
declare __make text;
declare __model text;
declare __client_id int :=p_client_id;
declare __function_id int :=p_function_id;
declare __file_mnemonic text :=p_file_mnemonic;
declare __file_sheet_mnemonic text :=p_file_sheet_mnemonic;
declare __file_syspk int :=p_file_syspk;
declare err_state text;
declare err_msg text;
declare err_detail text;
declare err_hint text;
declare err_context text;
declare err_query int;
declare err_block text;
begin
SET search_path TO staging2;
/***********************************************************************************
Function Name:fn_BUDNI_NMT_Block
Function Desc: This function populates data into staging2 blocks
File Format: BUDNI
Sheet Format:BUDNI_NMT
Creation Date: March 21 2021
Updation Date:
Author: compegence team
Function Call: select staging2.fn_BUDNI_NMT_Block(20,1,'BUDNI','BUDNI_NMT',261);
************************************************************************************/
/* rerunnability - delete block tables and update config tables to null */
truncate table staging2.BUDNI_NMT_Spec_H1_Block;
truncate table staging2.BUDNI_NMT_noise_at_bystander_position_block;
truncate table staging2.BUDNI_NMT_Atmos_Cond_1_Block;
truncate table staging2.BUDNI_NMT_Meas_Results_1_Block;
truncate table staging2.BUDNI_NMT_noise_at_operator_ear_level_block;
truncate table staging2.BUDNI_NMT_Atmos_Cond_2_Block;
truncate table staging2.BUDNI_NMT_Meas_Results_2_Block;
truncate table staging2.BUDNI_NMT_Test_Obs_Summary_Block;
truncate table staging2.stg_specific_table_BUDNI_NMT;
truncate table staging2.stg_process_table_BUDNI_NMT;
execute 'delete from fw_core.fw_jobctl_file_sheet_block_run_schedule where file_syspk='||p_file_syspk||' and file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
execute 'update transactional.source_config a
set row_number_start=null,
row_previous_number=null,
row_read_end=null,
run_time=null
where a.file_mnemonic='''||p_file_mnemonic||''' and a.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
/* transfer data from generic to specific for BUDNI */
execute 'insert into staging2.stg_specific_table_BUDNI_NMT
select * from staging1.staging_generic_table a
where a.file_mnemonic='''||p_file_mnemonic||''' and a.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''
and a.file_syspk='||p_file_syspk||'';
select count(*) into err_query from staging2.stg_specific_table_BUDNI_NMT;
if err_query=0 then
err_context := 'data not present';
raise exception using
message = 'No Data for budni nmt',
detail = 'No data in table stg_specific_table_BUDNI_NMT',
errcode = '42704',
hint = 'check sheet mnemonic in generic table, if it is null update it';
end if;
update transactional.source_config set F1_source=F1_modified;
execute 'update transactional.source_config a
set row_number_start=(select min(b.row_number)
from staging2.stg_specific_table_BUDNI_NMT b
where upper(F1_source)= upper(column3)
and b.is_rownumber_fetched is null)
where a.row_number_start is null
and a.file_mnemonic='''||p_file_mnemonic||''' and a.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
/* reverese update in process table for match*/
execute 'update staging2.stg_specific_table_BUDNI_NMT a
set is_rownumber_fetched=1
from transactional.source_config b
where upper(F1_source)= upper(column3)
and b.row_number_start=a.row_number
and is_rownumber_fetched is null and a.file_mnemonic='''||p_file_mnemonic||''' and a.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
execute 'update transactional.source_config a set row_previous_number=row_number_start-1
where a.file_mnemonic='''||p_file_mnemonic||''' and a.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
execute 'update transactional.source_config a
set row_read_end= (select b.row_number_start
from transactional.source_config b
where b.syspk=a.syspk+1 )
where a.file_mnemonic='''||p_file_mnemonic||''' and a.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
/* config file last field update as null otherwise it picks up next format row number*/
execute 'update transactional.source_config a
set row_read_end = null
where f1_modified =''Noise Measurement Test Observations Summary''
and a.file_mnemonic='''||p_file_mnemonic||''' and a.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
execute 'update transactional.source_config a
set run_time=current_timestamp
where a.file_mnemonic='''||p_file_mnemonic||''' and a.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
/* tagging block_row_numbers for each block in process table*/
execute 'insert into staging2.stg_process_table_BUDNI_NMT
select a.* , RANK () OVER ( ORDER BY row_number) as block_row_number,b.block_tag as block_tag
from staging2.stg_specific_table_BUDNI_NMT a
join transactional.source_config b
on a.row_number >=row_number_start
and (a.row_number< row_read_end or row_read_end is null)
and f1_modified=''Test Tractor Specifiactions''
and b.file_mnemonic='''||p_file_mnemonic||''' and b.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''
order by a.row_number';
execute 'insert into staging2.stg_process_table_BUDNI_NMT
select a.* , RANK () OVER ( ORDER BY row_number) as block_row_number,b.block_tag as block_tag
from staging2.stg_specific_table_BUDNI_NMT a
join transactional.source_config b
on a.row_number >=row_number_start
and (a.row_number< row_read_end or row_read_end is null)
and f1_modified=''Noise at bystanders position: Noise Measurement Test''
and b.file_mnemonic='''||p_file_mnemonic||''' and b.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''
order by a.row_number';
execute 'insert into staging2.stg_process_table_BUDNI_NMT
select a.* , RANK () OVER ( ORDER BY row_number) as block_row_number,b.block_tag as block_tag
from staging2.stg_specific_table_BUDNI_NMT a
join transactional.source_config b
on a.row_number >=row_number_start
and (a.row_number< row_read_end or row_read_end is null)
and f1_modified=''Noise at operators ear level: Noise Measurement Test''
and b.file_mnemonic='''||p_file_mnemonic||''' and b.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''
order by a.row_number';
execute 'insert into staging2.stg_process_table_BUDNI_NMT
select a.* , RANK () OVER ( ORDER BY row_number) as block_row_number,b.block_tag as block_tag
from staging2.stg_specific_table_BUDNI_NMT a
join transactional.source_config b
on a.row_number >=row_number_start
and (a.row_number< row_read_end or row_read_end is null)
and f1_modified=''Noise Measurement Test Observations Summary''
and b.file_mnemonic='''||p_file_mnemonic||''' and b.file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''
order by a.row_number';
/* fetching tractor model and make */
select column3 into __make from staging2.stg_process_table_BUDNI_NMT a
where block_tag='BUDNI_NMT_Spec_H1' and block_row_number=3;
select column4 into __model from staging2.stg_process_table_BUDNI_NMT a
where block_tag='BUDNI_NMT_Spec_H1' and block_row_number=3;
/* blocks data loading start - BUDNI_NMT_Spec_H1_block */
perform fw_core.fn_jobctl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Spec_H1_block',__file_mnemonic,__file_sheet_mnemonic,1);
err_block:='BUDNI_NMT_Spec_H1_block';
insert into staging2.BUDNI_NMT_Spec_H1_block
(
make,model,tractor_HP,rated_rpm,configuration,transmission_type,wheel_drive_type,block_row_number)
select column3,column4,column5,column6,column7,column8,column9,block_row_number
from staging2.stg_process_table_BUDNI_NMT where block_tag='BUDNI_NMT_Spec_H1'
and block_row_number=3;
execute 'update staging2.BUDNI_NMT_Spec_H1_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_mnemonic='''||p_file_mnemonic||''',
file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
update staging2.BUDNI_NMT_Spec_H1_block a
set FIP_type=column3,steering_type=column4,Engine_to_PTO_ratio= column5,Ballast_Condition=column6,
Test_Engine_Set_RPM=column7,Type_of_track=column8
from staging2.stg_process_table_BUDNI_NMT b
where b.block_tag='BUDNI_NMT_Spec_H1'
and b.block_row_number=5
and a.file_syspk=b.file_syspk;
perform fw_core.fn_jobctl_block_end(__file_syspk,'BUDNI_NMT_Spec_H1_Block');
/* blocks data loading - BUDNI_NMT_noise_at_bystander_position_block */
perform fw_core.fn_jobctl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_noise_at_bystander_position_block',__file_mnemonic,__file_sheet_mnemonic,2);
err_block:='BUDNI_NMT_noise_at_bystander_position_block';
insert into staging2.BUDNI_NMT_noise_at_bystander_position_block
(
column2,column3,column4,column5,column6,column7,
column8,column9,block_row_number
)
select
column2,column3,column4,column5,column6,column7,
column8,column9,block_row_number
from staging2.stg_process_table_BUDNI_NMT a
where block_tag ='BUDNI_NMT_Noise_at_bystander_position';
update staging2.BUDNI_NMT_noise_at_bystander_position_block
set column2=column3 where block_row_number=1;
update staging2.BUDNI_NMT_noise_at_bystander_position_block a
set column2= b.first_value from (SELECT
block_row_number, column2, value_partition, first_value(column2) over (partition by value_partition order by block_row_number)
FROM (
SELECT
block_row_number,
column2,
sum(case when column2 is null then 0 else 1 end) over (order by block_row_number) as value_partition
FROM staging2.BUDNI_NMT_noise_at_bystander_position_block
ORDER BY block_row_number ASC
) as q) b where a.block_row_number = b.block_row_number ;
update staging2.BUDNI_NMT_noise_at_bystander_position_Block
set trx_record=0 where block_row_number in(1,2);
update staging2.BUDNI_NMT_noise_at_bystander_position_block set make=__make,model=__model;
execute 'update staging2.BUDNI_NMT_noise_at_bystander_position_block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_mnemonic='''||p_file_mnemonic||''',
file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
perform fw_core.fn_jobctl_block_end(__file_syspk,'BUDNI_NMT_noise_at_bystander_position_block');
/* blocks data loading - BUDNI_NMT_Atmos_Cond_1_Block */
perform fw_core.fn_jobctl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Atmos_Cond_1_Block',__file_mnemonic,__file_sheet_mnemonic,3);
err_block:='BUDNI_NMT_Atmos_Cond_1_Block';
insert into staging2.BUDNI_NMT_Atmos_Cond_1_Block
(
column2,column3,column4,column5,column6,column7,
column8,column9,block_row_number
)
select
column2,column3,column4,column5,column6,column7,
column8,column9,block_row_number
from staging2.BUDNI_NMT_noise_at_bystander_position_block a
where block_row_number <=4;
update staging2.BUDNI_NMT_Atmos_Cond_1_Block set make=__make,model=__model;
execute 'update staging2.BUDNI_NMT_Atmos_Cond_1_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_mnemonic='''||p_file_mnemonic||''',
file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
update staging2.BUDNI_NMT_Atmos_Cond_1_Block
set trx_record=0 where
block_row_number in (1,2,3);
perform fw_core.fn_jobctl_block_end(__file_syspk,'BUDNI_NMT_Atmos_Cond_1_Block ');
/* blocks data loading - BUDNI_NMT_Meas_Results_1_Block */
perform fw_core.fn_jobctl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Meas_Results_1_Block',__file_mnemonic,__file_sheet_mnemonic,4);
err_block:='BUDNI_NMT_Meas_Results_1_Block';
insert into staging2.BUDNI_NMT_Meas_Results_1_Block
(
column2,column3,column4,column5,column6,column7,
column8,block_row_number
)
select
column2,column3,column4,column5,column6,column7,
column8,block_row_number
from staging2.BUDNI_NMT_noise_at_bystander_position_block a
where block_row_number>4;
update staging2.BUDNI_NMT_Meas_Results_1_Block
set trx_record=0 where
block_row_number=5;
update staging2.BUDNI_NMT_Meas_Results_1_Block
set column3=column4 where column3 is null ;
update staging2.BUDNI_NMT_Meas_Results_1_Block set make=__make,model=__model;
execute 'update staging2.BUDNI_NMT_Meas_Results_1_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_mnemonic='''||p_file_mnemonic||''',
file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
perform fw_core.fn_jobctl_block_end(__file_syspk,'BUDNI_NMT_Meas_Results_1_Block ');
/* blocks data loading - BUDNI_NMT_Noise_at_operator_ear_level_block */
perform fw_core.fn_jobctl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Noise_at_operator_ear_level_block',__file_mnemonic,__file_sheet_mnemonic,5);
err_block:='BUDNI_NMT_Noise_at_operator_ear_level_block';
insert into staging2.BUDNI_NMT_Noise_at_operator_ear_level_block
(
column2,column3,column4,column5,column6,column7,
column8,column9,block_row_number
)
select
column2,column3,column4,column5,column6,column7,
column8,column9,block_row_number
from staging2.stg_process_table_BUDNI_NMT a
where block_tag ='BUDNI_NMT_Noise_at_operator_ear_level';
update staging2.BUDNI_NMT_Noise_at_operator_ear_level_block set make=__make,model=__model;
execute 'update staging2.BUDNI_NMT_Noise_at_operator_ear_level_block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_mnemonic='''||p_file_mnemonic||''',
file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
update staging2.BUDNI_NMT_Noise_at_operator_ear_level_block
set column2=column3 where block_row_number=1;
update staging2.BUDNI_NMT_Noise_at_operator_ear_level_block a
set column2= b.first_value from (SELECT
block_row_number, column2, value_partition, first_value(column2) over (partition by value_partition order by block_row_number)
FROM (
SELECT
block_row_number,
column2,
sum(case when column2 is null then 0 else 1 end) over (order by block_row_number) as value_partition
FROM staging2.BUDNI_NMT_Noise_at_operator_ear_level_block
ORDER BY block_row_number ASC
) as q) b where a.block_row_number = b.block_row_number ;
perform fw_core.fn_jobctl_block_end(__file_syspk,'BUDNI_NMT_Noise_at_operator_ear_level_block');
/* blocks data loading -BUDNI_NMT_Atmos_Cond_2_Block */
perform fw_core.fn_jobctl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Atmos_Cond_2_Block',__file_mnemonic,__file_sheet_mnemonic,6);
err_block:='BUDNI_NMT_Atmos_Cond_2_Block';
insert into staging2.BUDNI_NMT_Atmos_Cond_2_Block
(
column2,column3,column4,column5,column6,column7,
column8,block_row_number
)
select
column2,column3,column4,column5,column6,column7,
column8,block_row_number
from staging2.BUDNI_NMT_Noise_at_operator_ear_level_block a
where block_row_number<=4;
update staging2.BUDNI_NMT_Atmos_Cond_2_Block set make=__make,model=__model;
execute 'update staging2.BUDNI_NMT_Atmos_Cond_2_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_mnemonic='''||p_file_mnemonic||''',
file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
update staging2.BUDNI_NMT_Atmos_Cond_2_Block
set trx_record=0 where
block_row_number in (1,2,3);
perform fw_core.fn_jobctl_block_end(__file_syspk,'BUDNI_NMT_Atmos_Cond_2_Block');
/* blocks data loading -BUDNI_NMT_Meas_Results_2_Block */
perform fw_core.fn_jobctl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Meas_Results_2_Block',__file_mnemonic,__file_sheet_mnemonic,7);
err_block:='BUDNI_NMT_Meas_Results_2_Block';
insert into staging2.BUDNI_NMT_Meas_Results_2_Block
(
column2,column3,column4,column5,column6,column7,
column8,block_row_number
)
select
column2,column3,column4,column5,column6,column7,
column8,block_row_number
from staging2.BUDNI_NMT_Noise_at_operator_ear_level_block a
where block_row_number>4;
update staging2.BUDNI_NMT_Meas_Results_2_Block
set trx_record=0 where
block_row_number =5;
update BUDNI_NMT_Meas_Results_2_Block set column3=column4 where column3 is null;
update staging2.BUDNI_NMT_Meas_Results_2_Block set make=__make,model=__model;
execute 'update staging2.BUDNI_NMT_Meas_Results_2_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_mnemonic='''||p_file_mnemonic||''',
file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
perform fw_core.fn_jobctl_block_end(__file_syspk,'BUDNI_NMT_Meas_Results_2_Block');
/* blocks data loading -BUDNI_NMT_Test_Obs_Summary_Block */
perform fw_core.fn_jobctl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Test_Obs_Summary_Block',__file_mnemonic,__file_sheet_mnemonic,8);
err_block:='BUDNI_NMT_Test_Obs_Summary_Block';
insert into staging2.BUDNI_NMT_Test_Obs_Summary_Block
(
column2,column3,column4,column5,column6,column7,
column8,column9,block_row_number
)
select
column2,column3,column4,column5,column6,column7,
column8,column9,block_row_number
from staging2.stg_process_table_BUDNI_NMT a
where block_tag='BUDNI_NMT_Test_Obs_Summary' and block_row_number in (1,2,3,4);
update staging2.BUDNI_NMT_Test_Obs_Summary_Block
set trx_record=0 where
block_row_number in (1,2);
update staging2.BUDNI_NMT_Test_Obs_Summary_Block set make=__make,model=__model;
execute 'update staging2.BUDNI_NMT_Test_Obs_Summary_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_mnemonic='''||p_file_mnemonic||''',
file_sheet_mnemonic='''||p_file_sheet_mnemonic||'''';
perform fw_core.fn_jobctl_block_end(__file_syspk,'BUDNI_NMT_Test_Obs_Summary_Block');
perform fw_core.fn_insert_db_error ( __client_id, __function_id, 1001, 'Compegence', __file_syspk ,__file_mnemonic,__file_sheet_mnemonic ,null,'stg2', 'fn_BUDNI_NMT_Block', err_state, err_msg, err_detail, err_hint, err_context,'success');
end
$function$
;