Files
MMT/deployment-20210427T103328Z-001/deployment/budni/BUDNI_NMT_STG2.sql
2021-04-27 16:13:33 +05:30

508 lines
19 KiB
PL/PgSQL
Raw Permalink 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 mmt_staging2.fn_BUDNI_NMT_Block ;
CREATE OR REPLACE FUNCTION mmt_staging2.fn_BUDNI_NMT_Block(p_client_id int,p_function_id int, p_file_format text,
p_sheet_mnemonic text, p_file_syspk int)
RETURNS text AS $$
declare __make text;
declare __model text;
declare __client_id int :=p_client_id;
declare __function_id int :=p_function_id;
declare __file_format text :=p_file_format;
declare __sheet_mnemonic text :=p_sheet_mnemonic;
declare __file_syspk int :=p_file_syspk;
declare v_state text;
declare v_msg text;
declare v_detail text;
declare v_hint text;
declare v_context text;
declare _error int;
declare v_block text;
begin
SET search_path TO mmt_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 mmt_staging2.fn_BUDNI_NMT_Block(20,1,'BUDNI','BUDNI_NMT',261);
************************************************************************************/
/* rerunnability - delete block tables and update config tables to null */
truncate table mmt_staging2.BUDNI_NMT_Spec_H1_Block;
truncate table mmt_staging2.BUDNI_NMT_noise_at_bystander_position_block;
truncate table mmt_staging2.BUDNI_NMT_Atmos_Cond_1_Block;
truncate table mmt_staging2.BUDNI_NMT_Meas_Results_1_Block;
truncate table mmt_staging2.BUDNI_NMT_noise_at_operator_ear_level_block;
truncate table mmt_staging2.BUDNI_NMT_Atmos_Cond_2_Block;
truncate table mmt_staging2.BUDNI_NMT_Meas_Results_2_Block;
truncate table mmt_staging2.BUDNI_NMT_Test_Obs_Summary_Block;
truncate table mmt_staging2.stg_specific_table_BUDNI_NMT;
truncate table mmt_staging2.stg_process_table_BUDNI_NMT;
execute 'delete from mmt_ods.fw_jobctrl_file_sheet_block_run_schedule where file_syspk='||p_file_syspk||' and sheet_mnemonic='''||p_sheet_mnemonic||'''';
execute 'update mmt_ods.mmt_config a
set row_number_start=null,
row_previous_number=null,
row_read_end=null,
run_time=null
where a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''';
/* transfer data from generic to specific for BUDNI */
execute 'insert into mmt_staging2.stg_specific_table_BUDNI_NMT
select * from mmt_staging1.mmt_staging_generic_table a
where a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''
and a.file_syspk='||p_file_syspk||'';
/* trimming data */
update mmt_staging2.stg_specific_table_BUDNI_LCG set column3 = TRIM (TRAILING FROM column3 );
update mmt_staging2.stg_specific_table_BUDNI_LCG set column3 = TRIM (LEADING FROM column3 );
update mmt_ods.mmt_config set F1_modified = TRIM (TRAILING FROM F1_modified);
update mmt_ods.mmt_config set F1_modified = TRIM (LEADING FROM F1_modified) ;
update mmt_ods.mmt_config set F1_source=F1_modified;
update mmt_ods.mmt_config set F1_source = TRIM (TRAILING FROM F1_source);
update mmt_ods.mmt_config set F1_source = TRIM (LEADING FROM F1_source) ;
/* keyword match in config table*/
execute 'update mmt_ods.mmt_config a set f1_source = replace(f1_source,''_1'','''')
where a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''';
execute 'update mmt_ods.mmt_config a
set row_number_start=(select min(b.row_number)
from mmt_staging2.stg_specific_table_BUDNI_NMT b
where trim(upper(F1_source))= trim(upper(column3))
and b.is_rownumber_fetched is null)
where a.row_number_start is null
and a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''';
/* reverese update in process table for match*/
execute 'update mmt_staging2.stg_specific_table_BUDNI_NMT a
set is_rownumber_fetched=1
from mmt_ods.mmt_config b
where trim(upper(F1_source))= trim(upper(column3))
and b.row_number_start=a.row_number
and is_rownumber_fetched is null and a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''';
execute 'update mmt_ods.mmt_config a set f1_source = replace(f1_source,''_2'','''')
where a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''';
execute 'update mmt_ods.mmt_config a
set row_number_start=(select min(b.row_number)
from mmt_staging2.stg_specific_table_BUDNI_NMT b
where trim(upper(F1_source))= trim(upper(column3))
and b.is_rownumber_fetched is null)
where a.row_number_start is null
and a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''';
execute 'update mmt_staging2.stg_specific_table_BUDNI_NMT a
set is_rownumber_fetched=1
from mmt_ods.mmt_config b
where trim(upper(F1_source))= trim(upper(column3))
and b.row_number_start=a.row_number
and is_rownumber_fetched is null and a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''';
execute 'update mmt_ods.mmt_config a set row_previous_number=row_number_start-1
where a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''';
execute 'update mmt_ods.mmt_config a
set row_read_end= (select b.row_number_start
from mmt_ods.mmt_config b
where b.syspk=a.syspk+1 )
where a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''';
/* config file last field update as null otherwise it picks up next format row number*/
execute 'update mmt_ods.mmt_config a
set row_read_end = null
where f1_modified =''Noise Measurement Test Observations Summary''
and a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''';
execute 'update mmt_ods.mmt_config a
set run_time=current_timestamp
where a.file_format='''||p_file_format||''' and a.sheet_mnemonic='''||p_sheet_mnemonic||'''';
/* tagging ranks for each block in process table*/
execute 'insert into mmt_staging2.stg_process_table_BUDNI_NMT
select a.* , RANK () OVER ( ORDER BY row_number) as rank,b.rank_tag as rank_tag
from mmt_staging2.stg_specific_table_BUDNI_NMT a
join mmt_ods.mmt_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_format='''||p_file_format||''' and b.sheet_mnemonic='''||p_sheet_mnemonic||'''
order by a.row_number';
execute 'insert into mmt_staging2.stg_process_table_BUDNI_NMT
select a.* , RANK () OVER ( ORDER BY row_number) as rank,b.rank_tag as rank_tag
from mmt_staging2.stg_specific_table_BUDNI_NMT a
join mmt_ods.mmt_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_format='''||p_file_format||''' and b.sheet_mnemonic='''||p_sheet_mnemonic||'''
order by a.row_number';
execute 'insert into mmt_staging2.stg_process_table_BUDNI_NMT
select a.* , RANK () OVER ( ORDER BY row_number) as rank,b.rank_tag as rank_tag
from mmt_staging2.stg_specific_table_BUDNI_NMT a
join mmt_ods.mmt_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_format='''||p_file_format||''' and b.sheet_mnemonic='''||p_sheet_mnemonic||'''
order by a.row_number';
execute 'insert into mmt_staging2.stg_process_table_BUDNI_NMT
select a.* , RANK () OVER ( ORDER BY row_number) as rank,b.rank_tag as rank_tag
from mmt_staging2.stg_specific_table_BUDNI_NMT a
join mmt_ods.mmt_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_format='''||p_file_format||''' and b.sheet_mnemonic='''||p_sheet_mnemonic||'''
order by a.row_number';
/* fetching tractor model and make */
select column3 into __make from mmt_staging2.stg_process_table_BUDNI_NMT a
where rank_tag='BUDNI_NMT_Spec_H1' and rank=3;
select column4 into __model from mmt_staging2.stg_process_table_BUDNI_NMT a
where rank_tag='BUDNI_NMT_Spec_H1' and rank=3;
/* blocks data loading start - BUDNI_NMT_Spec_H1_block */
perform mmt_staging2.fn_jobctrl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Spec_H1_block',__file_format,__sheet_mnemonic,1);
v_block:='BUDNI_NMT_Spec_H1_block';
insert into mmt_staging2.BUDNI_NMT_Spec_H1_block
(
make,model,tractor_HP,rated_rpm,configuration,transmission_type,wheel_drive_type,rank)
select column3,column4,column5,column6,column7,column8,column9,rank
from mmt_staging2.stg_process_table_BUDNI_NMT where rank_tag='BUDNI_NMT_Spec_H1'
and rank=3;
execute 'update mmt_staging2.BUDNI_NMT_Spec_H1_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_format='''||p_file_format||''',
sheet_mnemonic='''||p_sheet_mnemonic||'''';
update mmt_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 mmt_staging2.stg_process_table_BUDNI_NMT b
where b.rank_tag='BUDNI_NMT_Spec_H1'
and b.rank=5
and a.file_syspk=b.file_syspk;
update mmt_staging2.BUDNI_NMT_Spec_H1_Block
set ods_record=0 where rank in(1,2);
perform mmt_staging2.fn_jobctrl_block_end(__file_syspk,'BUDNI_NMT_Spec_H1_Block');
/* blocks data loading - BUDNI_NMT_noise_at_bystander_position_block */
perform mmt_staging2.fn_jobctrl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_noise_at_bystander_position_block',__file_format,__sheet_mnemonic,2);
v_block:='BUDNI_NMT_noise_at_bystander_position_block';
insert into mmt_staging2.BUDNI_NMT_noise_at_bystander_position_block
(
column2,column3,column4,column5,column6,column7,
column8,column9,rank
)
select
column2,column3,column4,column5,column6,column7,
column8,column9,rank
from mmt_staging2.stg_process_table_BUDNI_NMT a
where rank_tag ='BUDNI_NMT_Noise_at_bystander_position';
update mmt_staging2.BUDNI_NMT_noise_at_bystander_position_block
set column2=column3 where rank=1;
update mmt_staging2.BUDNI_NMT_noise_at_bystander_position_block a
set column2= b.first_value from (SELECT
rank, column2, value_partition, first_value(column2) over (partition by value_partition order by rank)
FROM (
SELECT
rank,
column2,
sum(case when column2 is null then 0 else 1 end) over (order by rank) as value_partition
FROM mmt_staging2.BUDNI_NMT_noise_at_bystander_position_block
ORDER BY rank ASC
) as q) b where a.rank = b.rank ;
update mmt_staging2.BUDNI_NMT_noise_at_bystander_position_Block
set ods_record=0 where rank in(1,2);
update mmt_staging2.BUDNI_NMT_noise_at_bystander_position_block set make=__make,model=__model;
execute 'update mmt_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_format='''||p_file_format||''',
sheet_mnemonic='''||p_sheet_mnemonic||'''';
perform mmt_staging2.fn_jobctrl_block_end(__file_syspk,'BUDNI_NMT_noise_at_bystander_position_block');
/* blocks data loading - BUDNI_NMT_Atmos_Cond_1_Block */
perform mmt_staging2.fn_jobctrl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Atmos_Cond_1_Block',__file_format,__sheet_mnemonic,3);
v_block:='BUDNI_NMT_Atmos_Cond_1_Block';
insert into mmt_staging2.BUDNI_NMT_Atmos_Cond_1_Block
(
column2,column3,column4,column5,column6,column7,
column8,column9,rank
)
select
column2,column3,column4,column5,column6,column7,
column8,column9,rank
from mmt_staging2.BUDNI_NMT_noise_at_bystander_position_block a
where rank <=4;
update mmt_staging2.BUDNI_NMT_Atmos_Cond_1_Block set make=__make,model=__model;
execute 'update mmt_staging2.BUDNI_NMT_Atmos_Cond_1_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_format='''||p_file_format||''',
sheet_mnemonic='''||p_sheet_mnemonic||'''';
update mmt_staging2.BUDNI_NMT_Atmos_Cond_1_Block
set ods_record=0 where
rank in (1,2,3);
perform mmt_staging2.fn_jobctrl_block_end(__file_syspk,'BUDNI_NMT_Atmos_Cond_1_Block ');
/* blocks data loading - BUDNI_NMT_Meas_Results_1_Block */
perform mmt_staging2.fn_jobctrl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Meas_Results_1_Block',__file_format,__sheet_mnemonic,4);
v_block:='BUDNI_NMT_Meas_Results_1_Block';
insert into mmt_staging2.BUDNI_NMT_Meas_Results_1_Block
(
column2,column3,column4,column5,column6,column7,
column8,rank
)
select
column2,column3,column4,column5,column6,column7,
column8,rank
from mmt_staging2.BUDNI_NMT_noise_at_bystander_position_block a
where rank>4;
update mmt_staging2.BUDNI_NMT_Meas_Results_1_Block
set ods_record=0 where
rank=5;
update mmt_staging2.BUDNI_NMT_Meas_Results_1_Block
set column3=column4 where column3 is null ;
update mmt_staging2.BUDNI_NMT_Meas_Results_1_Block set make=__make,model=__model;
execute 'update mmt_staging2.BUDNI_NMT_Meas_Results_1_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_format='''||p_file_format||''',
sheet_mnemonic='''||p_sheet_mnemonic||'''';
perform mmt_staging2.fn_jobctrl_block_end(__file_syspk,'BUDNI_NMT_Meas_Results_1_Block ');
/* blocks data loading - BUDNI_NMT_Noise_at_operator_ear_level_block */
perform mmt_staging2.fn_jobctrl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Noise_at_operator_ear_level_block',__file_format,__sheet_mnemonic,5);
v_block:='BUDNI_NMT_Noise_at_operator_ear_level_block';
insert into mmt_staging2.BUDNI_NMT_Noise_at_operator_ear_level_block
(
column2,column3,column4,column5,column6,column7,
column8,column9,rank
)
select
column2,column3,column4,column5,column6,column7,
column8,column9,rank
from mmt_staging2.stg_process_table_BUDNI_NMT a
where rank_tag ='BUDNI_NMT_Noise_at_operator_ear_level';
update mmt_staging2.BUDNI_NMT_Noise_at_operator_ear_level_block set make=__make,model=__model;
execute 'update mmt_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_format='''||p_file_format||''',
sheet_mnemonic='''||p_sheet_mnemonic||'''';
update mmt_staging2.BUDNI_NMT_Noise_at_operator_ear_level_block
set column2=column3 where rank=1;
update mmt_staging2.BUDNI_NMT_Noise_at_operator_ear_level_block a
set column2= b.first_value from (SELECT
rank, column2, value_partition, first_value(column2) over (partition by value_partition order by rank)
FROM (
SELECT
rank,
column2,
sum(case when column2 is null then 0 else 1 end) over (order by rank) as value_partition
FROM mmt_staging2.BUDNI_NMT_Noise_at_operator_ear_level_block
ORDER BY rank ASC
) as q) b where a.rank = b.rank ;
perform mmt_staging2.fn_jobctrl_block_end(__file_syspk,'BUDNI_NMT_Noise_at_operator_ear_level_block');
/* blocks data loading -BUDNI_NMT_Atmos_Cond_2_Block */
perform mmt_staging2.fn_jobctrl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Atmos_Cond_2_Block',__file_format,__sheet_mnemonic,6);
v_block:='BUDNI_NMT_Atmos_Cond_2_Block';
insert into mmt_staging2.BUDNI_NMT_Atmos_Cond_2_Block
(
column2,column3,column4,column5,column6,column7,
column8,rank
)
select
column2,column3,column4,column5,column6,column7,
column8,rank
from mmt_staging2.BUDNI_NMT_Noise_at_operator_ear_level_block a
where rank<=4;
update mmt_staging2.BUDNI_NMT_Atmos_Cond_2_Block set make=__make,model=__model;
execute 'update mmt_staging2.BUDNI_NMT_Atmos_Cond_2_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_format='''||p_file_format||''',
sheet_mnemonic='''||p_sheet_mnemonic||'''';
update mmt_staging2.BUDNI_NMT_Atmos_Cond_2_Block
set ods_record=0 where
rank in (1,2,3);
perform mmt_staging2.fn_jobctrl_block_end(__file_syspk,'BUDNI_NMT_Atmos_Cond_2_Block');
/* blocks data loading -BUDNI_NMT_Meas_Results_2_Block */
perform mmt_staging2.fn_jobctrl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Meas_Results_2_Block',__file_format,__sheet_mnemonic,7);
v_block:='BUDNI_NMT_Meas_Results_2_Block';
insert into mmt_staging2.BUDNI_NMT_Meas_Results_2_Block
(
column2,column3,column4,column5,column6,column7,
column8,rank
)
select
column2,column3,column4,column5,column6,column7,
column8,rank
from mmt_staging2.BUDNI_NMT_Noise_at_operator_ear_level_block a
where rank>4;
update mmt_staging2.BUDNI_NMT_Meas_Results_2_Block
set ods_record=0 where
rank =5;
update BUDNI_NMT_Meas_Results_2_Block set column3=column4 where column3 is null;
update mmt_staging2.BUDNI_NMT_Meas_Results_2_Block set make=__make,model=__model;
execute 'update mmt_staging2.BUDNI_NMT_Meas_Results_2_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_format='''||p_file_format||''',
sheet_mnemonic='''||p_sheet_mnemonic||'''';
perform mmt_staging2.fn_jobctrl_block_end(__file_syspk,'BUDNI_NMT_Meas_Results_2_Block');
/* blocks data loading -BUDNI_NMT_Test_Obs_Summary_Block */
perform mmt_staging2.fn_jobctrl_block_begin(__client_id,__function_id,__file_syspk,
'BUDNI_NMT_Test_Obs_Summary_Block',__file_format,__sheet_mnemonic,8);
v_block:='BUDNI_NMT_Test_Obs_Summary_Block';
insert into mmt_staging2.BUDNI_NMT_Test_Obs_Summary_Block
(
column2,column3,column4,column5,column6,column7,
column8,column9,rank
)
select
column2,column3,column4,column5,column6,column7,
column8,column9,rank
from mmt_staging2.stg_process_table_BUDNI_NMT a
where rank_tag='BUDNI_NMT_Test_Obs_Summary' and rank in (1,2,3,4);
update mmt_staging2.BUDNI_NMT_Test_Obs_Summary_Block
set ods_record=0 where
rank in (1,2);
update mmt_staging2.BUDNI_NMT_Test_Obs_Summary_Block set make=__make,model=__model;
execute 'update mmt_staging2.BUDNI_NMT_Test_Obs_Summary_Block set
client_id='||p_client_id||',
function_id='||p_function_id||',
file_syspk='||p_file_syspk||',
file_format='''||p_file_format||''',
sheet_mnemonic='''||p_sheet_mnemonic||'''';
perform mmt_staging2.fn_jobctrl_block_end(__file_syspk,'BUDNI_NMT_Test_Obs_Summary_Block');
v_context := '';
perform mmt_staging2.mmt_insert_db_error ( __client_id, __function_id, 1001, 'Compegence', __file_syspk ,__file_format,__sheet_mnemonic ,null,'stg2', 'fn_BUDNI_NMT_Block', v_state, v_msg, v_detail, v_hint, v_context,'success');
return v_context;
EXCEPTION when OTHERS then
GET STACKED DIAGNOSTICS
v_state = returned_sqlstate,
v_msg = message_text,
v_detail = pg_exception_detail,
v_hint = pg_exception_hint,
v_context = pg_exception_context;
perform mmt_staging2.mmt_insert_db_error ( __client_id, __function_id, 1001, 'Compegence', __file_syspk ,__file_format,__sheet_mnemonic ,v_block,'stg2', 'fn_BUDNI_NMT_Block', v_state, v_msg, v_detail, v_hint, v_context,'error');
return v_context;
end
$$ LANGUAGE plpgsql;