diff --git a/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl b/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl index 7f19e37..56f74de 100644 --- a/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl +++ b/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl @@ -196,46 +196,16 @@ reason_registration Y - - residence - residence - Y - - - start_date_residence - start_date_residence - Y - - - end_date_residence - end_date_residence - Y - - - address_place_stay - address_place_stay - Y - - - start_date_place_stay - start_date_place_stay - Y - - - end_date_place_stay - end_date_place_stay - Y - - - type_place_stay - type_place_stay - Y - id_ern id_ern Y + + marital_status + marital_status + Y + N @@ -295,29 +265,8 @@ ervu_person_registry N 0 - with -adresses as ( -- по одному ли адресу тут должно быть?? -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true -WHERE '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp -GROUP BY - r.id -) -SELECT - r.system_pgs_status, + SELECT + r.system_pgs_status, r.full_name, r.last_name, r.first_name, @@ -335,7 +284,7 @@ SELECT r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, @@ -354,21 +303,6 @@ SELECT ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет mrr.value AS reason_registration, - adr.actualAddress as residence, -- адрес места жительства - adr.actualAddress_regDateStart as start_date_residence, -- дата регистрации по месту жительства - adr.actualAddress_regDateEnd as end_date_residence, -- дата снятия с регистрации по месту жительства - adr.residenceAddress as address_place_stay, -- адресс регистрации по месту пребывания - adr.residenceAddress_regDateStart as start_date_place_stay, -- дата регистрации по месту пребывания - adr.residenceAddress_regDateEnd as end_date_place_stay, -- дата снятия с регистрации по месту пребывания - case - when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null - end as type_place_stay, -- тип регистрации - -- address_actual -- Адрес фактического проживания ***1 - -- source_info_actual -- Источник сведений о месте фактического проживания ***1 - -- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1 - -- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1 system_id_ern AS id_ern -- id единого регистра населения FROM public.recruits AS r JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F1}' != '' -- Проверка на пустую строку @@ -384,7 +318,6 @@ LEFT JOIN ( JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) --JOIN public.recruits_history rh on rh.recruit_id=r.id --WHERE r.system_update_date >= '${UP_D}' -join adresses adr ON r.recruit_id=adr.recruit_id -- ***1 - страница личные сведения есть поле, нет данных Y diff --git a/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl b/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl index 4326e40..a0856e8 100644 --- a/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl +++ b/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl @@ -153,46 +153,16 @@ reason_registration Y - - residence - residence - Y - - - start_date_residence - start_date_residence - Y - - - end_date_residence - end_date_residence - Y - - - address_place_stay - address_place_stay - Y - - - start_date_place_stay - start_date_place_stay - Y - - - end_date_place_stay - end_date_place_stay - Y - - - type_place_stay - type_place_stay - Y - id_ern id_ern Y + + marital_status + marital_status + Y + N @@ -215,29 +185,8 @@ ervu_person_registry N 0 - with -adresses as ( -- по одному ли адресу тут должно быть?? -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true -WHERE '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F2}' - AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp -GROUP BY - r.id -) -SELECT - r.system_pgs_status, + SELECT + r.system_pgs_status, r.full_name, r.last_name, r.first_name, @@ -255,7 +204,7 @@ SELECT r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, @@ -274,21 +223,6 @@ SELECT ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет mrr.value AS reason_registration, - adr.actualAddress as residence, -- адрес места жительства - adr.actualAddress_regDateStart as start_date_residence, -- дата регистрации по месту жительства - adr.actualAddress_regDateEnd as end_date_residence, -- дата снятия с регистрации по месту жительства - adr.residenceAddress as address_place_stay, -- адресс регистрации по месту пребывания - adr.residenceAddress_regDateStart as start_date_place_stay, -- дата регистрации по месту пребывания - adr.residenceAddress_regDateEnd as end_date_place_stay, -- дата снятия с регистрации по месту пребывания - case - when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null - end as type_place_stay, -- тип регистрации - -- address_actual -- Адрес фактического проживания ***1 - -- source_info_actual -- Источник сведений о месте фактического проживания ***1 - -- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1 - -- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1 system_id_ern AS id_ern -- id единого регистра населения FROM public.recruits AS r JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F2}' != '' -- Проверка на пустую строку @@ -304,7 +238,6 @@ LEFT JOIN ( JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) --JOIN public.recruits_history rh on rh.recruit_id=r.id --WHERE r.system_update_date >= '${UP_D}' -join adresses adr ON r.recruit_id=adr.recruit_id -- ***1 - страница личные сведения есть поле, нет данных Y diff --git a/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl b/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl index cafff2b..35b85d2 100644 --- a/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl +++ b/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl @@ -153,46 +153,16 @@ reason_registration Y - - residence - residence - Y - - - start_date_residence - start_date_residence - Y - - - end_date_residence - end_date_residence - Y - - - address_place_stay - address_place_stay - Y - - - start_date_place_stay - start_date_place_stay - Y - - - end_date_place_stay - end_date_place_stay - Y - - - type_place_stay - type_place_stay - Y - id_ern id_ern Y + + marital_status + marital_status + Y + N @@ -215,29 +185,8 @@ ervu_person_registry N 0 - with -adresses as ( -- по одному ли адресу тут должно быть?? -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true -WHERE '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F3}' - AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp -GROUP BY - r.id -) -SELECT - r.system_pgs_status, + SELECT + r.system_pgs_status, r.full_name, r.last_name, r.first_name, @@ -255,7 +204,7 @@ SELECT r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, @@ -274,21 +223,6 @@ SELECT ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет mrr.value AS reason_registration, - adr.actualAddress as residence, -- адрес места жительства - adr.actualAddress_regDateStart as start_date_residence, -- дата регистрации по месту жительства - adr.actualAddress_regDateEnd as end_date_residence, -- дата снятия с регистрации по месту жительства - adr.residenceAddress as address_place_stay, -- адресс регистрации по месту пребывания - adr.residenceAddress_regDateStart as start_date_place_stay, -- дата регистрации по месту пребывания - adr.residenceAddress_regDateEnd as end_date_place_stay, -- дата снятия с регистрации по месту пребывания - case - when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null - end as type_place_stay, -- тип регистрации - -- address_actual -- Адрес фактического проживания ***1 - -- source_info_actual -- Источник сведений о месте фактического проживания ***1 - -- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1 - -- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1 system_id_ern AS id_ern -- id единого регистра населения FROM public.recruits AS r JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F3}' != '' -- Проверка на пустую строку @@ -304,7 +238,6 @@ LEFT JOIN ( JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) --JOIN public.recruits_history rh on rh.recruit_id=r.id --WHERE r.system_update_date >= '${UP_D}' -join adresses adr ON r.recruit_id=adr.recruit_id -- ***1 - страница личные сведения есть поле, нет данных Y diff --git a/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl b/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl index fb42956..b73f9d0 100644 --- a/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl +++ b/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl @@ -153,46 +153,16 @@ reason_registration Y - - residence - residence - Y - - - start_date_residence - start_date_residence - Y - - - end_date_residence - end_date_residence - Y - - - address_place_stay - address_place_stay - Y - - - start_date_place_stay - start_date_place_stay - Y - - - end_date_place_stay - end_date_place_stay - Y - - - type_place_stay - type_place_stay - Y - id_ern id_ern Y + + marital_status + marital_status + Y + N @@ -215,29 +185,8 @@ ervu_person_registry N 0 - with -adresses as ( -- по одному ли адресу тут должно быть?? -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true -WHERE '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F4}' - AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp -GROUP BY - r.id -) -SELECT - r.system_pgs_status, + SELECT + r.system_pgs_status, r.full_name, r.last_name, r.first_name, @@ -255,7 +204,7 @@ SELECT r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, @@ -274,21 +223,6 @@ SELECT ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет mrr.value AS reason_registration, - adr.actualAddress as residence, -- адрес места жительства - adr.actualAddress_regDateStart as start_date_residence, -- дата регистрации по месту жительства - adr.actualAddress_regDateEnd as end_date_residence, -- дата снятия с регистрации по месту жительства - adr.residenceAddress as address_place_stay, -- адресс регистрации по месту пребывания - adr.residenceAddress_regDateStart as start_date_place_stay, -- дата регистрации по месту пребывания - adr.residenceAddress_regDateEnd as end_date_place_stay, -- дата снятия с регистрации по месту пребывания - case - when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null - end as type_place_stay, -- тип регистрации - -- address_actual -- Адрес фактического проживания ***1 - -- source_info_actual -- Источник сведений о месте фактического проживания ***1 - -- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1 - -- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1 system_id_ern AS id_ern -- id единого регистра населения FROM public.recruits AS r JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F4}' != '' -- Проверка на пустую строку @@ -304,7 +238,6 @@ LEFT JOIN ( JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) --JOIN public.recruits_history rh on rh.recruit_id=r.id --WHERE r.system_update_date >= '${UP_D}' -join adresses adr ON r.recruit_id=adr.recruit_id -- ***1 - страница личные сведения есть поле, нет данных Y diff --git a/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl b/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl index 9b1237a..c82c6c8 100644 --- a/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl +++ b/map_v1/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl @@ -153,46 +153,16 @@ reason_registration Y - - residence - residence - Y - - - start_date_residence - start_date_residence - Y - - - end_date_residence - end_date_residence - Y - - - address_place_stay - address_place_stay - Y - - - start_date_place_stay - start_date_place_stay - Y - - - end_date_place_stay - end_date_place_stay - Y - - - type_place_stay - type_place_stay - Y - id_ern id_ern Y + + marital_status + marital_status + Y + N @@ -215,29 +185,8 @@ ervu_person_registry N 0 - with -adresses as ( -- по одному ли адресу тут должно быть?? -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true -WHERE '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F5}' - AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp -GROUP BY - r.id -) -SELECT - r.system_pgs_status, + SELECT + r.system_pgs_status, r.full_name, r.last_name, r.first_name, @@ -255,7 +204,7 @@ SELECT r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, @@ -274,21 +223,6 @@ SELECT ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет mrr.value AS reason_registration, - adr.actualAddress as residence, -- адрес места жительства - adr.actualAddress_regDateStart as start_date_residence, -- дата регистрации по месту жительства - adr.actualAddress_regDateEnd as end_date_residence, -- дата снятия с регистрации по месту жительства - adr.residenceAddress as address_place_stay, -- адресс регистрации по месту пребывания - adr.residenceAddress_regDateStart as start_date_place_stay, -- дата регистрации по месту пребывания - adr.residenceAddress_regDateEnd as end_date_place_stay, -- дата снятия с регистрации по месту пребывания - case - when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null - end as type_place_stay, -- тип регистрации - -- address_actual -- Адрес фактического проживания ***1 - -- source_info_actual -- Источник сведений о месте фактического проживания ***1 - -- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1 - -- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1 system_id_ern AS id_ern -- id единого регистра населения FROM public.recruits AS r JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F5}' != '' -- Проверка на пустую строку @@ -304,7 +238,6 @@ LEFT JOIN ( JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) --JOIN public.recruits_history rh on rh.recruit_id=r.id --WHERE r.system_update_date >= '${UP_D}' -join adresses adr ON r.recruit_id=adr.recruit_id -- ***1 - страница личные сведения есть поле, нет данных Y diff --git a/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow1.hpl b/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow1.hpl index cf2529f..32bcb16 100644 --- a/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow1.hpl +++ b/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow1.hpl @@ -44,6 +44,7 @@ = recruit_id recruit_id + ervu_dashboard citizen
@@ -152,46 +153,16 @@ reason_registration Y - - residence - residence - Y - - - start_date_residence - start_date_residence - Y - - - end_date_residence - end_date_residence - Y - - - address_place_stay - address_place_stay - Y - - - start_date_place_stay - start_date_place_stay - Y - - - end_date_place_stay - end_date_place_stay - Y - - - type_place_stay - type_place_stay - Y - id_ern id_ern Y + + marital_status + marital_status + Y + N @@ -214,30 +185,8 @@ ervu_person_registry N 0 - with -adresses as ( -- по одному ли адресу тут должно быть?? -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true -WHERE '${M_R_CR_DATE}'::timestamp >= r.system_create_date - AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp - AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F1}' -GROUP BY - r.id -) -SELECT - r.system_pgs_status, + SELECT + r.system_pgs_status, r.full_name, r.last_name, r.first_name, @@ -255,7 +204,7 @@ SELECT --r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, @@ -271,22 +220,7 @@ SELECT WHEN ddd.hidden IS false then ddd.hidden ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет - mrr.value AS reason_registration - adr.actualAddress as residence, -- адрес места жительства - adr.actualAddress_regDateStart as start_date_residence, -- дата регистрации по месту жительства - adr.actualAddress_regDateEnd as end_date_residence, -- дата снятия с регистрации по месту жительства - adr.residenceAddress as address_place_stay, -- адресс регистрации по месту пребывания - adr.residenceAddress_regDateStart as start_date_place_stay, -- дата регистрации по месту пребывания - adr.residenceAddress_regDateEnd as end_date_place_stay, -- дата снятия с регистрации по месту пребывания - case - when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null - end as type_place_stay, -- тип регистрации - -- address_actual -- Адрес фактического проживания ***1 - -- source_info_actual -- Источник сведений о месте фактического проживания ***1 - -- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1 - -- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1 + mrr.value AS reason_registration, system_id_ern AS id_ern -- id единого регистра населения FROM public.recruits AS r JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F1}' != '' -- Проверка на пустую строку @@ -303,7 +237,6 @@ LEFT JOIN ( JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) --JOIN public.recruits_history rh on rh.recruit_id=r.id --WHERE r.system_update_date >= '${UP_D}' -join adresses adr ON r.recruit_id=adr.recruit_id -- ***1 - страница личные сведения есть поле, нет данных Y diff --git a/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow2.hpl b/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow2.hpl index 9ce6d7a..be496f5 100644 --- a/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow2.hpl +++ b/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow2.hpl @@ -44,6 +44,7 @@ = recruit_id recruit_id + ervu_dashboard citizen
@@ -152,46 +153,16 @@ reason_registration Y - - residence - residence - Y - - - start_date_residence - start_date_residence - Y - - - end_date_residence - end_date_residence - Y - - - address_place_stay - address_place_stay - Y - - - start_date_place_stay - start_date_place_stay - Y - - - end_date_place_stay - end_date_place_stay - Y - - - type_place_stay - type_place_stay - Y - id_ern id_ern Y + + marital_status + marital_status + Y + N @@ -214,30 +185,8 @@ ervu_person_registry N 0 - with -adresses as ( -- по одному ли адресу тут должно быть?? -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true -WHERE '${M_R_CR_DATE}'::timestamp >= r.system_create_date - AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp - AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F2}' -GROUP BY - r.id -) -SELECT - r.system_pgs_status, + SELECT + r.system_pgs_status, r.full_name, r.last_name, r.first_name, @@ -255,7 +204,7 @@ SELECT --r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, @@ -271,22 +220,7 @@ SELECT WHEN ddd.hidden IS false then ddd.hidden ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет - mrr.value AS reason_registration - adr.actualAddress as residence, -- адрес места жительства - adr.actualAddress_regDateStart as start_date_residence, -- дата регистрации по месту жительства - adr.actualAddress_regDateEnd as end_date_residence, -- дата снятия с регистрации по месту жительства - adr.residenceAddress as address_place_stay, -- адресс регистрации по месту пребывания - adr.residenceAddress_regDateStart as start_date_place_stay, -- дата регистрации по месту пребывания - adr.residenceAddress_regDateEnd as end_date_place_stay, -- дата снятия с регистрации по месту пребывания - case - when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null - end as type_place_stay, -- тип регистрации - -- address_actual -- Адрес фактического проживания ***1 - -- source_info_actual -- Источник сведений о месте фактического проживания ***1 - -- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1 - -- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1 + mrr.value AS reason_registration, system_id_ern AS id_ern -- id единого регистра населения FROM public.recruits AS r JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F2}' != '' -- Проверка на пустую строку @@ -303,7 +237,6 @@ LEFT JOIN ( JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) --JOIN public.recruits_history rh on rh.recruit_id=r.id --WHERE r.system_update_date >= '${UP_D}' -join adresses adr ON r.recruit_id=adr.recruit_id -- ***1 - страница личные сведения есть поле, нет данных Y diff --git a/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow3.hpl b/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow3.hpl index 4759817..1bdbe0a 100644 --- a/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow3.hpl +++ b/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow3.hpl @@ -44,6 +44,7 @@ = recruit_id recruit_id + ervu_dashboard citizen
@@ -152,46 +153,16 @@ reason_registration Y - - residence - residence - Y - - - start_date_residence - start_date_residence - Y - - - end_date_residence - end_date_residence - Y - - - address_place_stay - address_place_stay - Y - - - start_date_place_stay - start_date_place_stay - Y - - - end_date_place_stay - end_date_place_stay - Y - - - type_place_stay - type_place_stay - Y - id_ern id_ern Y + + marital_status + marital_status + Y + N @@ -214,30 +185,8 @@ ervu_person_registry N 0 - with -adresses as ( -- по одному ли адресу тут должно быть?? -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true -WHERE '${M_R_CR_DATE}'::timestamp >= r.system_create_date - AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp - AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F3}' -GROUP BY - r.id -) -SELECT - r.system_pgs_status, + SELECT + r.system_pgs_status, r.full_name, r.last_name, r.first_name, @@ -255,7 +204,7 @@ SELECT --r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, @@ -271,22 +220,7 @@ SELECT WHEN ddd.hidden IS false then ddd.hidden ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет - mrr.value AS reason_registration - adr.actualAddress as residence, -- адрес места жительства - adr.actualAddress_regDateStart as start_date_residence, -- дата регистрации по месту жительства - adr.actualAddress_regDateEnd as end_date_residence, -- дата снятия с регистрации по месту жительства - adr.residenceAddress as address_place_stay, -- адресс регистрации по месту пребывания - adr.residenceAddress_regDateStart as start_date_place_stay, -- дата регистрации по месту пребывания - adr.residenceAddress_regDateEnd as end_date_place_stay, -- дата снятия с регистрации по месту пребывания - case - when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null - end as type_place_stay, -- тип регистрации - -- address_actual -- Адрес фактического проживания ***1 - -- source_info_actual -- Источник сведений о месте фактического проживания ***1 - -- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1 - -- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1 + mrr.value AS reason_registration, system_id_ern AS id_ern -- id единого регистра населения FROM public.recruits AS r JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F3}' != '' -- Проверка на пустую строку @@ -303,7 +237,6 @@ LEFT JOIN ( JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) --JOIN public.recruits_history rh on rh.recruit_id=r.id --WHERE r.system_update_date >= '${UP_D}' -join adresses adr ON r.recruit_id=adr.recruit_id -- ***1 - страница личные сведения есть поле, нет данных Y diff --git a/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow4.hpl b/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow4.hpl index d209638..82cb74c 100644 --- a/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow4.hpl +++ b/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow4.hpl @@ -44,6 +44,7 @@ = recruit_id recruit_id + ervu_dashboard citizen
@@ -152,46 +153,16 @@ reason_registration Y - - residence - residence - Y - - - start_date_residence - start_date_residence - Y - - - end_date_residence - end_date_residence - Y - - - address_place_stay - address_place_stay - Y - - - start_date_place_stay - start_date_place_stay - Y - - - end_date_place_stay - end_date_place_stay - Y - - - type_place_stay - type_place_stay - Y - id_ern id_ern Y + + marital_status + marital_status + Y + N @@ -214,30 +185,8 @@ ervu_person_registry N 0 - with -adresses as ( -- по одному ли адресу тут должно быть?? -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true -WHERE '${M_R_CR_DATE}'::timestamp >= r.system_create_date - AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp - AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F4}' -GROUP BY - r.id -) -SELECT - r.system_pgs_status, + SELECT + r.system_pgs_status, r.full_name, r.last_name, r.first_name, @@ -255,7 +204,7 @@ SELECT --r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, @@ -271,22 +220,7 @@ SELECT WHEN ddd.hidden IS false then ddd.hidden ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет - mrr.value AS reason_registration - adr.actualAddress as residence, -- адрес места жительства - adr.actualAddress_regDateStart as start_date_residence, -- дата регистрации по месту жительства - adr.actualAddress_regDateEnd as end_date_residence, -- дата снятия с регистрации по месту жительства - adr.residenceAddress as address_place_stay, -- адресс регистрации по месту пребывания - adr.residenceAddress_regDateStart as start_date_place_stay, -- дата регистрации по месту пребывания - adr.residenceAddress_regDateEnd as end_date_place_stay, -- дата снятия с регистрации по месту пребывания - case - when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null - end as type_place_stay, -- тип регистрации - -- address_actual -- Адрес фактического проживания ***1 - -- source_info_actual -- Источник сведений о месте фактического проживания ***1 - -- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1 - -- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1 + mrr.value AS reason_registration, system_id_ern AS id_ern -- id единого регистра населения FROM public.recruits AS r JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F4}' != '' -- Проверка на пустую строку @@ -303,7 +237,6 @@ LEFT JOIN ( JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) --JOIN public.recruits_history rh on rh.recruit_id=r.id --WHERE r.system_update_date >= '${UP_D}' -join adresses adr ON r.recruit_id=adr.recruit_id -- ***1 - страница личные сведения есть поле, нет данных Y diff --git a/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow5.hpl b/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow5.hpl index d3c3287..5e902c3 100644 --- a/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow5.hpl +++ b/map_v1/info_recruits/citizen_tables/citizen/parallel/delta_citizen_flow5.hpl @@ -44,6 +44,7 @@ = recruit_id recruit_id + ervu_dashboard citizen
@@ -152,46 +153,16 @@ reason_registration Y - - residence - residence - Y - - - start_date_residence - start_date_residence - Y - - - end_date_residence - end_date_residence - Y - - - address_place_stay - address_place_stay - Y - - - start_date_place_stay - start_date_place_stay - Y - - - end_date_place_stay - end_date_place_stay - Y - - - type_place_stay - type_place_stay - Y - id_ern id_ern Y + + marital_status + marital_status + Y + N @@ -214,30 +185,8 @@ ervu_person_registry N 0 - with -adresses as ( -- по одному ли адресу тут должно быть?? -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true -WHERE '${M_R_CR_DATE}'::timestamp >= r.system_create_date - AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp - AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F5}' -GROUP BY - r.id -) -SELECT - r.system_pgs_status, + SELECT + r.system_pgs_status, r.full_name, r.last_name, r.first_name, @@ -255,7 +204,7 @@ SELECT --r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, @@ -271,22 +220,7 @@ SELECT WHEN ddd.hidden IS false then ddd.hidden ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет - mrr.value AS reason_registration - adr.actualAddress as residence, -- адрес места жительства - adr.actualAddress_regDateStart as start_date_residence, -- дата регистрации по месту жительства - adr.actualAddress_regDateEnd as end_date_residence, -- дата снятия с регистрации по месту жительства - adr.residenceAddress as address_place_stay, -- адресс регистрации по месту пребывания - adr.residenceAddress_regDateStart as start_date_place_stay, -- дата регистрации по месту пребывания - adr.residenceAddress_regDateEnd as end_date_place_stay, -- дата снятия с регистрации по месту пребывания - case - when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null - end as type_place_stay, -- тип регистрации - -- address_actual -- Адрес фактического проживания ***1 - -- source_info_actual -- Источник сведений о месте фактического проживания ***1 - -- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1 - -- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1 + mrr.value AS reason_registration, system_id_ern AS id_ern -- id единого регистра населения FROM public.recruits AS r JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F5}' != '' -- Проверка на пустую строку @@ -303,7 +237,6 @@ LEFT JOIN ( JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) --JOIN public.recruits_history rh on rh.recruit_id=r.id --WHERE r.system_update_date >= '${UP_D}' -join adresses adr ON r.recruit_id=adr.recruit_id -- ***1 - страница личные сведения есть поле, нет данных Y diff --git a/map_v1/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl b/map_v1/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl index 543c8ef..f0b4186 100644 --- a/map_v1/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl +++ b/map_v1/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl @@ -1,7 +1,7 @@ - change_status_delta_citizen_liability_fz53_flow2_error + recruit_update_date_ervu_dashboard Y @@ -13,63 +13,19 @@ 1000 100 - - 2025/06/16 12:20:06.191 + 2025/06/02 14:50:31.833 - - 2025/06/16 12:20:06.191 + 2025/06/02 14:50:31.833 Table input - Insert / update + Table output Y - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
Table input TableInput @@ -84,15 +40,52 @@ ervu-dashboard N 0 - SELECT - 'delta_citizen_liability_fz53_flow2' as job_name, - 'ERROR' as status, - current_timestamp as record_created - + SELECT + created_at AS system_create_date, + updated_at AS system_update_date, + current_timestamp AS record_created, + 'job_recruits_info' AS workflow +FROM ervu_dashboard.recruits_info +WHERE updated_at = (SELECT MAX(updated_at) FROM ervu_dashboard.recruits_info) +limit 1 N - 784 + 896 + 304 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + N + N + N + N + Y + N + public + N + recruit_create
+ N + Y + N + Y + + + 1216 304
diff --git a/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow1.hpl b/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow1.hpl index 18c37c6..44169e5 100644 --- a/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow1.hpl +++ b/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow1.hpl @@ -55,6 +55,7 @@ = recruit_id recruit_id + ervu_dashboard recruits_info
@@ -98,6 +99,11 @@ info Y + + addresses + addresses + Y + N @@ -128,7 +134,8 @@ ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, - r.full_name + r.full_name, + r.addresses FROM recruits_info ri JOIN recruits r ON r.id = ri.recruit_id WHERE diff --git a/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow2.hpl b/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow2.hpl index 56fd955..4346caa 100644 --- a/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow2.hpl +++ b/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow2.hpl @@ -55,6 +55,7 @@ = recruit_id recruit_id + ervu_dashboard recruits_info
@@ -98,6 +99,11 @@ info Y + + addresses + addresses + Y + N @@ -128,7 +134,8 @@ ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, - r.full_name + r.full_name, + r.addresses FROM recruits_info ri JOIN recruits r ON r.id = ri.recruit_id WHERE diff --git a/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow3.hpl b/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow3.hpl index a9d4a9e..1df8992 100644 --- a/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow3.hpl +++ b/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow3.hpl @@ -55,6 +55,7 @@ = recruit_id recruit_id + ervu_dashboard recruits_info
@@ -98,6 +99,11 @@ info Y + + addresses + addresses + Y + N @@ -128,7 +134,8 @@ ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, - r.full_name + r.full_name, + r.addresses FROM recruits_info ri JOIN recruits r ON r.id = ri.recruit_id WHERE diff --git a/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow4.hpl b/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow4.hpl index 39dc059..a038a86 100644 --- a/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow4.hpl +++ b/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow4.hpl @@ -55,6 +55,7 @@ = recruit_id recruit_id + ervu_dashboard recruits_info
@@ -98,6 +99,11 @@ info Y + + addresses + addresses + Y + N @@ -128,7 +134,8 @@ ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, - r.full_name + r.full_name, + r.addresses FROM recruits_info ri JOIN recruits r ON r.id = ri.recruit_id WHERE diff --git a/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow5.hpl b/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow5.hpl index 3bfe18d..9c7181c 100644 --- a/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow5.hpl +++ b/map_v1/info_recruits/raw_data/info_recruits/parallel/delta_recruits_info_flow5.hpl @@ -55,6 +55,7 @@ = recruit_id recruit_id + ervu_dashboard recruits_info
@@ -98,6 +99,11 @@ info Y + + addresses + addresses + Y + N @@ -128,7 +134,8 @@ ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, - r.full_name + r.full_name, + r.addresses FROM recruits_info ri JOIN recruits r ON r.id = ri.recruit_id WHERE diff --git a/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl b/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl index 71a7b98..aff5d71 100644 --- a/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl +++ b/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl @@ -131,6 +131,11 @@ full_name Y + + addresses + addresses + Y + N @@ -198,7 +203,8 @@ ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, - r.full_name + r.full_name, + r.addresses FROM recruits_info ri JOIN recruits r ON r.id = ri.recruit_id WHERE diff --git a/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl b/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl index 068d2c1..ff08786 100644 --- a/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl +++ b/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl @@ -88,6 +88,11 @@ full_name Y + + addresses + addresses + Y + N @@ -118,6 +123,7 @@ ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, + r.addresses, r.full_name--, --'${RN_RMNT}' AS rn_recruitment -- порядковый номер военкомата FROM recruits_info ri diff --git a/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl b/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl index 78ca857..abc697c 100644 --- a/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl +++ b/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl @@ -88,6 +88,11 @@ full_name Y + + addresses + addresses + Y + N @@ -118,6 +123,7 @@ ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, + r.addresses, r.full_name--, --'${RN_RMNT}' AS rn_recruitment -- порядковый номер военкомата FROM recruits_info ri diff --git a/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl b/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl index 1201625..7d5ffa3 100644 --- a/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl +++ b/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl @@ -88,6 +88,11 @@ full_name Y + + addresses + addresses + Y + N @@ -118,6 +123,7 @@ ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, + r.addresses, r.full_name--, --'${RN_RMNT}' AS rn_recruitment -- порядковый номер военкомата FROM recruits_info ri diff --git a/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl b/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl index 332bc6e..f8e7091 100644 --- a/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl +++ b/map_v1/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl @@ -88,6 +88,11 @@ full_name Y + + addresses + addresses + Y + N @@ -118,6 +123,7 @@ ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, + r.addresses, r.full_name--, --'${RN_RMNT}' AS rn_recruitment -- порядковый номер военкомата FROM recruits_info ri diff --git a/mappings/connections/external_to_test1.json b/mappings/connections/external_to_test1.json index 45d636b..c4da331 100644 --- a/mappings/connections/external_to_test1.json +++ b/mappings/connections/external_to_test1.json @@ -29,7 +29,7 @@ "description" : "" }, { "name" : "DB_DASHBOARD_NAME", - "value" : "ervu-dashboard-test1", + "value" : "ervu-dashboard-test", "description" : "" }, { "name" : "DB_DASHBOARD_USERNAME", diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow4_error.hpl b/mappings/info_recruits/citizen_tables/child/check_if_need_to_repeat_job.hpl similarity index 56% rename from mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow4_error.hpl rename to mappings/info_recruits/citizen_tables/child/check_if_need_to_repeat_job.hpl index c39e38f..440d53c 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow4_error.hpl +++ b/mappings/info_recruits/citizen_tables/child/check_if_need_to_repeat_job.hpl @@ -1,7 +1,7 @@ - change_status_delta_child_flow4_error + check_if_need_to_repeat_job Y @@ -13,22 +13,22 @@ 1000 100 - - 2025/06/16 12:20:06.191 + 2025/08/08 12:27:51.630 - - 2025/06/16 12:20:06.191 + 2025/08/08 12:27:51.630 Table input - Insert / update + Set variables Y - Insert / update - InsertUpdate + Set variables + SetVariable Y @@ -37,37 +37,18 @@ none - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y - 1152 - 304 + 624 + 288
@@ -84,15 +65,19 @@ ervu-dashboard N 0 - SELECT - 'delta_child_flow4' as job_name, - 'ERROR' as status, - current_timestamp as record_created + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'child_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; N - 784 - 304 + 336 + 288 diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow1_error.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow1_error.hpl deleted file mode 100644 index 7678021..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow1_error.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_child_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'child_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow1_success.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow1_success.hpl deleted file mode 100644 index 4339f92..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow1_success.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_child_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'child_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow2_error.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow2_error.hpl deleted file mode 100644 index 9f51e25..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow2_error.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_child_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'child_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow2_success.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow2_success.hpl deleted file mode 100644 index ab2f474..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow2_success.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_child_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'child_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow3_error.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow3_error.hpl deleted file mode 100644 index 23987c6..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow3_error.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_child_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'child_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow3_success.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow3_success.hpl deleted file mode 100644 index 5732590..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow3_success.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_child_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'child_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow4_error.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow4_error.hpl deleted file mode 100644 index 95b5598..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow4_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_child_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'child_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow4_success.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow4_success.hpl deleted file mode 100644 index 8878838..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow4_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_child_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'child_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow5_error.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow5_error.hpl deleted file mode 100644 index cd555b8..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow5_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_child_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'child_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow5_success.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow5_success.hpl deleted file mode 100644 index 83181a2..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow5_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_child_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'child_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow3_success.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow3_success.hpl deleted file mode 100644 index 96e5db8..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow3_success.hpl +++ /dev/null @@ -1,103 +0,0 @@ - - - - change_status_delta_child_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_child_flow3' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow4_success.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow4_success.hpl deleted file mode 100644 index 381c4fc..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow4_success.hpl +++ /dev/null @@ -1,103 +0,0 @@ - - - - change_status_delta_child_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_child_flow4' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow5_error.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow5_error.hpl deleted file mode 100644 index 460b876..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow5_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_child_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_child_flow5' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow5_success.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow5_success.hpl deleted file mode 100644 index 8035bc7..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow5_success.hpl +++ /dev/null @@ -1,103 +0,0 @@ - - - - change_status_delta_child_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_child_flow5' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_to_processing.hpl deleted file mode 100644 index 3b69421..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_to_processing.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - change_status_to_processing - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 16:14:31.162 - - - 2025/06/11 16:14:31.162 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 784 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'job_child' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'child_flow1' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'child_flow2' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'child_flow3' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'child_flow4' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'child_flow5' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 368 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_to_processing_delta.hpl deleted file mode 100644 index 64b8f84..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_to_processing_delta.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - change_status_to_processing_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 13:42:26.494 - - - 2025/06/16 13:42:26.494 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1248 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'delta_child' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'child_delta_flow1' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'child_delta_flow2' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'child_delta_flow3' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'child_delta_flow4' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'child_delta_flow5' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 832 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_child_job_exists.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_child_job_exists.hpl new file mode 100644 index 0000000..de6f58a --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_child_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_child_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'child_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Basic + Y + N + 0 + ${STATUS} + + + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child_delta.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child_delta.hpl deleted file mode 100644 index 9097bd1..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child_delta.hpl +++ /dev/null @@ -1,869 +0,0 @@ - - - - checkpoint_job_child_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 14:19:02.590 - - - 2025/06/03 14:19:02.590 - - - - - - Filter rows - Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update - Y - - - Dummy (do nothing) - JSON input state_child_flow1.json - N - - - Dummy (do nothing) - JSON input state_child_flow2.json - N - - - Dummy (do nothing) - JSON input state_child_flow3.json - N - - - Dummy (do nothing) - JSON input state_child_flow4.json - N - - - Dummy (do nothing) - JSON input state_child_flow5.json - N - - - - Abort - Abort - - Y - - 1 - - none - - - ABORT_WITH_ERROR - Y - 0 - - - 1264 - 592 - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - - - Filter rows - FilterRows - - Y - - 1 - - none - - - - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow1 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow2 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow3 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow4 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow5 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - Abort - - - 944 - 592 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 432 - - - - JSON input state_child_flow2.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 512 - - - - JSON input state_child_flow3.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 592 - - - - JSON input state_child_flow4.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 672 - - - - JSON input state_child_flow5.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 752 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'delta_child_flow1', - 'delta_child_flow2', - 'delta_child_flow3', - 'delta_child_flow4', - 'delta_child_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'delta_child_flow1', - 'delta_child_flow2', - 'delta_child_flow3', - 'delta_child_flow4', - 'delta_child_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_child_delta' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/job_create_files_child.hwf b/mappings/info_recruits/citizen_tables/child/checkpoints/job_create_files_child.hwf deleted file mode 100644 index b31ca9f..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/job_create_files_child.hwf +++ /dev/null @@ -1,235 +0,0 @@ - - - job_create_files_child - Y - - - - - - 2025/05/26 16:48:00.210 - - - 2025/05/26 16:48:00.210 - - - - - Start - - SPECIAL - - 1 - 12 - 60 - 0 - 0 - N - 0 - 1 - N - 576 - 496 - - - - state_child_flow2_new - - WRITE_TO_FILE - - N - { - "status": "NEW", - "pipeline": "child_flow2" -} - N - UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json - N - 848 - 416 - - - - state_child_flow1_new - - WRITE_TO_FILE - - N - { - "status": "NEW", - "pipeline": "child_flow1" -} - N - UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json - N - 848 - 336 - - - - state_child_flow3_new - - WRITE_TO_FILE - - N - { - "status": "NEW", - "pipeline": "child_flow3" -} - N - UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json - N - 848 - 496 - - - - state_child_flow4_new - - WRITE_TO_FILE - - N - { - "status": "NEW", - "pipeline": "child_flow4" -} - N - UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json - N - 848 - 576 - - - - state_child_flow5_new - - WRITE_TO_FILE - - N - { - "status": "NEW", - "pipeline": "child_flow5" -} - N - UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json - N - 848 - 656 - - - - Success - - SUCCESS - - N - 1120 - 496 - - - - Delete file state_job_child - - DELETE_FILE - - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json - N - 848 - 256 - - - - - - Start - state_child_flow3_new - Y - Y - Y - - - Start - state_child_flow2_new - Y - Y - Y - - - Start - state_child_flow1_new - Y - Y - Y - - - Start - state_child_flow4_new - Y - Y - Y - - - Start - state_child_flow5_new - Y - Y - Y - - - state_child_flow5_new - Success - Y - Y - N - - - state_child_flow4_new - Success - Y - Y - N - - - state_child_flow3_new - Success - Y - Y - N - - - state_child_flow2_new - Success - Y - Y - N - - - state_child_flow1_new - Success - Y - Y - N - - - Start - Delete file state_job_child - Y - Y - Y - - - Delete file state_job_child - Success - Y - Y - N - - - - - - diff --git a/mappings/info_recruits/citizen_tables/child/job_child.hwf b/mappings/info_recruits/citizen_tables/child/job_child.hwf index 9dd20b8..997b5e5 100644 --- a/mappings/info_recruits/citizen_tables/child/job_child.hwf +++ b/mappings/info_recruits/citizen_tables/child/job_child.hwf @@ -37,235 +37,12 @@ 0 1 N - 368 - 400 - - - - checkpoint_job_child.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child.hpl - Basic - - Y - - N - local - N - N - Y - N - 1136 - 1280 - - - - recruitment_rows_five_flow_child.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_child.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2352 - 400 - - - - child_flow1.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2672 - 80 - - - - child_flow2.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2672 - 240 - - - - child_flow3.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2672 - 400 - - - - child_flow4.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2672 - 560 - - - - child_flow5.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2672 - 720 - - - - Abort workflow - - ABORT - - N - N - 2336 + 416 208 - Success new citizen - - SUCCESS - - N - 3728 - 432 - - - - branching_child.hpl + check_if_child_job_exists.hpl PIPELINE @@ -275,7 +52,7 @@ N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/branching_child.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/check_if_child_job_exists.hpl Basic Y @@ -286,48 +63,29 @@ N Y N - 1584 - 1280 + 608 + 208 - Simple child WHERE SUCCESS + child_job_exists_check SIMPLE_EVAL - SUCCESS - string - true + boolean + false equal equal N variable - STATUS + JOB_EXECUTED_FLAG N - 1696 - 1712 + 880 + 208 - Simple child WHERE ERROR - - SIMPLE_EVAL - - ERROR - string - true - equal - equal - N - variable - STATUS - N - 1840 - 1280 - - - - recruitment_rows_five_flow_if_error.hpl + recruitments_five_flow.hpl PIPELINE @@ -337,7 +95,7 @@ N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/recruitment_rows_five_flow_if_error.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/child/recruitments_five_flow.hpl Basic Y @@ -348,207 +106,12 @@ N Y Y - 2384 - 1280 + 1120 + 208 - Abort workflow 2 - - ABORT - - N - N - 2288 - 1040 - - - - child_flow1.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2672 - 960 - - - - child_flow2.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2672 - 1120 - - - - child_flow3.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2672 - 1280 - - - - child_flow4.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2672 - 1440 - - - - child_flow5.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2672 - 1600 - - - - delta_child_flow1.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/delta_child_flow1.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2672 - 1776 - - - - check_if_job_child_exists.hpl + recruitment_five_flow_on_error.hpl PIPELINE @@ -558,7 +121,7 @@ N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/check_if_job_child_exists.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/child/recruitment_five_flow_on_error.hpl Basic Y @@ -569,30 +132,55 @@ N Y N - 544 - 400 + 1120 + 512 - Simple job_child_exists check NEW + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 880 + 368 + + + + Simple evaluation SIMPLE_EVAL - NEW - string + boolean true equal equal N variable - STATUS + NEED_TO_REPEAT_JOB N - 784 - 400 + 880 + 512 - change_status_to_processing.hpl + recruitment_five_flow_delta.hpl PIPELINE @@ -602,7 +190,7 @@ N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_to_processing.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/child/recruitment_five_flow_delta.hpl Basic Y @@ -613,1866 +201,63 @@ N Y N - 2368 - 576 - - - - change_status_child_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 80 - - - - change_status_child_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 160 - - - - change_status_child_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 240 - - - - change_status_child_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 320 - - - - change_status_child_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 400 - - - - change_status_child_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 480 - - - - change_status_child_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 560 - - - - change_status_child_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 640 - - - - change_status_child_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 720 - - - - change_status_child_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 800 - - - - checkpoint_job_child.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child.hpl - Basic - - Y - - N - local - N - N - Y - N - 3456 - 432 - - - - Success child after error - - SUCCESS - - N - 3728 - 1312 - - - - change_status_child_flow1_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 960 - - - - change_status_child_flow1_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1040 - - - - change_status_child_flow2_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1120 - - - - change_status_child_flow2_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1200 - - - - change_status_child_flow3_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1280 - - - - change_status_child_flow3_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1360 - - - - change_status_child_flow4_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1440 - - - - change_status_child_flow4_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1520 - - - - change_status_child_flow5_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1600 - - - - change_status_child_flow5_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_child_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1680 - - - - checkpoint_job_child.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child.hpl - Basic - - Y - - N - local - N - N - Y - N - 3456 - 1312 - - - - change_status_to_processing.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 2416 - 1472 - - - - change_status_to_processing_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_to_processing_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 2320 - 2304 - - - - change_status_delta_child_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1776 - - - - change_status_delta_child_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1856 - - - - recruitment_rows_five_flow_child.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_child.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2416 - 2096 - - - - Abort workflow 2 2 - - ABORT - - N - N - 2256 - 2208 - - - - Simple delta_child WHERE ERROR - - SIMPLE_EVAL - - ERROR - string - true - equal - equal - N - variable - STATUS - N - 2048 - 2096 - - - - delta_child success - - SUCCESS - - N - 2144 - 1904 - - - - branching_child_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/branching_child_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 1792 - 2096 - - - - checkpoint_job_child_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 3456 - 2096 - - - - child_delta success - - SUCCESS - - N - 3712 - 2096 - - - - delta_child_flow2.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/delta_child_flow2.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2672 - 1936 - - - - change_status_delta_child_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1936 - - - - change_status_delta_child_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2016 - - - - delta_child_flow3.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/delta_child_flow3.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2672 - 2096 - - - - change_status_delta_child_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2096 - - - - change_status_delta_child_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2176 - - - - delta_child_flow4.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/delta_child_flow4.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2672 - 2256 - - - - change_status_delta_child_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2256 - - - - change_status_delta_child_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2336 - - - - delta_child_flow5.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/delta_child_flow5.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2672 - 2416 - - - - change_status_delta_child_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2416 - - - - change_status_delta_child_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2496 + 880 + 704 - - recruitment_rows_five_flow_child.hpl - child_flow1.hpl - Y - Y - N - - - recruitment_rows_five_flow_child.hpl - child_flow2.hpl - Y - Y - N - - - recruitment_rows_five_flow_child.hpl - child_flow3.hpl - Y - Y - N - - - recruitment_rows_five_flow_child.hpl - child_flow4.hpl - Y - Y - N - - - recruitment_rows_five_flow_child.hpl - child_flow5.hpl - Y - Y - N - - - recruitment_rows_five_flow_child.hpl - Abort workflow - Y - N - N - - - branching_child.hpl - Simple child WHERE ERROR - Y - N - Y - - - branching_child.hpl - Simple child WHERE SUCCESS - Y - N - Y - - - recruitment_rows_five_flow_if_error.hpl - Abort workflow 2 - Y - N - N - - - recruitment_rows_five_flow_if_error.hpl - child_flow3.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - child_flow2.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - child_flow1.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - child_flow4.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - child_flow5.hpl 2 - Y - Y - N - Start - check_if_job_child_exists.hpl + check_if_child_job_exists.hpl Y Y Y - check_if_job_child_exists.hpl - Simple job_child_exists check NEW + check_if_child_job_exists.hpl + child_job_exists_check Y Y N - child_flow1.hpl - change_status_child_flow1_success.hpl + child_job_exists_check + recruitments_five_flow.hpl Y Y N - child_flow1.hpl - change_status_child_flow1_error.hpl + child_job_exists_check + check_if_need_to_repeat_job.hpl Y N N - child_flow2.hpl - change_status_child_flow2_success.hpl + check_if_need_to_repeat_job.hpl + Simple evaluation Y Y N - child_flow2.hpl - change_status_child_flow2_error.hpl - Y - N - N - - - child_flow3.hpl - change_status_child_flow3_success.hpl + Simple evaluation + recruitment_five_flow_on_error.hpl Y Y N - child_flow3.hpl - change_status_child_flow3_error.hpl + Simple evaluation + recruitment_five_flow_delta.hpl Y N N - - child_flow4.hpl - change_status_child_flow4_success.hpl - Y - Y - N - - - child_flow4.hpl - change_status_child_flow4_error.hpl - Y - N - N - - - child_flow5.hpl - change_status_child_flow5_success.hpl - Y - Y - N - - - child_flow5.hpl - change_status_child_flow5_error.hpl - Y - N - N - - - change_status_child_flow5_error.hpl - checkpoint_job_child.hpl - Y - N - Y - - - change_status_child_flow5_success.hpl - checkpoint_job_child.hpl - Y - N - Y - - - change_status_child_flow4_error.hpl - checkpoint_job_child.hpl - Y - N - Y - - - change_status_child_flow4_success.hpl - checkpoint_job_child.hpl - Y - N - Y - - - change_status_child_flow3_error.hpl - checkpoint_job_child.hpl - Y - N - Y - - - change_status_child_flow3_success.hpl - checkpoint_job_child.hpl - Y - N - Y - - - change_status_child_flow2_error.hpl - checkpoint_job_child.hpl - Y - N - Y - - - change_status_child_flow2_success.hpl - checkpoint_job_child.hpl - Y - N - Y - - - change_status_child_flow1_error.hpl - checkpoint_job_child.hpl - Y - N - Y - - - change_status_child_flow1_success.hpl - checkpoint_job_child.hpl - Y - N - Y - - - checkpoint_job_child.hpl - Success new citizen - Y - Y - N - - - change_status_child_flow1_success.hpl 2 - checkpoint_job_child.hpl 2 - Y - N - Y - - - change_status_child_flow1_error.hpl 2 - checkpoint_job_child.hpl 2 - Y - N - Y - - - change_status_child_flow2_success.hpl 2 - checkpoint_job_child.hpl 2 - Y - N - Y - - - change_status_child_flow2_error.hpl 2 - checkpoint_job_child.hpl 2 - Y - N - Y - - - change_status_child_flow3_success.hpl 2 - checkpoint_job_child.hpl 2 - Y - N - Y - - - change_status_child_flow3_error.hpl 2 - checkpoint_job_child.hpl 2 - Y - N - Y - - - change_status_child_flow4_success.hpl 2 - checkpoint_job_child.hpl 2 - Y - N - Y - - - change_status_child_flow4_error.hpl 2 - checkpoint_job_child.hpl 2 - Y - N - Y - - - change_status_child_flow5_success.hpl 2 - checkpoint_job_child.hpl 2 - Y - N - Y - - - change_status_child_flow5_error.hpl 2 - checkpoint_job_child.hpl 2 - Y - N - Y - - - checkpoint_job_child.hpl 2 - Success child after error - Y - Y - N - - - child_flow1.hpl 2 - change_status_child_flow1_success.hpl 2 - Y - Y - N - - - child_flow1.hpl 2 - change_status_child_flow1_error.hpl 2 - Y - N - N - - - child_flow2.hpl 2 - change_status_child_flow2_success.hpl 2 - Y - Y - N - - - child_flow2.hpl 2 - change_status_child_flow2_error.hpl 2 - Y - N - N - - - child_flow3.hpl 2 - change_status_child_flow3_success.hpl 2 - Y - Y - N - - - child_flow3.hpl 2 - change_status_child_flow3_error.hpl 2 - Y - N - N - - - child_flow4.hpl 2 - change_status_child_flow4_success.hpl 2 - Y - Y - N - - - child_flow4.hpl 2 - change_status_child_flow4_error.hpl 2 - Y - N - N - - - child_flow5.hpl 2 - change_status_child_flow5_success.hpl 2 - Y - Y - N - - - child_flow5.hpl 2 - change_status_child_flow5_error.hpl 2 - Y - N - N - - - checkpoint_job_child.hpl (2) - branching_child.hpl - Y - N - Y - - - Simple job_child_exists check NEW - checkpoint_job_child.hpl (2) - Y - N - N - - - delta_child_flow1.hpl - change_status_delta_child_flow1_success.hpl - Y - Y - N - - - delta_child_flow1.hpl - change_status_delta_child_flow1_error.hpl - Y - N - N - - - Simple job_child_exists check NEW - recruitment_rows_five_flow_child.hpl - Y - Y - N - - - recruitment_rows_five_flow_child.hpl - change_status_to_processing.hpl - Y - Y - N - - - Simple child WHERE ERROR - recruitment_rows_five_flow_if_error.hpl - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - change_status_to_processing.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_child.hpl 2 - delta_child_flow1.hpl - Y - Y - N - - - recruitment_rows_five_flow_child.hpl 2 - change_status_to_processing_delta.hpl - Y - Y - N - - - recruitment_rows_five_flow_child.hpl 2 - Abort workflow 2 2 - Y - Y - N - - - Simple delta_child WHERE ERROR - delta_child success - Y - N - N - - - Simple delta_child WHERE ERROR - recruitment_rows_five_flow_child.hpl 2 - Y - Y - Y - - - Simple child WHERE SUCCESS - branching_child_delta.hpl - Y - Y - N - - - branching_child_delta.hpl - Simple delta_child WHERE ERROR - Y - Y - Y - - - checkpoint_job_child_delta.hpl - child_delta success - Y - Y - N - - - change_status_delta_child_flow1_success.hpl - checkpoint_job_child_delta.hpl - Y - N - Y - - - change_status_delta_child_flow1_error.hpl - checkpoint_job_child_delta.hpl - Y - N - Y - - - delta_child_flow2.hpl - change_status_delta_child_flow2_success.hpl - Y - Y - N - - - delta_child_flow2.hpl - change_status_delta_child_flow2_error.hpl - Y - N - N - - - delta_child_flow3.hpl - change_status_delta_child_flow3_success.hpl - Y - Y - N - - - delta_child_flow3.hpl - change_status_delta_child_flow3_error.hpl - Y - N - N - - - delta_child_flow4.hpl - change_status_delta_child_flow4_success.hpl - Y - Y - N - - - delta_child_flow4.hpl - change_status_delta_child_flow4_error.hpl - Y - N - N - - - delta_child_flow5.hpl - change_status_delta_child_flow5_success.hpl - Y - Y - N - - - delta_child_flow5.hpl - change_status_delta_child_flow5_error.hpl - Y - N - N - - - recruitment_rows_five_flow_child.hpl 2 - delta_child_flow2.hpl - Y - Y - N - - - recruitment_rows_five_flow_child.hpl 2 - delta_child_flow3.hpl - Y - Y - N - - - recruitment_rows_five_flow_child.hpl 2 - delta_child_flow4.hpl - Y - Y - N - - - recruitment_rows_five_flow_child.hpl 2 - delta_child_flow5.hpl - Y - Y - N - - - change_status_delta_child_flow2_success.hpl - checkpoint_job_child_delta.hpl - Y - N - Y - - - change_status_delta_child_flow3_success.hpl - checkpoint_job_child_delta.hpl - Y - N - Y - - - change_status_delta_child_flow2_error.hpl - checkpoint_job_child_delta.hpl - Y - N - Y - - - change_status_delta_child_flow3_error.hpl - checkpoint_job_child_delta.hpl - Y - N - Y - - - change_status_delta_child_flow4_success.hpl - checkpoint_job_child_delta.hpl - Y - N - Y - - - change_status_delta_child_flow4_error.hpl - checkpoint_job_child_delta.hpl - Y - N - Y - - - change_status_delta_child_flow5_success.hpl - checkpoint_job_child_delta.hpl - Y - N - Y - - - change_status_delta_child_flow5_error.hpl - checkpoint_job_child_delta.hpl - Y - N - Y - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 72 - 1088 - 176 - 0001-01-01 00:00:00 - -3001-01-01 00:00:00 - - 114 - diff --git a/mappings/info_recruits/citizen_tables/child/parallel/child_flow.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow.hpl new file mode 100644 index 0000000..0243b34 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/parallel/child_flow.hpl @@ -0,0 +1,595 @@ + + + + child_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + User defined Java expression 2 + Update 2 + Y + + + Update 2 + Change job status on error + Y + + + Change job status on error + Abort + Y + + + Update 2 + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Update 2 + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Table input + Table output + Y + + + Group by 2 + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression 2 + Y + + + Table output + Change job status on error + Y + + + Table output + Group by 2 + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1216 + 1024 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1216 + 800 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS', + error_description = null +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1744 + 608 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 112 + 800 + + + + Detect empty stream + DetectEmptyStream + + N + + 1 + + none + + + + + 1568 + 480 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1392 + 608 + + + + Group by 2 + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + minors_count_raw + is_minor + SUM + + + has_minor_child_raw + is_minor + MAX + + + has_dead_child_raw + is_dead + MAX + + + N + + + recruit_id + + + N + grp + + + 560 + 480 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 784 + 480 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id AS recruit_id, + (ch->>'id')::uuid AS child_external_id, + NULLIF(ch->>'idERN', '') AS child_id_ern, + CASE NULLIF(ch->>'rodstvSvyazReb', '')::int + WHEN 1 THEN 3 + WHEN 2 THEN 4 + END AS kinship_type, + ch->'svedFLBS'->'fio'->>'familiya' AS last_name, + ch->'svedFLBS'->'fio'->>'imya' AS first_name, + ch->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + dates.birth_date, + dates.death_date, + ch->'svedSmert'->>'nomerZapis' AS death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' AS birth_az_number, + CASE WHEN dates.death_date IS NOT NULL THEN 1 ELSE 0 END AS is_dead, + CASE + WHEN dates.death_date IS NOT NULL THEN 0 -- умершие не могут быть несовершеннолетними + WHEN dates.birth_date IS NULL THEN 0 -- если дата рождения неизвестна, считаем взрослым + WHEN dates.birth_date > CURRENT_DATE - INTERVAL '18 years' THEN 1 + ELSE 0 + END AS is_minor +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS ch +CROSS JOIN LATERAL ( + SELECT + MAKE_DATE( + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + MAKE_DATE( + NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den', '')::int + ) AS death_date +) AS dates +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND'${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'; + Y + + + 304 + 800 + + + + Table output + TableOutput + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + child_external_id + child_external_id + + + child_id_ern + child_id_ern + + + kinship_type + kinship_type + + + last_name + last_name + + + first_name + first_name + + + middle_name + middle_name + + + full_name + full_name + + + birth_date + birth_date + + + death_date + death_date + + + death_az_number + death_az_number + + + birth_az_number + birth_az_number + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_child
+ N + Y + N + Y + + + 560 + 800 + +
+ + Update 2 + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + minors_count + minors_count + + + has_minor_child + has_minor_child + + + has_dead_child + has_dead_child + +
+ N + Y + + + 1216 + 480 + +
+ + User defined Java expression 2 + Janino + + Y + + 1 + + none + + + + minors_count + minors_count_raw == 1 ? "1" : minors_count_raw == 2 ? "2" : minors_count_raw >= 3 ? "3 и более" : "0" + String + 10 + -1 + + + + has_minor_child + has_minor_child_raw == 1 + Boolean + -1 + -1 + + + + has_dead_child + has_dead_child_raw == 1 + Boolean + -1 + -1 + + + + + 1024 + 480 + + + + + Create job execution record + Change job status on error + N + + + + + + + + + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + Update 2 + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/child_flow1.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow1.hpl deleted file mode 100644 index 527cc57..0000000 --- a/mappings/info_recruits/citizen_tables/child/parallel/child_flow1.hpl +++ /dev/null @@ -1,229 +0,0 @@ - - - - child_flow1 - Y - - - - Normal - 0 - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Select values 4 2 - N - - - Select values 4 2 - Get variables - N - - - Table input - Insert / update - Y - - - - Get variables - GetVariable - - Y - - 1 - - none - - - - - -1 - recruitment_id - -1 - none - String - ID_F1 - - - - - 976 - 400 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_child
- - recruit_id - recruit_id - N - - - birth_az_number - birth_az_number - Y - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y - -
- N - - - 944 - 288 - -
- - Select values 4 2 - SelectValues - - Y - - 1 - - none - - - - N - - ID_F1 - ID_F1 - String - -2 - -2 - - false - - - false - - - - - - - - - - 720 - 400 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y - - - 448 - 288 - - - - - Select values 4 2 - Get variables - Y - - - - - - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/child_flow2.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow2.hpl deleted file mode 100644 index 4ae2357..0000000 --- a/mappings/info_recruits/citizen_tables/child/parallel/child_flow2.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - child_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_child
- - recruit_id - recruit_id - N - - - birth_az_number - birth_az_number - Y - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y - -
- N - - - 1088 - 288 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y - - - 560 - 288 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/child_flow3.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow3.hpl deleted file mode 100644 index 1ccf803..0000000 --- a/mappings/info_recruits/citizen_tables/child/parallel/child_flow3.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - child_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_child
- - recruit_id - recruit_id - N - - - birth_az_number - birth_az_number - Y - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y - -
- N - - - 1216 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y - - - 672 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/child_flow4.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow4.hpl deleted file mode 100644 index 626f607..0000000 --- a/mappings/info_recruits/citizen_tables/child/parallel/child_flow4.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - child_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_child
- - recruit_id - recruit_id - N - - - birth_az_number - birth_az_number - Y - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y - -
- N - - - 1072 - 320 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y - - - 528 - 320 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/child_flow5.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow5.hpl deleted file mode 100644 index f76ea69..0000000 --- a/mappings/info_recruits/citizen_tables/child/parallel/child_flow5.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - child_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_child
- - recruit_id - recruit_id - N - - - birth_az_number - birth_az_number - Y - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y - -
- N - - - 1040 - 368 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y - - - 560 - 368 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/child_flow_delta.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow_delta.hpl new file mode 100644 index 0000000..ab93eb9 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/parallel/child_flow_delta.hpl @@ -0,0 +1,598 @@ + + + + child_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Insert / update + Change job status on error + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + User defined Java expression + Update + Y + + + Create job execution record + Table input 2 + Y + + + Update + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Update + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + Table input 2 + Insert / update + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1376 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1376 + 224 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS', + error_description = null +WHERE job_name = '${JOB_NAME}' + and recruitment_id = '${IDM_ID}' +and status = 'DELTA_PROCESSING'; + + + + 1872 + 0 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 288 + 224 + + + + Detect empty stream + DetectEmptyStream + + N + + 1 + + none + + + + + 1616 + 144 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1616 + 0 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + minors_count_raw + is_minor + SUM + + + has_minor_child_raw + is_minor + MAX + + + has_dead_child_raw + is_dead + MAX + + + N + + + recruit_id + + + N + grp + + + 784 + 0 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 1024 + 0 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + child_external_id + child_external_id + + ervu_dashboard + citizen_child
+ + recruit_id + recruit_id + N + + + birth_az_number + birth_az_number + Y + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + full_name + full_name + Y + + + kinship_type + kinship_type + Y + + + child_external_id + child_external_id + N + + + first_name + first_name + Y + + + middle_name + middle_name + Y + + + last_name + last_name + Y + + + child_id_ern + child_id_ern + Y + +
+ N + + + 784 + 224 + +
+ + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id AS recruit_id, + (ch->>'id')::uuid AS child_external_id, + NULLIF(ch->>'idERN', '') AS child_id_ern, + CASE NULLIF(ch->>'rodstvSvyazReb', '')::int + WHEN 1 THEN 3 + WHEN 2 THEN 4 + END AS kinship_type, + ch->'svedFLBS'->'fio'->>'familiya' AS last_name, + ch->'svedFLBS'->'fio'->>'imya' AS first_name, + ch->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + dates.birth_date, + dates.death_date, + ch->'svedSmert'->>'nomerZapis' AS death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' AS birth_az_number, + CASE WHEN dates.death_date IS NOT NULL THEN 1 ELSE 0 END AS is_dead, + CASE + WHEN dates.death_date IS NOT NULL THEN 0 -- умершие не могут быть несовершеннолетними + WHEN dates.birth_date IS NULL THEN 0 -- если дата рождения неизвестна, считаем взрослым + WHEN dates.birth_date > CURRENT_DATE - INTERVAL '18 years' THEN 1 + ELSE 0 + END AS is_minor +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS ch +CROSS JOIN LATERAL ( + SELECT + MAKE_DATE( + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + MAKE_DATE( + NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den', '')::int + ) AS death_date +) AS dates +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND'${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND c.update_date >= '${M_R_UP_DATE}'::timestamp + AND jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'; + Y + + + 496 + 224 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + minors_count + minors_count + + + has_minor_child + has_minor_child + + + has_dead_child + has_dead_child + +
+ N + Y + + + 1376 + 0 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + minors_count + minors_count_raw == 1 ? "1" : minors_count_raw == 2 ? "2" : minors_count_raw >= 3 ? "3 и более" : "0" + String + 10 + -1 + + + + has_minor_child + has_minor_child_raw == 1 + Boolean + -1 + -1 + + + + has_dead_child + has_dead_child_raw == 1 + Boolean + -1 + -1 + + + + + 1232 + 0 + + + + + Insert / update + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl new file mode 100644 index 0000000..67704b2 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl @@ -0,0 +1,613 @@ + + + + child_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + User defined Java expression + Update + Y + + + Create job execution record 2 + Table input 2 + Y + + + Update + Change job status on error 2 + Y + + + Insert / update + Change job status on error 2 + Y + + + Insert / update + Group by + Y + + + Update + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Update + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error 2 + Abort + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + Table input 2 + Insert / update + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 976 + 608 + + + + Change job status on error 2 + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 976 + 432 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS', +error_description = null +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}' +and status = 'PROCESSING'; + + + + + 1440 + 0 + + + + Create job execution record 2 + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL; + + + 0 + 432 + + + + Detect empty stream + DetectEmptyStream + + N + + 1 + + none + + + + + 1216 + 0 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1216 + 128 + + + + Group by + GroupBy + + N + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + minors_count_raw + is_minor + SUM + + + has_minor_child_raw + is_minor + MAX + + + has_dead_child_raw + is_dead + MAX + + + N + + + recruit_id + + + N + grp + + + 608 + 192 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 608 + 0 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + child_external_id + child_external_id + + ervu_dashboard + citizen_child
+ + recruit_id + recruit_id + N + + + birth_az_number + birth_az_number + Y + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + full_name + full_name + Y + + + kinship_type + kinship_type + Y + + + child_external_id + child_external_id + N + + + first_name + first_name + Y + + + middle_name + middle_name + Y + + + last_name + last_name + Y + + + child_id_ern + child_id_ern + Y + +
+ N + + + 608 + 432 + +
+ + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id AS recruit_id, + (ch->>'id')::uuid AS child_external_id, + NULLIF(ch->>'idERN', '') AS child_id_ern, + CASE NULLIF(ch->>'rodstvSvyazReb', '')::int + WHEN 1 THEN 3 + WHEN 2 THEN 4 + END AS kinship_type, + ch->'svedFLBS'->'fio'->>'familiya' AS last_name, + ch->'svedFLBS'->'fio'->>'imya' AS first_name, + ch->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + dates.birth_date, + dates.death_date, + ch->'svedSmert'->>'nomerZapis' AS death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' AS birth_az_number, + CASE WHEN dates.death_date IS NOT NULL THEN 1 ELSE 0 END AS is_dead, + CASE + WHEN dates.death_date IS NOT NULL THEN 0 -- умершие не могут быть несовершеннолетними + WHEN dates.birth_date IS NULL THEN 0 -- если дата рождения неизвестна, считаем взрослым + WHEN dates.birth_date > CURRENT_DATE - INTERVAL '18 years' THEN 1 + ELSE 0 + END AS is_minor +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS ch +CROSS JOIN LATERAL ( + SELECT + MAKE_DATE( + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + MAKE_DATE( + NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den', '')::int + ) AS death_date +) AS dates +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND'${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'; + Y + + + 272 + 432 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + minors_count + minors_count + + + has_minor_child + has_minor_child + + + has_dead_child + has_dead_child + +
+ N + Y + + + 976 + 0 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + minors_count + minors_count_raw == 1 ? "1" : minors_count_raw == 2 ? "2" : minors_count_raw >= 3 ? "3 и более" : "0" + String + 10 + -1 + + + + has_minor_child + has_minor_child_raw == 1 + Boolean + -1 + -1 + + + + has_dead_child + has_dead_child_raw == 1 + Boolean + -1 + -1 + + + + + 800 + 0 + + + + + Insert / update + Change job status on error 2 + Y + + + + + + + + + + Update + Change job status on error 2 + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow1.hpl b/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow1.hpl deleted file mode 100644 index 8008a21..0000000 --- a/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow1.hpl +++ /dev/null @@ -1,143 +0,0 @@ - - - - delta_child_flow1 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_child
- - recruit_id - recruit_id - N - - - birth_az_number - birth_az_number - Y - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y - -
- N - - - 1168 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y - - - 624 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow2.hpl b/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow2.hpl deleted file mode 100644 index c108637..0000000 --- a/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow2.hpl +++ /dev/null @@ -1,143 +0,0 @@ - - - - delta_child_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_child
- - recruit_id - recruit_id - N - - - birth_az_number - birth_az_number - Y - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y - -
- N - - - 1168 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y - - - 624 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow3.hpl b/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow3.hpl deleted file mode 100644 index 7908b8e..0000000 --- a/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow3.hpl +++ /dev/null @@ -1,143 +0,0 @@ - - - - delta_child_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_child
- - recruit_id - recruit_id - N - - - birth_az_number - birth_az_number - Y - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y - -
- N - - - 1168 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y - - - 624 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow4.hpl b/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow4.hpl deleted file mode 100644 index 32b4002..0000000 --- a/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow4.hpl +++ /dev/null @@ -1,143 +0,0 @@ - - - - delta_child_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_child
- - recruit_id - recruit_id - N - - - birth_az_number - birth_az_number - Y - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y - -
- N - - - 1168 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y - - - 624 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow5.hpl b/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow5.hpl deleted file mode 100644 index 1a55d69..0000000 --- a/mappings/info_recruits/citizen_tables/child/parallel/delta_child_flow5.hpl +++ /dev/null @@ -1,143 +0,0 @@ - - - - delta_child_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_child
- - recruit_id - recruit_id - N - - - birth_az_number - birth_az_number - Y - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y - -
- N - - - 1168 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y - - - 624 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/work_activity/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/child/recruitment_five_flow_delta.hpl similarity index 90% rename from mappings/info_recruits/citizen_tables/work_activity/recruitment_five_flow_delta.hpl rename to mappings/info_recruits/citizen_tables/child/recruitment_five_flow_delta.hpl index c8787e1..71e650a 100644 --- a/mappings/info_recruits/citizen_tables/work_activity/recruitment_five_flow_delta.hpl +++ b/mappings/info_recruits/citizen_tables/child/recruitment_five_flow_delta.hpl @@ -22,27 +22,27 @@ Table input - work_activity_flow_delta.hpl + child_flow_delta.hpl Y Table input - work_activity_flow_delta.hpl 2 + child_flow_delta.hpl 2 Y Table input - work_activity_flow_delta.hpl 3 + child_flow_delta.hpl 3 Y Table input - work_activity_flow_delta.hpl 4 + child_flow_delta.hpl 4 Y Table input - work_activity_flow_delta.hpl 5 + child_flow_delta.hpl 5 Y @@ -63,9 +63,9 @@ SELECT r.idm_id as recruitment_id FROM ervu_dashboard.recruitment r - LEFT JOIN public.job_execution je + LEFT JOIN etl.job_execution je ON r.idm_id = je.recruitment_id - and job_name = 'work_activity_job' + and job_name = 'child_job' where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); N @@ -75,7 +75,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING - work_activity_flow_delta.hpl + child_flow_delta.hpl PipelineExecutor Y @@ -86,7 +86,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_delta.hpl N 1 @@ -101,7 +101,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING JOB_NAME - work_activity_job + child_job Y @@ -131,7 +131,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING - work_activity_flow_delta.hpl 2 + child_flow_delta.hpl 2 PipelineExecutor Y @@ -142,7 +142,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_delta.hpl N 1 @@ -157,7 +157,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING JOB_NAME - work_activity_job + child_job Y @@ -187,7 +187,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING - work_activity_flow_delta.hpl 3 + child_flow_delta.hpl 3 PipelineExecutor Y @@ -198,7 +198,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_delta.hpl N 1 @@ -213,7 +213,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING JOB_NAME - work_activity_job + child_job Y @@ -243,7 +243,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING - work_activity_flow_delta.hpl 4 + child_flow_delta.hpl 4 PipelineExecutor Y @@ -254,7 +254,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_delta.hpl N 1 @@ -269,7 +269,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING JOB_NAME - work_activity_job + child_job Y @@ -299,7 +299,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING - work_activity_flow_delta.hpl 5 + child_flow_delta.hpl 5 PipelineExecutor Y @@ -310,7 +310,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_delta.hpl N 1 @@ -325,7 +325,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING JOB_NAME - work_activity_job + child_job Y diff --git a/mappings/info_recruits/citizen_tables/child/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/child/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..d9d0f7a --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + child_flow_repeat.hpl + Y + + + Table input + child_flow_repeat.hpl 3 + Y + + + Table input + child_flow_repeat.hpl 2 + Y + + + Table input + child_flow_repeat.hpl 4 + Y + + + Table input + child_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'child_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + child_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + child_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 208 + + + + child_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + child_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 288 + + + + child_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + child_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 368 + + + + child_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + child_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 448 + + + + child_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + child_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/child/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/child/recruitment_rows_five_flow_if_error.hpl deleted file mode 100644 index 0a663c3..0000000 --- a/mappings/info_recruits/citizen_tables/child/recruitment_rows_five_flow_if_error.hpl +++ /dev/null @@ -1,185 +0,0 @@ - - - - recruitment_rows_five_flow_if_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/23 14:28:22.572 - - - 2025/05/23 14:28:22.572 - - - - - - Table input - Copy rows to result - Y - - - - Copy rows to result - RowsToResult - - Y - - 1 - - none - - - - - 880 - 288 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -fr_check AS ( - SELECT - last_recruitment_id AS recruitment_id, - recruitment_created_date, - status, - job_name - FROM public.etl_checkpoints - WHERE status = 'ERROR' AND job_name IN ('child_flow1', 'child_flow2', 'child_flow3', 'child_flow4', 'child_flow5') -), -ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, - ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position - FROM ordered -), -pivoted AS ( - SELECT - position, - MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow1') THEN created_at END) AS cr_flow1, - MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow1') THEN idm_id::text END) AS idm_flow1, - MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow2') THEN created_at END) AS cr_flow2, - MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow2') THEN idm_id::text END) AS idm_flow2, - MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow3') THEN created_at END) AS cr_flow3, - MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow3') THEN idm_id::text END) AS idm_flow3, - MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow4') THEN created_at END) AS cr_flow4, - MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow4') THEN idm_id::text END) AS idm_flow4, - MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow5') THEN created_at END) AS cr_flow5, - MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow5') THEN idm_id::text END) AS idm_flow5 - FROM splitted - GROUP BY position -), -remains as ( - SELECT - position, - cr_flow1, - idm_flow1::uuid, - cr_flow2, - idm_flow2::uuid, - cr_flow3, - idm_flow3::uuid, - cr_flow4, - idm_flow4::uuid, - cr_flow5, - idm_flow5::uuid - FROM pivoted - WHERE (cr_flow1 IS NOT NULL AND idm_flow1 IS NOT NULL) - OR (cr_flow2 IS NOT NULL AND idm_flow2 IS NOT NULL) - OR (cr_flow3 IS NOT NULL AND idm_flow3 IS NOT NULL) - OR (cr_flow4 IS NOT NULL AND idm_flow4 IS NOT NULL) - OR (cr_flow5 IS NOT NULL AND idm_flow5 IS NOT NULL) - order by position -), -idm1 as ( - select - cr_flow1, - idm_flow1 - from remains - where cr_flow1 is not null and idm_flow1 is not null -), -idm2 as ( - select - cr_flow2, - idm_flow2 - from remains - where cr_flow2 is not null and idm_flow2 is not null -), -idm3 as ( - select - cr_flow3, - idm_flow3 - from remains - where cr_flow3 is not null and idm_flow3 is not null -), -idm4 as ( - select - cr_flow4, - idm_flow4 - from remains - where cr_flow4 is not null and idm_flow4 is not null -), -idm5 as ( - select - cr_flow5, - idm_flow5 - from remains - where cr_flow5 is not null and idm_flow5 is not null -) -select - i1.*, - i2.*, - i3.*, - i4.*, - i5.* -FROM - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1 -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn -ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn) -limit 2 - N - - - 512 - 288 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/child/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/child/recruitments_five_flow.hpl new file mode 100644 index 0000000..57195c7 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/recruitments_five_flow.hpl @@ -0,0 +1,356 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + child_flow.hpl + Y + + + Get all recruitments ordered by created_date + child_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + child_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + child_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + child_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment; + N + + + 432 + 304 + + + + child_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + child_job + + Y + + Change job status on success + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + Change job status on success + + FileName + + + + 704 + 144 + + + + child_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + child_job + + Y + + Change job status on success 2 + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + Change job status on success 2 + + FileName + + + + 704 + 224 + + + + child_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + child_job + + Y + + Change job status on success 4 + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + Change job status on success 3 + + FileName + + + + 704 + 304 + + + + child_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + child_job + + Y + + Change job status on success 4 + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + Change job status on success 4 + + FileName + + + + 704 + 384 + + + + child_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + child_job + + Y + + Change job status on success 5 + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + Change job status on success 5 + + FileName + + + + 704 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_delta.hpl index b95a663..85e6b57 100644 --- a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_delta.hpl +++ b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_delta.hpl @@ -27,11 +27,31 @@ Table input + Identify last row in a stream + Y + + + Identify last row in a stream Insert / update Y Insert / update + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Insert / update + Detect empty stream + Y + + + Detect empty stream Change job status on success Y @@ -40,7 +60,32 @@ Change job status on error Y + + Change job status on error + Abort + Y + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1056 + 384 + + Change job status on error ExecSql @@ -56,9 +101,6 @@ error_description - - error_code - ervu-dashboard Y @@ -68,16 +110,15 @@ N UPDATE etl.job_execution SET status = 'DELTA_ERROR', - error_description = ?, - error_code = ? + error_description = ? WHERE job_name = '${JOB_NAME}' and recruitment_id = '${IDM_ID}'; - 1040 - 416 + 832 + 384 @@ -107,8 +148,8 @@ and recruitment_id = '${IDM_ID}';
- 1040 - 224 + 1056 + 80 @@ -134,13 +175,83 @@ and recruitment_id = '${IDM_ID}'; SET status = 'DELTA_PROCESSING', execution_datetime = DEFAULT, - error_description = NULL, - error_code = NULL + error_description = NULL where job_name = '${JOB_NAME}' and recruitment_id = '${IDM_ID}';
- 336 + 272 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1056 + 224 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 832 + 80 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 640 224 @@ -148,7 +259,7 @@ and recruitment_id = '${IDM_ID}';
Insert / update InsertUpdate - Y + N 1 @@ -162,7 +273,6 @@ and recruitment_id = '${IDM_ID}';
= recruit_id recruit_id - ervu_dashboard citizen
@@ -280,7 +390,7 @@ and recruitment_id = '${IDM_ID}';
N - 784 + 832 224 @@ -288,7 +398,7 @@ and recruitment_id = '${IDM_ID}';
Table input TableInput - Y + N 1 @@ -378,7 +488,8 @@ SELECT FROM public.recruits AS r JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${IDM_ID}' != '' -- Проверка на пустую строку AND COALESCE(current_recruitment_id, target_recruitment_id) = '${IDM_ID}' - AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp + --AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp + AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp LEFT JOIN ( SELECT ROW_NUMBER() OVER (PARTITION BY recruit_id ORDER BY created_at DESC) as rn, @@ -397,7 +508,7 @@ ${LIMIT_FW}
Y - 544 + 464 224 diff --git a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_repeat.hpl index c61cd51..5bf8781 100644 --- a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_repeat.hpl +++ b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_repeat.hpl @@ -27,20 +27,65 @@ Table input - Table output + Identify last row in a stream Y - Table output + Identify last row in a stream + Insert / update + Y + + + Insert / update + Filter rows + Y + + + Insert / update + Detect empty stream + Y + + + Detect empty stream Change job status on success Y - Table output + Filter rows + Change job status on success + Y + + + Insert / update Change job status on error Y + + Change job status on error + Abort + Y + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1152 + 352 + + Change job status on error ExecSql @@ -56,13 +101,13 @@ error_description - - error_code - ervu-dashboard + Y + N + Y Y N @@ -73,10 +118,11 @@ WHERE job_name = '${JOB_NAME}' and recruitment_id = '${IDM_ID}';
+ - 976 - 400 + 896 + 352 @@ -106,8 +152,8 @@ and recruitment_id = '${IDM_ID}';
- 976 - 208 + 1216 + 96 @@ -135,7 +181,6 @@ and recruitment_id = '${IDM_ID}'; status, execution_datetime, error_description, - error_code, recruitment_id ) VALUES ( @@ -144,15 +189,13 @@ VALUES ( 'PROCESSING', DEFAULT, NULL, - NULL, '${IDM_ID}' ) ON CONFLICT (job_name, recruitment_id) DO UPDATE SET status = 'PROCESSING', execution_datetime = DEFAULT, - error_description = NULL, - error_code = NULL;
+ error_description = NULL 272 @@ -160,8 +203,8 @@ DO UPDATE SET - Table input - TableInput + Detect empty stream + DetectEmptyStream Y @@ -170,9 +213,218 @@ DO UPDATE SET none + + + 1216 + 208 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 896 + 96 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 688 + 208 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + recruit_id + recruit_id + N + + + system_pgs_status + system_pgs_status + Y + + + full_name + full_name + Y + + + last_name + last_name + Y + + + first_name + first_name + Y + + + middle_name + middle_name + Y + + + gender + gender + Y + + + birth_date + birth_date + Y + + + age + age + Y + + + birth_place + birth_place + Y + + + phone + phone + Y + + + email + email + Y + + + vu_current_info + vu_current_info + Y + + + date_registration + date_registration + Y + + + date_deregistration + date_deregistration + Y + + + marital_status + marital_status + Y + + + recruit_create_date + recruit_create_date + Y + + + update_date + update_date + Y + + + recruitment_id + recruitment_id + Y + + + target_recruitment_id + target_recruitment_id + Y + + + deferment_liberation + deferment_liberation + Y + + + id_ern + id_ern + Y + +
+ N + + + 896 + 208 + +
+ + Table input + TableInput + + N + + 1 + + none + + ervu_person_registry N - /* with adresses as ( -- по одному ли адресу тут должно быть?? @@ -383,27 +635,24 @@ ${LIMIT_FW} N N N - Y - N ervu_dashboard Y citizen
- N Y N Y - 720 - 208 + 576 + 528
- Table output + Insert / update Change job status on error Y @@ -414,6 +663,18 @@ ${LIMIT_FW} + + Table output + Change job status on error + N + + + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_address/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizen_address/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..f384b3b --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_address/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_address_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_address/checkpoints/check_if_citizen_address_job_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_address/checkpoints/check_if_citizen_address_job_exists.hpl new file mode 100644 index 0000000..2de59ca --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_address/checkpoints/check_if_citizen_address_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_citizen_address_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'citizen_address_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Basic + Y + N + 0 + ${STATUS} + + + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_address/job_citizen_address.hwf b/mappings/info_recruits/citizen_tables/citizen_address/job_citizen_address.hwf new file mode 100644 index 0000000..495a2c2 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_address/job_citizen_address.hwf @@ -0,0 +1,268 @@ + + + job_citizen_address + Y + + + + 0 + - + 2025/06/05 14:27:15.055 + - + 2025/06/05 14:27:15.055 + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 416 + 208 + + + + check_if_citizen_address_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/check_if_citizen_address_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 608 + 208 + + + + citizen_address_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 880 + 208 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1120 + 208 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/recruitment_five_flow_on_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 1120 + 512 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 880 + 368 + + + + Simple evaluation + + SIMPLE_EVAL + + + + boolean + + + + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 880 + 512 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 880 + 704 + + + + + + Start + check_if_citizen_address_job_exists.hpl + Y + Y + Y + + + check_if_citizen_address_job_exists.hpl + citizen_address_job_exists_check + Y + Y + N + + + citizen_address_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + citizen_address_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow.hpl new file mode 100644 index 0000000..fbffb7c --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow.hpl @@ -0,0 +1,395 @@ + + + + citizen_address_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Table output + Change job status on error + Y + + + Change job status on error + Abort + Y + + + Table output + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Table input + Identify last row in a stream + Y + + + Identify last row in a stream + Table output + Y + + + Table output + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1328 + 704 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 832 + 704 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}' +and status = 'PROCESSING'; + + + + + 1328 + 96 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 240 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 832 + 96 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1328 + 320 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 640 + 320 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id::uuid, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS residence_address, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateStart')::date END) AS residence_registration_date, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateEnd')::date END) AS residence_deregistration_date, + + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS place_stay_address, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateStart')::date END) AS place_stay_registration_date, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateEnd')::date END) AS place_stay_deregistration_date, + CASE + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '1' THEN 'В жилом помещении, не являющимся местом жительства физического лица' + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '2' THEN 'В учреждении уголовно-исполнительной системы' + ELSE NULL + END AS place_stay_registration_type, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN addr->>'reg' END) AS factual_address, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateStart')::date END) AS factual_info_received_date, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateEnd')::date END) AS factual_info_expiry_date +FROM ervu_dashboard.recruits_info ri + JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id + CROSS JOIN LATERAL jsonb_array_elements(ri.addresses) AS addr +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND'${M_R_CR_DATE}'::timestamp >= c.recruit_create_date +GROUP BY ri.recruit_id; + Y + + + 464 + 320 + + + + Table output + TableOutput + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + residence_address + residence_address + + + residence_registration_date + residence_registration_date + + + residence_deregistration_date + residence_deregistration_date + + + place_stay_address + place_stay_address + + + place_stay_registration_date + place_stay_registration_date + + + place_stay_deregistration_date + place_stay_deregistration_date + + + place_stay_registration_type + place_stay_registration_type + + + factual_address + factual_address + + + factual_info_received_date + factual_info_received_date + + + factual_info_expiry_date + factual_info_expiry_date + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_address
+ N + Y + N + Y + + + 832 + 320 + +
+ + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_delta.hpl new file mode 100644 index 0000000..262fee7 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_delta.hpl @@ -0,0 +1,405 @@ + + + + citizen_address_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Insert / update + Change job status on error + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table input + Insert / update + Y + + + Insert / update + Identify last row in a stream + Y + + + Identify last row in a stream + Filter rows + Y + + + Insert / update + Detect empty stream + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1008 + 464 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 752 + 464 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}' +and status = 'DELTA_PROCESSING'; + + + + + 1120 + 16 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 128 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 752 + 16 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1120 + 224 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 944 + 224 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_address
+ + recruit_id + recruit_id + N + + + residence_address + residence_address + Y + + + residence_registration_date + residence_registration_date + Y + + + residence_deregistration_date + residence_deregistration_date + Y + + + place_stay_address + place_stay_address + Y + + + place_stay_registration_date + place_stay_registration_date + Y + + + place_stay_deregistration_date + place_stay_deregistration_date + Y + + + place_stay_registration_type + place_stay_registration_type + Y + + + factual_address + factual_address + Y + + + factual_info_received_date + factual_info_received_date + Y + + + factual_info_expiry_date + factual_info_expiry_date + Y + +
+ N + + + 752 + 224 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id::uuid, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS residence_address, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateStart')::date END) AS residence_registration_date, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateEnd')::date END) AS residence_deregistration_date, + + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS place_stay_address, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateStart')::date END) AS place_stay_registration_date, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateEnd')::date END) AS place_stay_deregistration_date, + CASE + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '1' THEN 'В жилом помещении, не являющимся местом жительства физического лица' + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '2' THEN 'В учреждении уголовно-исполнительной системы' + ELSE NULL + END AS place_stay_registration_type, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN addr->>'reg' END) AS factual_address, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateStart')::date END) AS factual_info_received_date, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateEnd')::date END) AS factual_info_expiry_date +FROM ervu_dashboard.recruits_info ri + JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id + CROSS JOIN LATERAL jsonb_array_elements(ri.addresses) AS addr +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND'${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND c.update_date >= '${M_R_UP_DATE}'::timestamp +GROUP BY ri.recruit_id; + Y + + + 400 + 224 + + + + + Insert / update + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_repeat.hpl new file mode 100644 index 0000000..6722b66 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_repeat.hpl @@ -0,0 +1,418 @@ + + + + citizen_address_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Insert / update + Change job status on error + Y + + + Insert / update + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Identify last row in a stream + Y + + + Identify last row in a stream + Filter rows + Y + + + Table input + Insert / update + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1232 + 544 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 768 + 544 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}' +and status = 'PROCESSING'; + + + + + 1120 + 16 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL; + + + 176 + 272 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 768 + 16 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1120 + 272 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 960 + 272 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_address
+ + recruit_id + recruit_id + N + + + residence_address + residence_address + Y + + + residence_registration_date + residence_registration_date + Y + + + residence_deregistration_date + residence_deregistration_date + Y + + + place_stay_address + place_stay_address + Y + + + place_stay_registration_date + place_stay_registration_date + Y + + + place_stay_deregistration_date + place_stay_deregistration_date + Y + + + place_stay_registration_type + place_stay_registration_type + Y + + + factual_address + factual_address + Y + + + factual_info_received_date + factual_info_received_date + Y + + + factual_info_expiry_date + factual_info_expiry_date + Y + +
+ N + + + 768 + 272 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id::uuid, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS residence_address, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateStart')::date END) AS residence_registration_date, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateEnd')::date END) AS residence_deregistration_date, + + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS place_stay_address, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateStart')::date END) AS place_stay_registration_date, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateEnd')::date END) AS place_stay_deregistration_date, + CASE + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '1' THEN 'В жилом помещении, не являющимся местом жительства физического лица' + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '2' THEN 'В учреждении уголовно-исполнительной системы' + ELSE NULL + END AS place_stay_registration_type, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN addr->>'reg' END) AS factual_address, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateStart')::date END) AS factual_info_received_date, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateEnd')::date END) AS factual_info_expiry_date +FROM ervu_dashboard.recruits_info ri + JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id + CROSS JOIN LATERAL jsonb_array_elements(ri.addresses) AS addr +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND'${M_R_CR_DATE}'::timestamp >= c.recruit_create_date +GROUP BY ri.recruit_id; + Y + + + 480 + 272 + + + + + Insert / update + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_address/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_address/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..3224f5a --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_address/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + citizen_address_flow_delta.hpl + Y + + + Table input + citizen_address_flow_delta.hpl 2 + Y + + + Table input + citizen_address_flow_delta.hpl 3 + Y + + + Table input + citizen_address_flow_delta.hpl 4 + Y + + + Table input + citizen_address_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_address_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + citizen_address_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 128 + + + + citizen_address_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 208 + + + + citizen_address_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 288 + + + + citizen_address_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 368 + + + + citizen_address_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_address/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen_address/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..9f6a26c --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_address/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + citizen_address_flow_repeat.hpl + Y + + + Table input + citizen_address_flow_repeat.hpl 3 + Y + + + Table input + citizen_address_flow_repeat.hpl 2 + Y + + + Table input + citizen_address_flow_repeat.hpl 4 + Y + + + Table input + citizen_address_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_address_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + citizen_address_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 208 + + + + citizen_address_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 288 + + + + citizen_address_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 368 + + + + citizen_address_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 448 + + + + citizen_address_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_address/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_address/recruitments_five_flow.hpl new file mode 100644 index 0000000..9510b67 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_address/recruitments_five_flow.hpl @@ -0,0 +1,356 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + citizen_address_flow.hpl + Y + + + Get all recruitments ordered by created_date + citizen_address_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + citizen_address_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + citizen_address_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + citizen_address_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment; + N + + + 432 + 304 + + + + citizen_address_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 144 + + + + citizen_address_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 224 + + + + citizen_address_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 304 + + + + citizen_address_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 384 + + + + citizen_address_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_address_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53.hpl deleted file mode 100644 index 894af88..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53.hpl +++ /dev/null @@ -1,124 +0,0 @@ - - - - branching_citizen_appealing_violations_fz53 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 09:54:43.724 - - - 2025/06/09 09:54:43.724 - - - - - - Set variables 2 - Write to log 2 - N - - - Table input - Set variables 2 - Y - - - - Set variables 2 - SetVariable - - Y - - 1 - - none - - - - - pipeline - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW - - - Y - - - 1056 - 256 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - select - status as STATUS, - job_name AS PIPELINE -from public.etl_checkpoints -where job_name = 'job_citizen_appealing_violations_fz53' - N - - - 816 - 256 - - - - Write to log 2 - WriteToLog - - Y - - 1 - - none - - - Y - - - pipeline - - - status - - - N - 0 - Basic - ${PIPE} -${STATUS} - - - 1280 - 256 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53_delta.hpl deleted file mode 100644 index 35eb784..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53_delta.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - branching_citizen_appealing_violations_fz53_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 09:54:43.724 - - - 2025/06/09 09:54:43.724 - - - - - - Set variables 2 - Write to log 2 - N - - - Table input - Set variables 2 - Y - - - - Set variables 2 - SetVariable - - Y - - 1 - - none - - - - - pipeline - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW - - - Y - - - 1056 - 256 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - COALESCE(job_name, 'job_citizen_appealing_violations_fz53_delta') AS PIPELINE, - COALESCE(status, 'ERROR') AS STATUS, - current_timestamp::timestamp as record_created -FROM ( - select - CASE - WHEN status = 'PROCESSING' THEN 'ERROR' - ELSE status - END AS status, - job_name - from public.etl_checkpoints - where job_name = 'job_citizen_appealing_violations_fz53_delta' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_appealing_violations_fz53_delta' - ) -) t - N - - - 816 - 256 - - - - Write to log 2 - WriteToLog - - Y - - 1 - - none - - - Y - - - pipeline - - - status - - - N - 0 - Basic - ${PIPE} -${STATUS} - - - 1280 - 256 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..feafe81 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_appealing_violations_fz53_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_error.hpl deleted file mode 100644 index 17b638f..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_error.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_citizen_appealing_violations_fz53_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'citizen_appealing_violations_fz53_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_success.hpl deleted file mode 100644 index 7cca14e..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_success.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_citizen_appealing_violations_fz53_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'citizen_appealing_violations_fz53_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_error.hpl deleted file mode 100644 index 20d3515..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_error.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_citizen_appealing_violations_fz53_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_appealing_violations_fz53_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_success.hpl deleted file mode 100644 index 4c86e09..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_success.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_citizen_appealing_violations_fz53_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_appealing_violations_fz53_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_error.hpl deleted file mode 100644 index eff6309..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_error.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_citizen_appealing_violations_fz53_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_appealing_violations_fz53_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_success.hpl deleted file mode 100644 index dde1f6c..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_success.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_citizen_appealing_violations_fz53_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_appealing_violations_fz53_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_error.hpl deleted file mode 100644 index b8ea516..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_appealing_violations_fz53_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_appealing_violations_fz53_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_success.hpl deleted file mode 100644 index d615e08..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_appealing_violations_fz53_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_appealing_violations_fz53_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_error.hpl deleted file mode 100644 index 25d529e..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_appealing_violations_fz53_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_appealing_violations_fz53_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_success.hpl deleted file mode 100644 index 64c33fa..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_appealing_violations_fz53_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_appealing_violations_fz53_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl deleted file mode 100644 index 57bec30..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_appealing_violations_fz53_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow1' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl deleted file mode 100644 index 5a31b60..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_appealing_violations_fz53_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow1' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl deleted file mode 100644 index 2bb7cb2..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl +++ /dev/null @@ -1,102 +0,0 @@ - - - - change_status_delta_citizen_appealing_violations_fz53_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow2' as job_name, - 'ERROR' as status, - current_timestamp as record_created - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl deleted file mode 100644 index 02f1d71..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_appealing_violations_fz53_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow2' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl deleted file mode 100644 index bad8452..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_appealing_violations_fz53_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow3' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl deleted file mode 100644 index c52e330..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_appealing_violations_fz53_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow3' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl deleted file mode 100644 index e5b0f66..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_appealing_violations_fz53_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow4' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl deleted file mode 100644 index ed8c6b6..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_appealing_violations_fz53_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow4' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl deleted file mode 100644 index b368dc1..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_appealing_violations_fz53_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow5' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl deleted file mode 100644 index 5f711e1..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_appealing_violations_fz53_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow5' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing.hpl deleted file mode 100644 index 6e63a1c..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - change_status_to_processing - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 16:14:31.162 - - - 2025/06/11 16:14:31.162 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 784 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'job_citizen_appealing_violations_fz53' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_appealing_violations_fz53_flow1' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_appealing_violations_fz53_flow2' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_appealing_violations_fz53_flow3' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_appealing_violations_fz53_flow4' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_appealing_violations_fz53_flow5' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 368 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing_delta.hpl deleted file mode 100644 index 6ace1f9..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing_delta.hpl +++ /dev/null @@ -1,102 +0,0 @@ - - - - change_status_to_processing_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 13:42:26.494 - - - 2025/06/16 13:42:26.494 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1248 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'delta_snils_inn' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 832 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_job_child_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_citizen_appealing_violations_fz53_job_exists.hpl similarity index 70% rename from mappings/info_recruits/citizen_tables/child/checkpoints/check_if_job_child_exists.hpl rename to mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_citizen_appealing_violations_fz53_job_exists.hpl index a2bc69c..374bbbf 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_job_child_exists.hpl +++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_citizen_appealing_violations_fz53_job_exists.hpl @@ -1,7 +1,7 @@ - check_if_job_child_exists + check_if_citizen_appealing_violations_fz53_job_exists Y @@ -13,23 +13,23 @@ 1000 100 - - 2025/06/11 15:20:18.267 + 2025/08/05 13:28:46.661 - - 2025/06/11 15:20:18.267 + 2025/08/05 13:28:46.661 - - Table input - Set variables - Y - Set variables Write to log N + + Table input + Set variables + Y + Set variables @@ -44,21 +44,16 @@ - job_name - PIPE - PARENT_WORKFLOW - - - status - STATUS + job_executed_flag + JOB_EXECUTED_FLAG PARENT_WORKFLOW Y - 688 - 352 + 672 + 336 @@ -75,29 +70,17 @@ ervu-dashboard N 0 - SELECT - COALESCE(job_name, 'job_child') AS job_name, - COALESCE(status, 'NEW') AS status, - current_timestamp::timestamp as record_created -FROM ( - SELECT job_name, status - FROM public.etl_checkpoints - WHERE job_name = 'job_child' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_child' - ) -) t + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'citizen_appealing_violations_fz53_job' + limit 1 + ) AS job_executed_flag; N - 400 - 352 + 384 + 336 @@ -120,8 +103,8 @@ FROM ( ${STATUS} - 960 - 240 + 944 + 224 diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_job_citizen_appealing_violations_fz53_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_job_citizen_appealing_violations_fz53_exists.hpl deleted file mode 100644 index fc0f6b5..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_job_citizen_appealing_violations_fz53_exists.hpl +++ /dev/null @@ -1,130 +0,0 @@ - - - - check_if_job_citizen_appealing_violations_fz53_exists - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 15:20:18.267 - - - 2025/06/11 15:20:18.267 - - - - - - Table input - Set variables - Y - - - Set variables - Write to log - N - - - - Set variables - SetVariable - - Y - - 1 - - none - - - - - job_name - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW - - - Y - - - 688 - 352 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - COALESCE(job_name, 'job_citizen_appealing_violations_fz53') AS job_name, - COALESCE(status, 'NEW') AS status, - current_timestamp::timestamp as record_created -FROM ( - SELECT job_name, status - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_appealing_violations_fz53' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_appealing_violations_fz53' - ) -) t - N - - - 400 - 352 - - - - Write to log - WriteToLog - - Y - - 1 - - none - - - Y - - - N - 0 - Basic - ${STATUS} - - - 960 - 240 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_citizen_appealing_violations_fz53_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_citizen_appealing_violations_fz53_error.hpl deleted file mode 100644 index c4c46a7..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_citizen_appealing_violations_fz53_error.hpl +++ /dev/null @@ -1,273 +0,0 @@ - - - - checkpoint_citizen_appealing_violations_fz53_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 10:01:04.895 - - - 2025/06/09 10:01:04.895 - - - - - - Select values - Table output - N - - - Table input - Select values - N - - - Table input - Table output - Y - - - - Select values - SelectValues - - Y - - 1 - - none - - - - N - - idm_id - idm_id - String - -2 - -2 - - false - - - false - - - - - - - - - - 1008 - 608 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - FROM result_ma -), -for_checkpoints as ( - SELECT - 'job_child_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -) -select * from for_checkpoints - N - - - 736 - 448 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - public - N - etl_checkpoints
- N - Y - N - Y - - - 1248 - 448 - -
- - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl deleted file mode 100644 index 5483bad..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl +++ /dev/null @@ -1,869 +0,0 @@ - - - - checkpoint_job_citizen_appealing_violations_fz53 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 14:19:02.590 - - - 2025/06/03 14:19:02.590 - - - - - - Filter rows - Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update - Y - - - Dummy (do nothing) - JSON input state_child_flow1.json - N - - - Dummy (do nothing) - JSON input state_child_flow2.json - N - - - Dummy (do nothing) - JSON input state_child_flow3.json - N - - - Dummy (do nothing) - JSON input state_child_flow4.json - N - - - Dummy (do nothing) - JSON input state_child_flow5.json - N - - - - Abort - Abort - - Y - - 1 - - none - - - ABORT_WITH_ERROR - Y - 0 - - - 1264 - 592 - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - - - Filter rows - FilterRows - - Y - - 1 - - none - - - - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow1 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow2 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow3 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow4 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow5 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - Abort - - - 944 - 592 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 432 - - - - JSON input state_child_flow2.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 512 - - - - JSON input state_child_flow3.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 592 - - - - JSON input state_child_flow4.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 672 - - - - JSON input state_child_flow5.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 752 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'citizen_appealing_violations_fz53_flow1', - 'citizen_appealing_violations_fz53_flow2', - 'citizen_appealing_violations_fz53_flow3', - 'citizen_appealing_violations_fz53_flow4', - 'citizen_appealing_violations_fz53_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'citizen_appealing_violations_fz53_flow1', - 'citizen_appealing_violations_fz53_flow2', - 'citizen_appealing_violations_fz53_flow3', - 'citizen_appealing_violations_fz53_flow4', - 'citizen_appealing_violations_fz53_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_citizen_appealing_violations_fz53' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53_delta.hpl deleted file mode 100644 index 6c9fc6a..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53_delta.hpl +++ /dev/null @@ -1,869 +0,0 @@ - - - - checkpoint_job_citizen_appealing_violations_fz53_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 14:19:02.590 - - - 2025/06/03 14:19:02.590 - - - - - - Filter rows - Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update - Y - - - Dummy (do nothing) - JSON input state_child_flow1.json - N - - - Dummy (do nothing) - JSON input state_child_flow2.json - N - - - Dummy (do nothing) - JSON input state_child_flow3.json - N - - - Dummy (do nothing) - JSON input state_child_flow4.json - N - - - Dummy (do nothing) - JSON input state_child_flow5.json - N - - - - Abort - Abort - - Y - - 1 - - none - - - ABORT_WITH_ERROR - Y - 0 - - - 1264 - 592 - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - - - Filter rows - FilterRows - - Y - - 1 - - none - - - - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow1 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow2 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow3 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow4 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow5 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - Abort - - - 944 - 592 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 432 - - - - JSON input state_child_flow2.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 512 - - - - JSON input state_child_flow3.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 592 - - - - JSON input state_child_flow4.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 672 - - - - JSON input state_child_flow5.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 752 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'delta_snils_inn_flow1', - 'delta_snils_inn_flow2', - 'delta_snils_inn_flow3', - 'delta_snils_inn_flow4', - 'delta_snils_inn_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'delta_snils_inn_flow1', - 'delta_snils_inn_flow2', - 'delta_snils_inn_flow3', - 'delta_snils_inn_flow4', - 'delta_snils_inn_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_snils_inn_delta' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/citizen_appealing_violations_fz53_job.hwf b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/citizen_appealing_violations_fz53_job.hwf new file mode 100644 index 0000000..fbff1c8 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/citizen_appealing_violations_fz53_job.hwf @@ -0,0 +1,362 @@ + + + citizen_appealing_violations_fz53_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 96 + 304 + + + + check_if_citizen_appealing_violations_fz53_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_citizen_appealing_violations_fz53_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 304 + + + + citizen_appealing_violations_fz53_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 832 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1296 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_on_error.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 1296 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 832 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 832 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_delta.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 832 + 800 + + + + + + Start + check_if_citizen_appealing_violations_fz53_job_exists.hpl + Y + Y + Y + + + check_if_citizen_appealing_violations_fz53_job_exists.hpl + citizen_appealing_violations_fz53_job_exists_check + Y + Y + N + + + citizen_appealing_violations_fz53_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + citizen_appealing_violations_fz53_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 944 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 944 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 752 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + citizen_appealing_violations_fz53_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 206 + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/job_citizen_appealing_violations_fz53.hwf b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/job_citizen_appealing_violations_fz53.hwf deleted file mode 100644 index 7151cc4..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/job_citizen_appealing_violations_fz53.hwf +++ /dev/null @@ -1,2478 +0,0 @@ - - - job_citizen_appealing_violations_fz53 - Y - - - - 0 - - - 2025/06/05 14:27:15.055 - - - 2025/06/05 14:27:15.055 - - - M_R_CR_DATE - 3001-01-01 00:00:00 - - - - M_R_UP_DATE - - - - - - - Start - - SPECIAL - - 1 - 12 - 60 - 0 - 0 - N - 0 - 1 - N - 272 - 400 - - - - checkpoint_job_citizen_appealing_violations_fz53.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 1136 - 1280 - - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2832 - 400 - - - - citizen_appealing_violations_fz53_flow1.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 3344 - 80 - - - - citizen_appealing_violations_fz53_flow2.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 3344 - 240 - - - - citizen_appealing_violations_fz53_flow3.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 3344 - 400 - - - - citizen_appealing_violations_fz53_flow4.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 3344 - 560 - - - - citizen_appealing_violations_fz53_flow5.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 3344 - 720 - - - - Abort workflow - - ABORT - - N - N - 2816 - 208 - - - - Success new citizen_appealing_violations_fz53 - - SUCCESS - - N - 4720 - 432 - - - - branching_citizen_appealing_violations_fz53.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 1584 - 1280 - - - - Simple citizen_appealing_violations_fz53 WHERE SUCCESS - - SIMPLE_EVAL - - SUCCESS - string - true - equal - equal - N - variable - STATUS - N - 1696 - 1680 - - - - Simple citizen_appealing_violations_fz53 WHERE ERROR - - SIMPLE_EVAL - - ERROR - string - true - equal - equal - N - variable - STATUS - N - 2048 - 1280 - - - - recruitment_rows_five_flow_if_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_rows_five_flow_if_error.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2864 - 1280 - - - - Abort workflow 2 - - ABORT - - N - N - 2768 - 1040 - - - - delta_citizen_appealing_violations_fz53_flow1.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow1.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 3344 - 1792 - - - - check_if_job_citizen_appealing_violations_fz53_exists.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_job_citizen_appealing_violations_fz53_exists.hpl - Basic - - Y - - N - local - N - N - Y - N - 528 - 400 - - - - Simple job_citizen_appealing_violations_fz53_exists check NEW - - SIMPLE_EVAL - - NEW - string - true - equal - equal - N - variable - STATUS - N - 992 - 400 - - - - change_status_to_processing.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 2848 - 560 - - - - change_status_citizen_appealing_violations_fz53_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 80 - - - - change_status_citizen_appealing_violations_fz53_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 160 - - - - change_status_citizen_appealing_violations_fz53_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 240 - - - - change_status_citizen_appealing_violations_fz53_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 320 - - - - change_status_citizen_appealing_violations_fz53_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 400 - - - - change_status_citizen_appealing_violations_fz53_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 480 - - - - change_status_citizen_appealing_violations_fz53_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 560 - - - - change_status_citizen_appealing_violations_fz53_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 640 - - - - change_status_citizen_appealing_violations_fz53_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 720 - - - - change_status_citizen_appealing_violations_fz53_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 800 - - - - checkpoint_job_citizen_appealing_violations_fz53.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 4320 - 432 - - - - change_status_to_processing.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 2848 - 1424 - - - - change_status_to_processing_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 2864 - 2304 - - - - change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1792 - - - - change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1872 - - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2832 - 2112 - - - - Abort workflow 2 2 - - ABORT - - N - N - 2816 - 1952 - - - - delta_citizen_appealing_violations_fz53_flow2.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow2.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 3344 - 1952 - - - - change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1952 - - - - change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 2032 - - - - delta_citizen_appealing_violations_fz53_flow3.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow3.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 3344 - 2112 - - - - change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 2112 - - - - change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 2192 - - - - delta_citizen_appealing_violations_fz53_flow4.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow4.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 3344 - 2272 - - - - change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 2272 - - - - change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 2352 - - - - delta_citizen_appealing_violations_fz53_flow5.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow5.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 3344 - 2432 - - - - change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 2432 - - - - change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 2512 - - - - branching_citizen_appealing_violations_fz53_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 1824 - 2112 - - - - Simple delta_citizen_appealing_violations_fz53 WHERE ERROR - - SIMPLE_EVAL - - ERROR - string - true - equal - equal - N - variable - STATUS - N - 2256 - 2112 - - - - delta_citizen_appealing_violations_fz53 success - - SUCCESS - - N - 2368 - 1904 - - - - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 4384 - 2112 - - - - Success delta_citizen_appealing_violations_fz53 - - SUCCESS - - N - 4784 - 2112 - - - - citizen_appealing_violations_fz53_flow1.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 3344 - 960 - - - - citizen_appealing_violations_fz53_flow2.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 3344 - 1120 - - - - citizen_appealing_violations_fz53_flow3.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 3344 - 1280 - - - - citizen_appealing_violations_fz53_flow4.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 3344 - 1440 - - - - citizen_appealing_violations_fz53_flow5.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 3344 - 1600 - - - - Success citizen_appealing_violations_fz53 after error - - SUCCESS - - N - 4720 - 1312 - - - - change_status_citizen_appealing_violations_fz53_flow1_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 960 - - - - change_status_citizen_appealing_violations_fz53_flow1_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1040 - - - - change_status_citizen_appealing_violations_fz53_flow2_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1120 - - - - change_status_citizen_appealing_violations_fz53_flow2_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1200 - - - - change_status_citizen_appealing_violations_fz53_flow3_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1280 - - - - change_status_citizen_appealing_violations_fz53_flow3_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1360 - - - - change_status_citizen_appealing_violations_fz53_flow4_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1440 - - - - change_status_citizen_appealing_violations_fz53_flow4_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1520 - - - - change_status_citizen_appealing_violations_fz53_flow5_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1600 - - - - change_status_citizen_appealing_violations_fz53_flow5_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3856 - 1680 - - - - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 4320 - 1312 - - - - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl - citizen_appealing_violations_fz53_flow1.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl - citizen_appealing_violations_fz53_flow2.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl - citizen_appealing_violations_fz53_flow3.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl - citizen_appealing_violations_fz53_flow4.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl - citizen_appealing_violations_fz53_flow5.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl - Abort workflow - Y - N - N - - - branching_citizen_appealing_violations_fz53.hpl - Simple citizen_appealing_violations_fz53 WHERE ERROR - Y - N - Y - - - branching_citizen_appealing_violations_fz53.hpl - Simple citizen_appealing_violations_fz53 WHERE SUCCESS - Y - N - Y - - - recruitment_rows_five_flow_if_error.hpl - Abort workflow 2 - Y - N - N - - - Start - check_if_job_citizen_appealing_violations_fz53_exists.hpl - Y - Y - Y - - - check_if_job_citizen_appealing_violations_fz53_exists.hpl - Simple job_citizen_appealing_violations_fz53_exists check NEW - Y - Y - N - - - citizen_appealing_violations_fz53_flow1.hpl - change_status_citizen_appealing_violations_fz53_flow1_success.hpl - Y - Y - N - - - citizen_appealing_violations_fz53_flow1.hpl - change_status_citizen_appealing_violations_fz53_flow1_error.hpl - Y - N - N - - - citizen_appealing_violations_fz53_flow2.hpl - change_status_citizen_appealing_violations_fz53_flow2_success.hpl - Y - Y - N - - - citizen_appealing_violations_fz53_flow2.hpl - change_status_citizen_appealing_violations_fz53_flow2_error.hpl - Y - N - N - - - citizen_appealing_violations_fz53_flow3.hpl - change_status_citizen_appealing_violations_fz53_flow3_success.hpl - Y - Y - N - - - citizen_appealing_violations_fz53_flow3.hpl - change_status_citizen_appealing_violations_fz53_flow3_error.hpl - Y - N - N - - - citizen_appealing_violations_fz53_flow4.hpl - change_status_citizen_appealing_violations_fz53_flow4_success.hpl - Y - Y - N - - - citizen_appealing_violations_fz53_flow4.hpl - change_status_citizen_appealing_violations_fz53_flow4_error.hpl - Y - N - N - - - citizen_appealing_violations_fz53_flow5.hpl - change_status_citizen_appealing_violations_fz53_flow5_success.hpl - Y - Y - N - - - citizen_appealing_violations_fz53_flow5.hpl - change_status_citizen_appealing_violations_fz53_flow5_error.hpl - Y - N - N - - - change_status_citizen_appealing_violations_fz53_flow5_error.hpl - checkpoint_job_citizen_appealing_violations_fz53.hpl - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow5_success.hpl - checkpoint_job_citizen_appealing_violations_fz53.hpl - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow4_error.hpl - checkpoint_job_citizen_appealing_violations_fz53.hpl - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow4_success.hpl - checkpoint_job_citizen_appealing_violations_fz53.hpl - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow3_error.hpl - checkpoint_job_citizen_appealing_violations_fz53.hpl - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow3_success.hpl - checkpoint_job_citizen_appealing_violations_fz53.hpl - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow2_error.hpl - checkpoint_job_citizen_appealing_violations_fz53.hpl - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow2_success.hpl - checkpoint_job_citizen_appealing_violations_fz53.hpl - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow1_error.hpl - checkpoint_job_citizen_appealing_violations_fz53.hpl - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow1_success.hpl - checkpoint_job_citizen_appealing_violations_fz53.hpl - Y - N - Y - - - checkpoint_job_citizen_appealing_violations_fz53.hpl - Success new citizen_appealing_violations_fz53 - Y - Y - N - - - checkpoint_job_citizen_appealing_violations_fz53.hpl (2) - branching_citizen_appealing_violations_fz53.hpl - Y - N - Y - - - Simple job_citizen_appealing_violations_fz53_exists check NEW - checkpoint_job_citizen_appealing_violations_fz53.hpl (2) - Y - N - N - - - delta_citizen_appealing_violations_fz53_flow1.hpl - change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl - Y - Y - N - - - delta_citizen_appealing_violations_fz53_flow1.hpl - change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl - Y - N - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl - change_status_to_processing.hpl - Y - Y - N - - - Simple job_citizen_appealing_violations_fz53_exists check NEW - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - change_status_to_processing.hpl (2) - Y - Y - N - - - Simple citizen_appealing_violations_fz53 WHERE ERROR - recruitment_rows_five_flow_if_error.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2) - delta_citizen_appealing_violations_fz53_flow1.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2) - change_status_to_processing_delta.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2) - Abort workflow 2 2 - Y - N - N - - - delta_citizen_appealing_violations_fz53_flow2.hpl - change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl - Y - Y - N - - - delta_citizen_appealing_violations_fz53_flow2.hpl - change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl - Y - N - N - - - delta_citizen_appealing_violations_fz53_flow3.hpl - change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl - Y - Y - N - - - delta_citizen_appealing_violations_fz53_flow3.hpl - change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl - Y - N - N - - - delta_citizen_appealing_violations_fz53_flow4.hpl - change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl - Y - Y - N - - - delta_citizen_appealing_violations_fz53_flow4.hpl - change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl - Y - N - N - - - delta_citizen_appealing_violations_fz53_flow5.hpl - change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl - Y - Y - N - - - delta_citizen_appealing_violations_fz53_flow5.hpl - change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl - Y - N - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2) - delta_citizen_appealing_violations_fz53_flow3.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2) - delta_citizen_appealing_violations_fz53_flow2.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2) - delta_citizen_appealing_violations_fz53_flow4.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2) - delta_citizen_appealing_violations_fz53_flow5.hpl - Y - Y - N - - - Simple citizen_appealing_violations_fz53 WHERE SUCCESS - branching_citizen_appealing_violations_fz53_delta.hpl - Y - Y - N - - - Simple delta_citizen_appealing_violations_fz53 WHERE ERROR - delta_citizen_appealing_violations_fz53 success - Y - N - N - - - branching_citizen_appealing_violations_fz53_delta.hpl - Simple delta_citizen_appealing_violations_fz53 WHERE ERROR - Y - Y - N - - - Simple delta_citizen_appealing_violations_fz53 WHERE ERROR - recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2) - Y - Y - N - - - change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Y - Y - N - - - checkpoint_job_citizen_appealing_violations_fz53_delta.hpl - Success delta_citizen_appealing_violations_fz53 - Y - Y - N - - - citizen_appealing_violations_fz53_flow1.hpl 2 - change_status_citizen_appealing_violations_fz53_flow1_success.hpl 2 - Y - Y - N - - - citizen_appealing_violations_fz53_flow1.hpl 2 - change_status_citizen_appealing_violations_fz53_flow1_error.hpl 2 - Y - N - N - - - citizen_appealing_violations_fz53_flow2.hpl 2 - change_status_citizen_appealing_violations_fz53_flow2_success.hpl 2 - Y - Y - N - - - citizen_appealing_violations_fz53_flow2.hpl 2 - change_status_citizen_appealing_violations_fz53_flow2_error.hpl 2 - Y - N - N - - - citizen_appealing_violations_fz53_flow3.hpl 2 - change_status_citizen_appealing_violations_fz53_flow3_success.hpl 2 - Y - Y - N - - - citizen_appealing_violations_fz53_flow3.hpl 2 - change_status_citizen_appealing_violations_fz53_flow3_error.hpl 2 - Y - N - N - - - citizen_appealing_violations_fz53_flow4.hpl 2 - change_status_citizen_appealing_violations_fz53_flow4_success.hpl 2 - Y - Y - N - - - citizen_appealing_violations_fz53_flow4.hpl 2 - change_status_citizen_appealing_violations_fz53_flow4_error.hpl 2 - Y - N - N - - - citizen_appealing_violations_fz53_flow5.hpl 2 - change_status_citizen_appealing_violations_fz53_flow5_success.hpl 2 - Y - Y - N - - - citizen_appealing_violations_fz53_flow5.hpl 2 - change_status_citizen_appealing_violations_fz53_flow5_error.hpl 2 - Y - N - N - - - change_status_citizen_appealing_violations_fz53_flow1_success.hpl 2 - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow1_error.hpl 2 - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow2_success.hpl 2 - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow2_error.hpl 2 - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow3_success.hpl 2 - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow3_error.hpl 2 - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow4_success.hpl 2 - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow4_error.hpl 2 - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow5_success.hpl 2 - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_appealing_violations_fz53_flow5_error.hpl 2 - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - Y - N - Y - - - checkpoint_job_citizen_appealing_violations_fz53.hpl 2 - Success citizen_appealing_violations_fz53 after error - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_appealing_violations_fz53_flow3.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_appealing_violations_fz53_flow2.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_appealing_violations_fz53_flow1.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_appealing_violations_fz53_flow4.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_appealing_violations_fz53_flow5.hpl 2 - Y - Y - N - - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 72 - 1088 - 176 - 0001-01-01 00:00:00 - -3001-01-01 00:00:00 - - 114 - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl new file mode 100644 index 0000000..5ce3669 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl @@ -0,0 +1,521 @@ + + + + citizen_appealing_violations_fz53_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table output + Change job status on error + Y + + + Table input + Table output + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Table output + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1472 + 832 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1472 + 656 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1952 + 512 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 432 + 656 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1696 + 512 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1696 + 608 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_appealing_violations_fz53_raw + is_appealing_violations_fz53 + MAX + + + + N + + + recruit_id + + + N + + grp + + + 832 + 512 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 1024 + 512 + + + + Table input + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + SELECT + ad.recruit_id, + ad.create_date, -- дата создания обжалования + ad.appeal_number AS number_appealed, -- номер обжалуемого решения + ad.appeal_date AS date_appealed, -- дата обжалуемого решения + ad.result_number AS case_number, -- номер принятого решения + ad.result_date AS decision_date, -- дата принятия решения + CASE + WHEN ad.result = '1' THEN 'Удовлетворена' + WHEN ad.result = '2' THEN 'Частично удовлетворена' + WHEN ad.result = '3' THEN 'Отказано в удовлетворении' + ELSE NULL + END AS result_appeal, -- код рассмотрения + ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение + ad.reason_for_add_entry AS grounds, -- основание для внесения записи + ad.hidden, + CASE + WHEN ad.hidden is false THEN 1 + ELSE 0 + END AS is_appealing_violations_fz53 +FROM public.appeal_document_dto ad +JOIN public.recruit r ON r.id = ad.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= ad.create_date + --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты +--WHERE hidden IS FALSE + +${LIMIT_FW} + Y + + + 640 + 656 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + create_date + create_date + + + number_appealed + number_appealed + + + date_appealed + date_appealed + + + case_number + case_number + + + decision_date + decision_date + + + result_appeal + result_appeal + + + name_commission + name_commission + + + grounds + grounds + + + hidden + hidden + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_appealing_violations_fz53
+ N + Y + N + Y + + + 832 + 656 + +
+ + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_appealing_violations_fz53 + has_appealing_violations_fz53 + +
+ N + Y + + + 1472 + 512 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_appealing_violations_fz53 + has_appealing_violations_fz53_raw == 1 + Boolean + -1 + -1 + + + + + 1248 + 512 + + + + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow1.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow1.hpl deleted file mode 100644 index d1ca18f..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow1.hpl +++ /dev/null @@ -1,161 +0,0 @@ - - - - citizen_appealing_violations_fz53_flow1 - Y - - - - Normal - 0 - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - ad.recruit_id, - ad.create_date, -- дата создания обжалования - ad.appeal_number AS number_appealed, -- номер обжалуемого решения - ad.appeal_date AS date_appealed, -- дата обжалуемого решения - ad.result_number AS case_number, -- номер принятого решения - ad.result_date AS decision_date, -- дата принятия решения - CASE - WHEN ad.result = '1' THEN 'Удовлетворена' - WHEN ad.result = '2' THEN 'Частично удовлетворена' - WHEN ad.result = '3' THEN 'Отказано в удовлетворении' - ELSE NULL - END AS result_appeal, -- код рассмотрения - ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение - ad.reason_for_add_entry AS grounds, -- основание для внесения записи - ad.hidden --has_appealing_violations_fz53 -FROM public.appeal_document_dto ad -JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты ---WHERE hidden IS FALSE - Y - - - 448 - 288 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - create_date - create_date - - - ervu_dashboard - citizen_appealing_violations_fz53
- - recruit_id - recruit_id - N - - - create_date - create_date - N - - - number_appealed - number_appealed - Y - - - date_appealed - date_appealed - Y - - - case_number - case_number - Y - - - decision_date - decision_date - Y - - - result_appeal - result_appeal - Y - - - name_commission - name_commission - Y - - - grounds - grounds - Y - - - hidden - hidden - Y - -
- N - - - 864 - 288 - -
- - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow2.hpl deleted file mode 100644 index 1b5d294..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow2.hpl +++ /dev/null @@ -1,158 +0,0 @@ - - - - citizen_appealing_violations_fz53_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - create_date - create_date - - ervu_dashboard - citizen_appealing_violations_fz53
- - recruit_id - recruit_id - N - - - create_date - create_date - N - - - number_appealed - number_appealed - Y - - - date_appealed - date_appealed - Y - - - case_number - case_number - Y - - - decision_date - decision_date - Y - - - result_appeal - result_appeal - Y - - - name_commission - name_commission - Y - - - grounds - grounds - Y - - - hidden - hidden - Y - -
- N - - - 928 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - ad.recruit_id, - ad.create_date, -- дата создания обжалования - ad.appeal_number AS number_appealed, -- номер обжалуемого решения - ad.appeal_date AS date_appealed, -- дата обжалуемого решения - ad.result_number AS case_number, -- номер принятого решения - ad.result_date AS decision_date, -- дата принятия решения - CASE - WHEN ad.result = '1' THEN 'Удовлетворена' - WHEN ad.result = '2' THEN 'Частично удовлетворена' - WHEN ad.result = '3' THEN 'Отказано в удовлетворении' - ELSE NULL - END AS result_appeal, -- код рассмотрения - ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение - ad.reason_for_add_entry AS grounds, -- основание для внесения записи - ad.hidden --has_appealing_violations_fz53 -FROM public.appeal_document_dto ad -JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты ---WHERE hidden IS FALSE - Y - - - 512 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow3.hpl deleted file mode 100644 index 8ce8203..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow3.hpl +++ /dev/null @@ -1,158 +0,0 @@ - - - - citizen_appealing_violations_fz53_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - create_date - create_date - - ervu_dashboard - citizen_appealing_violations_fz53
- - recruit_id - recruit_id - N - - - create_date - create_date - N - - - number_appealed - number_appealed - Y - - - date_appealed - date_appealed - Y - - - case_number - case_number - Y - - - decision_date - decision_date - Y - - - result_appeal - result_appeal - Y - - - name_commission - name_commission - Y - - - grounds - grounds - Y - - - hidden - hidden - Y - -
- N - - - 992 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - ad.recruit_id, - ad.create_date, -- дата создания обжалования - ad.appeal_number AS number_appealed, -- номер обжалуемого решения - ad.appeal_date AS date_appealed, -- дата обжалуемого решения - ad.result_number AS case_number, -- номер принятого решения - ad.result_date AS decision_date, -- дата принятия решения - CASE - WHEN ad.result = '1' THEN 'Удовлетворена' - WHEN ad.result = '2' THEN 'Частично удовлетворена' - WHEN ad.result = '3' THEN 'Отказано в удовлетворении' - ELSE NULL - END AS result_appeal, -- код рассмотрения - ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение - ad.reason_for_add_entry AS grounds, -- основание для внесения записи - ad.hidden --has_appealing_violations_fz53 -FROM public.appeal_document_dto ad -JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты ---WHERE hidden IS FALSE - Y - - - 576 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow4.hpl deleted file mode 100644 index 1446dc1..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow4.hpl +++ /dev/null @@ -1,158 +0,0 @@ - - - - citizen_appealing_violations_fz53_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - create_date - create_date - - ervu_dashboard - citizen_appealing_violations_fz53
- - recruit_id - recruit_id - N - - - create_date - create_date - N - - - number_appealed - number_appealed - Y - - - date_appealed - date_appealed - Y - - - case_number - case_number - Y - - - decision_date - decision_date - Y - - - result_appeal - result_appeal - Y - - - name_commission - name_commission - Y - - - grounds - grounds - Y - - - hidden - hidden - Y - -
- N - - - 896 - 368 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - ad.recruit_id, - ad.create_date, -- дата создания обжалования - ad.appeal_number AS number_appealed, -- номер обжалуемого решения - ad.appeal_date AS date_appealed, -- дата обжалуемого решения - ad.result_number AS case_number, -- номер принятого решения - ad.result_date AS decision_date, -- дата принятия решения - CASE - WHEN ad.result = '1' THEN 'Удовлетворена' - WHEN ad.result = '2' THEN 'Частично удовлетворена' - WHEN ad.result = '3' THEN 'Отказано в удовлетворении' - ELSE NULL - END AS result_appeal, -- код рассмотрения - ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение - ad.reason_for_add_entry AS grounds, -- основание для внесения записи - ad.hidden --has_appealing_violations_fz53 -FROM public.appeal_document_dto ad -JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты ---WHERE hidden IS FALSE - Y - - - 480 - 368 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow5.hpl deleted file mode 100644 index 5614a92..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow5.hpl +++ /dev/null @@ -1,158 +0,0 @@ - - - - citizen_appealing_violations_fz53_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - create_date - create_date - - ervu_dashboard - citizen_appealing_violations_fz53
- - recruit_id - recruit_id - N - - - create_date - create_date - N - - - number_appealed - number_appealed - Y - - - date_appealed - date_appealed - Y - - - case_number - case_number - Y - - - decision_date - decision_date - Y - - - result_appeal - result_appeal - Y - - - name_commission - name_commission - Y - - - grounds - grounds - Y - - - hidden - hidden - Y - -
- N - - - 1104 - 368 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - ad.recruit_id, - ad.create_date, -- дата создания обжалования - ad.appeal_number AS number_appealed, -- номер обжалуемого решения - ad.appeal_date AS date_appealed, -- дата обжалуемого решения - ad.result_number AS case_number, -- номер принятого решения - ad.result_date AS decision_date, -- дата принятия решения - CASE - WHEN ad.result = '1' THEN 'Удовлетворена' - WHEN ad.result = '2' THEN 'Частично удовлетворена' - WHEN ad.result = '3' THEN 'Отказано в удовлетворении' - ELSE NULL - END AS result_appeal, -- код рассмотрения - ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение - ad.reason_for_add_entry AS grounds, -- основание для внесения записи - ad.hidden --has_appealing_violations_fz53 -FROM public.appeal_document_dto ad -JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты ---WHERE hidden IS FALSE - Y - - - 688 - 368 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl new file mode 100644 index 0000000..9dfa3ed --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl @@ -0,0 +1,532 @@ + + + + citizen_appealing_violations_fz53_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1360 + 384 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1360 + 224 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1728 + 144 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 336 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1552 + 64 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1472 + 144 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_appealing_violations_fz53_raw + is_appealing_violations_fz53 + MAX + + + N + + + recruit_id + + + N + grp + + + 720 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 912 + 64 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + create_date + create_date + + ervu_dashboard + citizen_appealing_violations_fz53
+ + recruit_id + recruit_id + N + + + create_date + create_date + N + + + number_appealed + number_appealed + Y + + + date_appealed + date_appealed + Y + + + case_number + case_number + Y + + + decision_date + decision_date + Y + + + result_appeal + result_appeal + Y + + + name_commission + name_commission + Y + + + grounds + grounds + Y + + + hidden + hidden + Y + +
+ N + + + 720 + 224 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + SELECT + ad.recruit_id, + ad.create_date, -- дата создания обжалования + ad.appeal_number AS number_appealed, -- номер обжалуемого решения + ad.appeal_date AS date_appealed, -- дата обжалуемого решения + ad.result_number AS case_number, -- номер принятого решения + ad.result_date AS decision_date, -- дата принятия решения + CASE + WHEN ad.result = '1' THEN 'Удовлетворена' + WHEN ad.result = '2' THEN 'Частично удовлетворена' + WHEN ad.result = '3' THEN 'Отказано в удовлетворении' + ELSE NULL + END AS result_appeal, -- код рассмотрения + ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение + ad.reason_for_add_entry AS grounds, -- основание для внесения записи + ad.hidden, + CASE + WHEN ad.hidden is false THEN 1 + ELSE 0 + END AS is_appealing_violations_fz53 +FROM public.appeal_document_dto ad +JOIN public.recruit r ON r.id = ad.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}' + AND ad.create_date >= '${M_R_UP_DATE}'::timestamp + --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты +--WHERE hidden IS FALSE + +${LIMIT_FW} + Y + + + 544 + 224 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_appealing_violations_fz53 + has_appealing_violations_fz53 + +
+ N + Y + + + 1360 + 64 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_appealing_violations_fz53 + has_appealing_violations_fz53_raw == 1 + Boolean + -1 + -1 + + + + + 1136 + 64 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl new file mode 100644 index 0000000..6bb6f26 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl @@ -0,0 +1,547 @@ + + + + citizen_appealing_violations_fz53_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Update + Filter rows + Y + + + Update + Detect empty stream + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1328 + 368 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1328 + 208 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1792 + 80 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1520 + 80 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1536 + 176 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_appealing_violations_fz53_raw + is_appealing_violations_fz53 + MAX + + + N + + + recruit_id + + + N + grp + + + 688 + 80 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 880 + 80 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + create_date + create_date + + ervu_dashboard + citizen_appealing_violations_fz53
+ + recruit_id + recruit_id + N + + + create_date + create_date + N + + + number_appealed + number_appealed + Y + + + date_appealed + date_appealed + Y + + + case_number + case_number + Y + + + decision_date + decision_date + Y + + + result_appeal + result_appeal + Y + + + name_commission + name_commission + Y + + + grounds + grounds + Y + + + hidden + hidden + Y + +
+ N + + + 688 + 208 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + SELECT + ad.recruit_id, + ad.create_date, -- дата создания обжалования + ad.appeal_number AS number_appealed, -- номер обжалуемого решения + ad.appeal_date AS date_appealed, -- дата обжалуемого решения + ad.result_number AS case_number, -- номер принятого решения + ad.result_date AS decision_date, -- дата принятия решения + CASE + WHEN ad.result = '1' THEN 'Удовлетворена' + WHEN ad.result = '2' THEN 'Частично удовлетворена' + WHEN ad.result = '3' THEN 'Отказано в удовлетворении' + ELSE NULL + END AS result_appeal, -- код рассмотрения + ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение + ad.reason_for_add_entry AS grounds, -- основание для внесения записи + ad.hidden, + CASE + WHEN ad.hidden is false THEN 1 + ELSE 0 + END AS is_appealing_violations_fz53 +FROM public.appeal_document_dto ad +JOIN public.recruit r ON r.id = ad.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= ad.create_date + --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты +--WHERE hidden IS FALSE + +${LIMIT_FW} + Y + + + 480 + 208 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_appealing_violations_fz53 + has_appealing_violations_fz53 + +
+ N + Y + + + 1328 + 80 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_appealing_violations_fz53 + has_appealing_violations_fz53 == 1 + Boolean + -1 + -1 + + + + + 1104 + 80 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow1.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow1.hpl deleted file mode 100644 index d065de7..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow1.hpl +++ /dev/null @@ -1,158 +0,0 @@ - - - - delta_citizen_appealing_violations_fz53_flow1 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - create_date - create_date - - ervu_dashboard - citizen_appealing_violations_fz53
- - recruit_id - recruit_id - N - - - create_date - create_date - N - - - number_appealed - number_appealed - Y - - - date_appealed - date_appealed - Y - - - case_number - case_number - Y - - - decision_date - decision_date - Y - - - result_appeal - result_appeal - Y - - - name_commission - name_commission - Y - - - grounds - grounds - Y - - - hidden - hidden - Y - -
- N - - - 976 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - ad.recruit_id, - ad.create_date, -- дата создания обжалования - ad.appeal_number AS number_appealed, -- номер обжалуемого решения - ad.appeal_date AS date_appealed, -- дата обжалуемого решения - ad.result_number AS case_number, -- номер принятого решения - ad.result_date AS decision_date, -- дата принятия решения - CASE - WHEN ad.result = '1' THEN 'Удовлетворена' - WHEN ad.result = '2' THEN 'Частично удовлетворена' - WHEN ad.result = '3' THEN 'Отказано в удовлетворении' - ELSE NULL - END AS result_appeal, -- код рассмотрения - ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение - ad.reason_for_add_entry AS grounds, -- основание для внесения записи - ad.hidden --has_appealing_violations_fz53 -FROM public.appeal_document_dto ad -JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты ---WHERE hidden IS FALSE - Y - - - 560 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow2.hpl deleted file mode 100644 index 1c9afd1..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow2.hpl +++ /dev/null @@ -1,158 +0,0 @@ - - - - delta_citizen_appealing_violations_fz53_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - create_date - create_date - - ervu_dashboard - citizen_appealing_violations_fz53
- - recruit_id - recruit_id - N - - - create_date - create_date - N - - - number_appealed - number_appealed - Y - - - date_appealed - date_appealed - Y - - - case_number - case_number - Y - - - decision_date - decision_date - Y - - - result_appeal - result_appeal - Y - - - name_commission - name_commission - Y - - - grounds - grounds - Y - - - hidden - hidden - Y - -
- N - - - 1056 - 336 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - ad.recruit_id, - ad.create_date, -- дата создания обжалования - ad.appeal_number AS number_appealed, -- номер обжалуемого решения - ad.appeal_date AS date_appealed, -- дата обжалуемого решения - ad.result_number AS case_number, -- номер принятого решения - ad.result_date AS decision_date, -- дата принятия решения - CASE - WHEN ad.result = '1' THEN 'Удовлетворена' - WHEN ad.result = '2' THEN 'Частично удовлетворена' - WHEN ad.result = '3' THEN 'Отказано в удовлетворении' - ELSE NULL - END AS result_appeal, -- код рассмотрения - ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение - ad.reason_for_add_entry AS grounds, -- основание для внесения записи - ad.hidden --has_appealing_violations_fz53 -FROM public.appeal_document_dto ad -JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты ---WHERE hidden IS FALSE - Y - - - 640 - 336 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow3.hpl deleted file mode 100644 index 648df28..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow3.hpl +++ /dev/null @@ -1,158 +0,0 @@ - - - - delta_citizen_appealing_violations_fz53_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - create_date - create_date - - ervu_dashboard - citizen_appealing_violations_fz53
- - recruit_id - recruit_id - N - - - create_date - create_date - N - - - number_appealed - number_appealed - Y - - - date_appealed - date_appealed - Y - - - case_number - case_number - Y - - - decision_date - decision_date - Y - - - result_appeal - result_appeal - Y - - - name_commission - name_commission - Y - - - grounds - grounds - Y - - - hidden - hidden - Y - -
- N - - - 1120 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - ad.recruit_id, - ad.create_date, -- дата создания обжалования - ad.appeal_number AS number_appealed, -- номер обжалуемого решения - ad.appeal_date AS date_appealed, -- дата обжалуемого решения - ad.result_number AS case_number, -- номер принятого решения - ad.result_date AS decision_date, -- дата принятия решения - CASE - WHEN ad.result = '1' THEN 'Удовлетворена' - WHEN ad.result = '2' THEN 'Частично удовлетворена' - WHEN ad.result = '3' THEN 'Отказано в удовлетворении' - ELSE NULL - END AS result_appeal, -- код рассмотрения - ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение - ad.reason_for_add_entry AS grounds, -- основание для внесения записи - ad.hidden --has_appealing_violations_fz53 -FROM public.appeal_document_dto ad -JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты ---WHERE hidden IS FALSE - Y - - - 704 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow4.hpl deleted file mode 100644 index 7eef578..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow4.hpl +++ /dev/null @@ -1,158 +0,0 @@ - - - - delta_citizen_appealing_violations_fz53_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - create_date - create_date - - ervu_dashboard - citizen_appealing_violations_fz53
- - recruit_id - recruit_id - N - - - create_date - create_date - N - - - number_appealed - number_appealed - Y - - - date_appealed - date_appealed - Y - - - case_number - case_number - Y - - - decision_date - decision_date - Y - - - result_appeal - result_appeal - Y - - - name_commission - name_commission - Y - - - grounds - grounds - Y - - - hidden - hidden - Y - -
- N - - - 1056 - 368 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - ad.recruit_id, - ad.create_date, -- дата создания обжалования - ad.appeal_number AS number_appealed, -- номер обжалуемого решения - ad.appeal_date AS date_appealed, -- дата обжалуемого решения - ad.result_number AS case_number, -- номер принятого решения - ad.result_date AS decision_date, -- дата принятия решения - CASE - WHEN ad.result = '1' THEN 'Удовлетворена' - WHEN ad.result = '2' THEN 'Частично удовлетворена' - WHEN ad.result = '3' THEN 'Отказано в удовлетворении' - ELSE NULL - END AS result_appeal, -- код рассмотрения - ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение - ad.reason_for_add_entry AS grounds, -- основание для внесения записи - ad.hidden --has_appealing_violations_fz53 -FROM public.appeal_document_dto ad -JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты ---WHERE hidden IS FALSE - Y - - - 640 - 368 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow5.hpl deleted file mode 100644 index 950b9b0..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow5.hpl +++ /dev/null @@ -1,158 +0,0 @@ - - - - delta_citizen_appealing_violations_fz53_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - create_date - create_date - - ervu_dashboard - citizen_appealing_violations_fz53
- - recruit_id - recruit_id - N - - - create_date - create_date - N - - - number_appealed - number_appealed - Y - - - date_appealed - date_appealed - Y - - - case_number - case_number - Y - - - decision_date - decision_date - Y - - - result_appeal - result_appeal - Y - - - name_commission - name_commission - Y - - - grounds - grounds - Y - - - hidden - hidden - Y - -
- N - - - 1008 - 320 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - ad.recruit_id, - ad.create_date, -- дата создания обжалования - ad.appeal_number AS number_appealed, -- номер обжалуемого решения - ad.appeal_date AS date_appealed, -- дата обжалуемого решения - ad.result_number AS case_number, -- номер принятого решения - ad.result_date AS decision_date, -- дата принятия решения - CASE - WHEN ad.result = '1' THEN 'Удовлетворена' - WHEN ad.result = '2' THEN 'Частично удовлетворена' - WHEN ad.result = '3' THEN 'Отказано в удовлетворении' - ELSE NULL - END AS result_appeal, -- код рассмотрения - ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение - ad.reason_for_add_entry AS grounds, -- основание для внесения записи - ad.hidden --has_appealing_violations_fz53 -FROM public.appeal_document_dto ad -JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты ---WHERE hidden IS FALSE - Y - - - 592 - 320 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..9a671d9 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + citizen_appealing_violations_fz53_flow_delta.hpl + Y + + + Table input + citizen_appealing_violations_fz53_flow_delta.hpl 2 + Y + + + Table input + citizen_appealing_violations_fz53_flow_delta.hpl 3 + Y + + + Table input + citizen_appealing_violations_fz53_flow_delta.hpl 4 + Y + + + Table input + citizen_appealing_violations_fz53_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_appealing_violations_fz53_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + citizen_appealing_violations_fz53_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 128 + + + + citizen_appealing_violations_fz53_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 208 + + + + citizen_appealing_violations_fz53_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 288 + + + + citizen_appealing_violations_fz53_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 368 + + + + citizen_appealing_violations_fz53_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..edb6fa2 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + citizen_appealing_violations_fz53_flow_repeat.hpl + Y + + + Table input + citizen_appealing_violations_fz53_flow_repeat.hpl 2 + Y + + + Table input + citizen_appealing_violations_fz53_flow_repeat.hpl 3 + Y + + + Table input + citizen_appealing_violations_fz53_flow_repeat.hpl 4 + Y + + + Table input + citizen_appealing_violations_fz53_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_appealing_violations_fz53_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + citizen_appealing_violations_fz53_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 208 + + + + citizen_appealing_violations_fz53_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 288 + + + + citizen_appealing_violations_fz53_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 368 + + + + citizen_appealing_violations_fz53_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 448 + + + + citizen_appealing_violations_fz53_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_rows_five_flow_if_error.hpl deleted file mode 100644 index 4b469b9..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_rows_five_flow_if_error.hpl +++ /dev/null @@ -1,185 +0,0 @@ - - - - recruitment_rows_five_flow_if_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/23 14:28:22.572 - - - 2025/05/23 14:28:22.572 - - - - - - Table input - Copy rows to result - Y - - - - Copy rows to result - RowsToResult - - Y - - 1 - - none - - - - - 880 - 288 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -fr_check AS ( - SELECT - last_recruitment_id AS recruitment_id, - recruitment_created_date, - status, - job_name - FROM public.etl_checkpoints - WHERE status = 'ERROR' AND job_name IN ('citizen_appealing_violations_fz53_flow1', 'citizen_appealing_violations_fz53_flow2', 'citizen_appealing_violations_fz53_flow3', 'citizen_appealing_violations_fz53_flow4', 'citizen_appealing_violations_fz53_flow5') -), -ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, - ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position - FROM ordered -), -pivoted AS ( - SELECT - position, - MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow1') THEN created_at END) AS cr_flow1, - MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow1') THEN idm_id::text END) AS idm_flow1, - MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow2') THEN created_at END) AS cr_flow2, - MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow2') THEN idm_id::text END) AS idm_flow2, - MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow3') THEN created_at END) AS cr_flow3, - MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow3') THEN idm_id::text END) AS idm_flow3, - MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow4') THEN created_at END) AS cr_flow4, - MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow4') THEN idm_id::text END) AS idm_flow4, - MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow5') THEN created_at END) AS cr_flow5, - MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow5') THEN idm_id::text END) AS idm_flow5 - FROM splitted - GROUP BY position -), -remains as ( - SELECT - position, - cr_flow1, - idm_flow1::uuid, - cr_flow2, - idm_flow2::uuid, - cr_flow3, - idm_flow3::uuid, - cr_flow4, - idm_flow4::uuid, - cr_flow5, - idm_flow5::uuid - FROM pivoted - WHERE (cr_flow1 IS NOT NULL AND idm_flow1 IS NOT NULL) - OR (cr_flow2 IS NOT NULL AND idm_flow2 IS NOT NULL) - OR (cr_flow3 IS NOT NULL AND idm_flow3 IS NOT NULL) - OR (cr_flow4 IS NOT NULL AND idm_flow4 IS NOT NULL) - OR (cr_flow5 IS NOT NULL AND idm_flow5 IS NOT NULL) - order by position -), -idm1 as ( - select - cr_flow1, - idm_flow1 - from remains - where cr_flow1 is not null and idm_flow1 is not null -), -idm2 as ( - select - cr_flow2, - idm_flow2 - from remains - where cr_flow2 is not null and idm_flow2 is not null -), -idm3 as ( - select - cr_flow3, - idm_flow3 - from remains - where cr_flow3 is not null and idm_flow3 is not null -), -idm4 as ( - select - cr_flow4, - idm_flow4 - from remains - where cr_flow4 is not null and idm_flow4 is not null -), -idm5 as ( - select - cr_flow5, - idm_flow5 - from remains - where cr_flow5 is not null and idm_flow5 is not null -) -select - i1.*, - i2.*, - i3.*, - i4.*, - i5.* -FROM - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1 -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn -ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn) -limit 2 - N - - - 512 - 288 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitments_five_flow.hpl new file mode 100644 index 0000000..6efa85b --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + citizen_appealing_violations_fz53_flow.hpl + Y + + + Get all recruitments ordered by created_date + citizen_appealing_violations_fz53_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + citizen_appealing_violations_fz53_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + citizen_appealing_violations_fz53_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + citizen_appealing_violations_fz53_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + citizen_appealing_violations_fz53_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 784 + 144 + + + + citizen_appealing_violations_fz53_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 784 + 224 + + + + citizen_appealing_violations_fz53_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 784 + 304 + + + + citizen_appealing_violations_fz53_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 784 + 384 + + + + citizen_appealing_violations_fz53_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_appealing_violations_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 784 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53.hpl deleted file mode 100644 index e077078..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53.hpl +++ /dev/null @@ -1,124 +0,0 @@ - - - - branching_citizen_criminal_liability_fz53 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 09:54:43.724 - - - 2025/06/09 09:54:43.724 - - - - - - Set variables 2 - Write to log 2 - N - - - Table input - Set variables 2 - Y - - - - Set variables 2 - SetVariable - - Y - - 1 - - none - - - - - pipeline - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW - - - Y - - - 1056 - 256 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - select - status as STATUS, - job_name AS PIPELINE -from public.etl_checkpoints -where job_name = 'job_citizen_criminal_liability_fz53' - N - - - 816 - 256 - - - - Write to log 2 - WriteToLog - - Y - - 1 - - none - - - Y - - - pipeline - - - status - - - N - 0 - Basic - ${PIPE} -${STATUS} - - - 1280 - 256 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53_delta.hpl deleted file mode 100644 index 4402413..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53_delta.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - branching_citizen_criminal_liability_fz53_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 09:54:43.724 - - - 2025/06/09 09:54:43.724 - - - - - - Set variables 2 - Write to log 2 - N - - - Table input - Set variables 2 - Y - - - - Set variables 2 - SetVariable - - Y - - 1 - - none - - - - - pipeline - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW - - - Y - - - 1056 - 256 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - COALESCE(job_name, 'job_citizen_criminal_liability_fz53_delta') AS PIPELINE, - COALESCE(status, 'ERROR') AS STATUS, - current_timestamp::timestamp as record_created -FROM ( - select - CASE - WHEN status = 'PROCESSING' THEN 'ERROR' - ELSE status - END AS status, - job_name - from public.etl_checkpoints - where job_name = 'job_citizen_criminal_liability_fz53_delta' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_criminal_liability_fz53_delta' - ) -) t - N - - - 816 - 256 - - - - Write to log 2 - WriteToLog - - Y - - 1 - - none - - - Y - - - pipeline - - - status - - - N - 0 - Basic - ${PIPE} -${STATUS} - - - 1280 - 256 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..9698cd9 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_criminal_liability_fz53_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_error.hpl deleted file mode 100644 index 4095df7..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_error.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_citizen_criminal_liability_fz53_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'citizen_criminal_liability_fz53_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_success.hpl deleted file mode 100644 index 3ef1f41..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_success.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_citizen_criminal_liability_fz53_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'citizen_criminal_liability_fz53_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_error.hpl deleted file mode 100644 index e729ca5..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_error.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_citizen_criminal_liability_fz53_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_criminal_liability_fz53_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_success.hpl deleted file mode 100644 index 896e5f7..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_success.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_citizen_criminal_liability_fz53_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_criminal_liability_fz53_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_error.hpl deleted file mode 100644 index 63d1db3..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_error.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_citizen_criminal_liability_fz53_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_criminal_liability_fz53_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_success.hpl deleted file mode 100644 index cdaf266..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_success.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_citizen_criminal_liability_fz53_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_criminal_liability_fz53_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_error.hpl deleted file mode 100644 index 0d74917..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_criminal_liability_fz53_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_criminal_liability_fz53_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_success.hpl deleted file mode 100644 index 1c4519b..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_criminal_liability_fz53_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_criminal_liability_fz53_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_error.hpl deleted file mode 100644 index bf0f099..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_criminal_liability_fz53_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_criminal_liability_fz53_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_success.hpl deleted file mode 100644 index c7e8c88..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_criminal_liability_fz53_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_criminal_liability_fz53_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl deleted file mode 100644 index 748f1fd..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_criminal_liability_fz53_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_criminal_liability_fz53_flow1' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl deleted file mode 100644 index 3985742..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_criminal_liability_fz53_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_criminal_liability_fz53_flow1' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl deleted file mode 100644 index d3a3687..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl +++ /dev/null @@ -1,102 +0,0 @@ - - - - change_status_delta_citizen_criminal_liability_fz53_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_criminal_liability_fz53_flow2' as job_name, - 'ERROR' as status, - current_timestamp as record_created - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl deleted file mode 100644 index c729385..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_criminal_liability_fz53_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_criminal_liability_fz53_flow2' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl deleted file mode 100644 index 0baf42b..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_criminal_liability_fz53_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_criminal_liability_fz53_flow3' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl deleted file mode 100644 index 0cfddb3..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_criminal_liability_fz53_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_criminal_liability_fz53_flow3' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl deleted file mode 100644 index edaee70..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_criminal_liability_fz53_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_criminal_liability_fz53_flow4' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl deleted file mode 100644 index c3ad66d..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_criminal_liability_fz53_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_criminal_liability_fz53_flow4' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl deleted file mode 100644 index db5a6de..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_criminal_liability_fz53_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_criminal_liability_fz53_flow5' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl deleted file mode 100644 index e773802..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_criminal_liability_fz53_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_criminal_liability_fz53_flow5' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing.hpl deleted file mode 100644 index e422b79..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - change_status_to_processing - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 16:14:31.162 - - - 2025/06/11 16:14:31.162 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 784 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'job_citizen_criminal_liability_fz53' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_criminal_liability_fz53_flow1' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_criminal_liability_fz53_flow2' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_criminal_liability_fz53_flow3' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_criminal_liability_fz53_flow4' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_criminal_liability_fz53_flow5' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 368 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing_delta.hpl deleted file mode 100644 index 9aea55f..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing_delta.hpl +++ /dev/null @@ -1,102 +0,0 @@ - - - - change_status_to_processing_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 13:42:26.494 - - - 2025/06/16 13:42:26.494 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1248 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'delta_citizen_criminal_liability_fz53' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 832 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_job_snils_inn_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_citizen_criminal_liability_fz53_job_exists.hpl similarity index 70% rename from mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_job_snils_inn_exists.hpl rename to mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_citizen_criminal_liability_fz53_job_exists.hpl index 8d7a204..a2002ee 100644 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_job_snils_inn_exists.hpl +++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_citizen_criminal_liability_fz53_job_exists.hpl @@ -1,7 +1,7 @@ - check_if_job_snils_inn_exists + check_if_citizen_criminal_liability_fz53_job_exists Y @@ -13,23 +13,23 @@ 1000 100 - - 2025/06/11 15:20:18.267 + 2025/08/05 13:28:46.661 - - 2025/06/11 15:20:18.267 + 2025/08/05 13:28:46.661 - - Table input - Set variables - Y - Set variables Write to log N + + Table input + Set variables + Y + Set variables @@ -44,21 +44,16 @@ - job_name - PIPE - PARENT_WORKFLOW - - - status - STATUS + job_executed_flag + JOB_EXECUTED_FLAG PARENT_WORKFLOW Y - 688 - 352 + 672 + 336 @@ -75,29 +70,17 @@ ervu-dashboard N 0 - SELECT - COALESCE(job_name, 'job_snils_inn') AS job_name, - COALESCE(status, 'NEW') AS status, - current_timestamp::timestamp as record_created -FROM ( - SELECT job_name, status - FROM public.etl_checkpoints - WHERE job_name = 'job_snils_inn' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_snils_inn' - ) -) t + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'citizen_criminal_liability_fz53_job' + limit 1 + ) AS job_executed_flag; N - 400 - 352 + 384 + 336 @@ -120,8 +103,8 @@ FROM ( ${STATUS} - 960 - 240 + 944 + 224 diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_job_citizen_criminal_liability_fz53_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_job_citizen_criminal_liability_fz53_exists.hpl deleted file mode 100644 index c8d9198..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_job_citizen_criminal_liability_fz53_exists.hpl +++ /dev/null @@ -1,130 +0,0 @@ - - - - check_if_job_citizen_criminal_liability_fz53_exists - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 15:20:18.267 - - - 2025/06/11 15:20:18.267 - - - - - - Table input - Set variables - Y - - - Set variables - Write to log - N - - - - Set variables - SetVariable - - Y - - 1 - - none - - - - - job_name - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW - - - Y - - - 688 - 352 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - COALESCE(job_name, 'job_citizen_criminal_liability_fz53') AS job_name, - COALESCE(status, 'NEW') AS status, - current_timestamp::timestamp as record_created -FROM ( - SELECT job_name, status - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_criminal_liability_fz53' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_criminal_liability_fz53' - ) -) t - N - - - 400 - 352 - - - - Write to log - WriteToLog - - Y - - 1 - - none - - - Y - - - N - 0 - Basic - ${STATUS} - - - 960 - 240 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_citizen_criminal_liability_fz53_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_citizen_criminal_liability_fz53_error.hpl deleted file mode 100644 index 6dec012..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_citizen_criminal_liability_fz53_error.hpl +++ /dev/null @@ -1,273 +0,0 @@ - - - - checkpoint_citizen_criminal_liability_fz53_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 10:01:04.895 - - - 2025/06/09 10:01:04.895 - - - - - - Select values - Table output - N - - - Table input - Select values - N - - - Table input - Table output - Y - - - - Select values - SelectValues - - Y - - 1 - - none - - - - N - - idm_id - idm_id - String - -2 - -2 - - false - - - false - - - - - - - - - - 1008 - 608 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - FROM result_ma -), -for_checkpoints as ( - SELECT - 'job_child_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -) -select * from for_checkpoints - N - - - 736 - 448 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - public - N - etl_checkpoints
- N - Y - N - Y - - - 1248 - 448 - -
- - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl deleted file mode 100644 index dd178f2..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl +++ /dev/null @@ -1,869 +0,0 @@ - - - - checkpoint_job_citizen_criminal_liability_fz53 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 14:19:02.590 - - - 2025/06/03 14:19:02.590 - - - - - - Filter rows - Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update - Y - - - Dummy (do nothing) - JSON input state_child_flow1.json - N - - - Dummy (do nothing) - JSON input state_child_flow2.json - N - - - Dummy (do nothing) - JSON input state_child_flow3.json - N - - - Dummy (do nothing) - JSON input state_child_flow4.json - N - - - Dummy (do nothing) - JSON input state_child_flow5.json - N - - - - Abort - Abort - - Y - - 1 - - none - - - ABORT_WITH_ERROR - Y - 0 - - - 1264 - 592 - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - - - Filter rows - FilterRows - - Y - - 1 - - none - - - - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow1 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow2 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow3 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow4 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow5 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - Abort - - - 944 - 592 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 432 - - - - JSON input state_child_flow2.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 512 - - - - JSON input state_child_flow3.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 592 - - - - JSON input state_child_flow4.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 672 - - - - JSON input state_child_flow5.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 752 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'citizen_criminal_liability_fz53_flow1', - 'citizen_criminal_liability_fz53_flow2', - 'citizen_criminal_liability_fz53_flow3', - 'citizen_criminal_liability_fz53_flow4', - 'citizen_criminal_liability_fz53_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'citizen_criminal_liability_fz53_flow1', - 'citizen_criminal_liability_fz53_flow2', - 'citizen_criminal_liability_fz53_flow3', - 'citizen_criminal_liability_fz53_flow4', - 'citizen_criminal_liability_fz53_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_citizen_criminal_liability_fz53' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53_delta.hpl deleted file mode 100644 index 658a967..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53_delta.hpl +++ /dev/null @@ -1,869 +0,0 @@ - - - - checkpoint_job_citizen_criminal_liability_fz53_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 14:19:02.590 - - - 2025/06/03 14:19:02.590 - - - - - - Filter rows - Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update - Y - - - Dummy (do nothing) - JSON input state_child_flow1.json - N - - - Dummy (do nothing) - JSON input state_child_flow2.json - N - - - Dummy (do nothing) - JSON input state_child_flow3.json - N - - - Dummy (do nothing) - JSON input state_child_flow4.json - N - - - Dummy (do nothing) - JSON input state_child_flow5.json - N - - - - Abort - Abort - - Y - - 1 - - none - - - ABORT_WITH_ERROR - Y - 0 - - - 1264 - 592 - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - - - Filter rows - FilterRows - - Y - - 1 - - none - - - - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow1 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow2 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow3 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow4 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow5 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - Abort - - - 944 - 592 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 432 - - - - JSON input state_child_flow2.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 512 - - - - JSON input state_child_flow3.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 592 - - - - JSON input state_child_flow4.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 672 - - - - JSON input state_child_flow5.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 752 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'delta_citizen_criminal_liability_fz53_flow1', - 'delta_citizen_criminal_liability_fz53_flow2', - 'delta_citizen_criminal_liability_fz53_flow3', - 'delta_citizen_criminal_liability_fz53_flow4', - 'delta_citizen_criminal_liability_fz53_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'delta_citizen_criminal_liability_fz53_flow1', - 'delta_citizen_criminal_liability_fz53_flow2', - 'delta_citizen_criminal_liability_fz53_flow3', - 'delta_citizen_criminal_liability_fz53_flow4', - 'delta_citizen_criminal_liability_fz53_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_citizen_criminal_liability_fz53_delta' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/citizen_criminal_liability_fz53_job.hwf b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/citizen_criminal_liability_fz53_job.hwf new file mode 100644 index 0000000..e08a136 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/citizen_criminal_liability_fz53_job.hwf @@ -0,0 +1,358 @@ + + + citizen_criminal_liability_fz53_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 160 + 304 + + + + check_if_citizen_criminal_liability_fz53_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_citizen_criminal_liability_fz53_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 304 + + + + citizen_criminal_liability_fz53_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 784 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1104 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_on_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 1104 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 784 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 784 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 784 + 800 + + + + + + Start + check_if_citizen_criminal_liability_fz53_job_exists.hpl + Y + Y + Y + + + check_if_citizen_criminal_liability_fz53_job_exists.hpl + citizen_criminal_liability_fz53_job_exists_check + Y + Y + N + + + citizen_criminal_liability_fz53_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + citizen_criminal_liability_fz53_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 896 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 896 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 704 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + citizen_criminal_liability_fz53_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 184 + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/job_citizen_criminal_liability_fz53.hwf b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/job_citizen_criminal_liability_fz53.hwf deleted file mode 100644 index 05ee576..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/job_citizen_criminal_liability_fz53.hwf +++ /dev/null @@ -1,2482 +0,0 @@ - - - job_citizen_criminal_liability_fz53 - Y - - - - 0 - - - 2025/06/05 14:27:15.055 - - - 2025/06/05 14:27:15.055 - - - M_R_CR_DATE - 3001-01-01 00:00:00 - - - - M_R_UP_DATE - - - - - - - Start - - SPECIAL - - 1 - 12 - 60 - 0 - 0 - N - 0 - 1 - N - 96 - 400 - - - - checkpoint_job_citizen_criminal_liability_fz53.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 1136 - 1280 - - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2352 - 400 - - - - citizen_criminal_liability_fz53_flow1.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2736 - 80 - - - - citizen_criminal_liability_fz53_flow2.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2736 - 240 - - - - citizen_criminal_liability_fz53_flow3.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2736 - 400 - - - - citizen_criminal_liability_fz53_flow4.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2736 - 560 - - - - citizen_criminal_liability_fz53_flow5.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2736 - 720 - - - - Abort workflow - - ABORT - - N - N - 2336 - 208 - - - - Success new citizen_criminal_liability_fz53 - - SUCCESS - - N - 3920 - 432 - - - - branching_citizen_criminal_liability_fz53.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 1584 - 1280 - - - - Simple citizen_criminal_liability_fz53 WHERE SUCCESS - - SIMPLE_EVAL - - SUCCESS - string - true - equal - equal - N - variable - STATUS - N - 1632 - 1680 - - - - Simple citizen_criminal_liability_fz53 WHERE ERROR - - SIMPLE_EVAL - - ERROR - string - true - equal - equal - N - variable - STATUS - N - 1984 - 1280 - - - - recruitment_rows_five_flow_if_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_rows_five_flow_if_error.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2384 - 1280 - - - - Abort workflow 2 - - ABORT - - N - N - 2288 - 1040 - - - - delta_citizen_criminal_liability_fz53_flow1.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow1.hpl - - - Basic - - - M_R_UP_DATE - - ${M_R_UP_DATE} - - - ID_F1 - IDM_FLOW1 - - - Y - - Y - local - N - N - Y - N - 2912 - 1792 - - - - check_if_job_citizen_criminal_liability_fz53_exists.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_job_citizen_criminal_liability_fz53_exists.hpl - Basic - - Y - - N - local - N - N - Y - N - 448 - 400 - - - - Simple job_citizen_criminal_liability_fz53_exists check NEW - - SIMPLE_EVAL - - NEW - string - true - equal - equal - N - variable - STATUS - N - 896 - 400 - - - - change_status_to_processing.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 2368 - 560 - - - - change_status_citizen_criminal_liability_fz53_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 80 - - - - change_status_citizen_criminal_liability_fz53_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 160 - - - - change_status_citizen_criminal_liability_fz53_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 240 - - - - change_status_citizen_criminal_liability_fz53_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 320 - - - - change_status_citizen_criminal_liability_fz53_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 400 - - - - change_status_citizen_criminal_liability_fz53_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 480 - - - - change_status_citizen_criminal_liability_fz53_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 560 - - - - change_status_citizen_criminal_liability_fz53_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 640 - - - - change_status_citizen_criminal_liability_fz53_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 720 - - - - change_status_citizen_criminal_liability_fz53_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 800 - - - - checkpoint_job_citizen_criminal_liability_fz53.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 3600 - 432 - - - - change_status_to_processing.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 2304 - 1440 - - - - change_status_to_processing_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 2480 - 2304 - - - - change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3344 - 1792 - - - - change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3344 - 1872 - - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2480 - 2112 - - - - Abort workflow 2 2 - - ABORT - - N - N - 2432 - 1952 - - - - delta_citizen_criminal_liability_fz53_flow2.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow2.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2912 - 1952 - - - - change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3344 - 1952 - - - - change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3344 - 2032 - - - - delta_citizen_criminal_liability_fz53_flow3.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow3.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2912 - 2112 - - - - change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3344 - 2112 - - - - change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3344 - 2192 - - - - delta_citizen_criminal_liability_fz53_flow4.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow4.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2912 - 2272 - - - - change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3344 - 2272 - - - - change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3344 - 2352 - - - - delta_citizen_criminal_liability_fz53_flow5.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow5.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2912 - 2432 - - - - change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3344 - 2432 - - - - change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3344 - 2512 - - - - branching_citizen_criminal_liability_fz53_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 1632 - 2112 - - - - Simple delta_citizen_criminal_liability_fz53 WHERE ERROR - - SIMPLE_EVAL - - ERROR - string - true - equal - equal - N - variable - STATUS - N - 2032 - 2112 - - - - delta_citizen_criminal_liability_fz53 success - - SUCCESS - - N - 2160 - 1952 - - - - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 3792 - 2112 - - - - Success delta_citizen_criminal_liability_fz53 - - SUCCESS - - N - 4208 - 2112 - - - - citizen_criminal_liability_fz53_flow1.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2736 - 960 - - - - citizen_criminal_liability_fz53_flow2.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2736 - 1120 - - - - citizen_criminal_liability_fz53_flow3.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2736 - 1280 - - - - citizen_criminal_liability_fz53_flow4.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2736 - 1440 - - - - citizen_criminal_liability_fz53_flow5.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2736 - 1600 - - - - Success citizen_criminal_liability_fz53 after error - - SUCCESS - - N - 3968 - 1312 - - - - change_status_citizen_criminal_liability_fz53_flow1_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 960 - - - - change_status_citizen_criminal_liability_fz53_flow1_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 1040 - - - - change_status_citizen_criminal_liability_fz53_flow2_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 1120 - - - - change_status_citizen_criminal_liability_fz53_flow2_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 1200 - - - - change_status_citizen_criminal_liability_fz53_flow3_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 1280 - - - - change_status_citizen_criminal_liability_fz53_flow3_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 1360 - - - - change_status_citizen_criminal_liability_fz53_flow4_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 1440 - - - - change_status_citizen_criminal_liability_fz53_flow4_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 1520 - - - - change_status_citizen_criminal_liability_fz53_flow5_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 1600 - - - - change_status_citizen_criminal_liability_fz53_flow5_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3136 - 1680 - - - - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 3600 - 1312 - - - - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl - citizen_criminal_liability_fz53_flow1.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl - citizen_criminal_liability_fz53_flow2.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl - citizen_criminal_liability_fz53_flow3.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl - citizen_criminal_liability_fz53_flow4.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl - citizen_criminal_liability_fz53_flow5.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl - Abort workflow - Y - N - N - - - branching_citizen_criminal_liability_fz53.hpl - Simple citizen_criminal_liability_fz53 WHERE ERROR - Y - N - Y - - - branching_citizen_criminal_liability_fz53.hpl - Simple citizen_criminal_liability_fz53 WHERE SUCCESS - Y - N - Y - - - recruitment_rows_five_flow_if_error.hpl - Abort workflow 2 - Y - N - N - - - Start - check_if_job_citizen_criminal_liability_fz53_exists.hpl - Y - Y - Y - - - check_if_job_citizen_criminal_liability_fz53_exists.hpl - Simple job_citizen_criminal_liability_fz53_exists check NEW - Y - Y - N - - - citizen_criminal_liability_fz53_flow1.hpl - change_status_citizen_criminal_liability_fz53_flow1_success.hpl - Y - Y - N - - - citizen_criminal_liability_fz53_flow1.hpl - change_status_citizen_criminal_liability_fz53_flow1_error.hpl - Y - N - N - - - citizen_criminal_liability_fz53_flow2.hpl - change_status_citizen_criminal_liability_fz53_flow2_success.hpl - Y - Y - N - - - citizen_criminal_liability_fz53_flow2.hpl - change_status_citizen_criminal_liability_fz53_flow2_error.hpl - Y - N - N - - - citizen_criminal_liability_fz53_flow3.hpl - change_status_citizen_criminal_liability_fz53_flow3_success.hpl - Y - Y - N - - - citizen_criminal_liability_fz53_flow3.hpl - change_status_citizen_criminal_liability_fz53_flow3_error.hpl - Y - N - N - - - citizen_criminal_liability_fz53_flow4.hpl - change_status_citizen_criminal_liability_fz53_flow4_success.hpl - Y - Y - N - - - citizen_criminal_liability_fz53_flow4.hpl - change_status_citizen_criminal_liability_fz53_flow4_error.hpl - Y - N - N - - - citizen_criminal_liability_fz53_flow5.hpl - change_status_citizen_criminal_liability_fz53_flow5_success.hpl - Y - Y - N - - - citizen_criminal_liability_fz53_flow5.hpl - change_status_citizen_criminal_liability_fz53_flow5_error.hpl - Y - N - N - - - change_status_citizen_criminal_liability_fz53_flow5_error.hpl - checkpoint_job_citizen_criminal_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow5_success.hpl - checkpoint_job_citizen_criminal_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow4_error.hpl - checkpoint_job_citizen_criminal_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow4_success.hpl - checkpoint_job_citizen_criminal_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow3_error.hpl - checkpoint_job_citizen_criminal_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow3_success.hpl - checkpoint_job_citizen_criminal_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow2_error.hpl - checkpoint_job_citizen_criminal_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow2_success.hpl - checkpoint_job_citizen_criminal_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow1_error.hpl - checkpoint_job_citizen_criminal_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow1_success.hpl - checkpoint_job_citizen_criminal_liability_fz53.hpl - Y - N - Y - - - checkpoint_job_citizen_criminal_liability_fz53.hpl - Success new citizen_criminal_liability_fz53 - Y - Y - N - - - checkpoint_job_citizen_criminal_liability_fz53.hpl (2) - branching_citizen_criminal_liability_fz53.hpl - Y - N - Y - - - Simple job_citizen_criminal_liability_fz53_exists check NEW - checkpoint_job_citizen_criminal_liability_fz53.hpl (2) - Y - N - N - - - delta_citizen_criminal_liability_fz53_flow1.hpl - change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl - Y - Y - N - - - delta_citizen_criminal_liability_fz53_flow1.hpl - change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl - Y - N - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl - change_status_to_processing.hpl - Y - Y - N - - - Simple job_citizen_criminal_liability_fz53_exists check NEW - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - change_status_to_processing.hpl (2) - Y - Y - N - - - Simple citizen_criminal_liability_fz53 WHERE ERROR - recruitment_rows_five_flow_if_error.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2) - delta_citizen_criminal_liability_fz53_flow1.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2) - change_status_to_processing_delta.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2) - Abort workflow 2 2 - Y - N - N - - - delta_citizen_criminal_liability_fz53_flow2.hpl - change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl - Y - Y - N - - - delta_citizen_criminal_liability_fz53_flow2.hpl - change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl - Y - N - N - - - delta_citizen_criminal_liability_fz53_flow3.hpl - change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl - Y - Y - N - - - delta_citizen_criminal_liability_fz53_flow3.hpl - change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl - Y - N - N - - - delta_citizen_criminal_liability_fz53_flow4.hpl - change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl - Y - Y - N - - - delta_citizen_criminal_liability_fz53_flow4.hpl - change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl - Y - N - N - - - delta_citizen_criminal_liability_fz53_flow5.hpl - change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl - Y - Y - N - - - delta_citizen_criminal_liability_fz53_flow5.hpl - change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl - Y - N - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2) - delta_citizen_criminal_liability_fz53_flow3.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2) - delta_citizen_criminal_liability_fz53_flow2.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2) - delta_citizen_criminal_liability_fz53_flow4.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2) - delta_citizen_criminal_liability_fz53_flow5.hpl - Y - Y - N - - - Simple citizen_criminal_liability_fz53 WHERE SUCCESS - branching_citizen_criminal_liability_fz53_delta.hpl - Y - Y - N - - - Simple delta_citizen_criminal_liability_fz53 WHERE ERROR - delta_citizen_criminal_liability_fz53 success - Y - N - N - - - branching_citizen_criminal_liability_fz53_delta.hpl - Simple delta_citizen_criminal_liability_fz53 WHERE ERROR - Y - Y - N - - - Simple delta_citizen_criminal_liability_fz53 WHERE ERROR - recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2) - Y - Y - N - - - change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Y - Y - N - - - checkpoint_job_citizen_criminal_liability_fz53_delta.hpl - Success delta_citizen_criminal_liability_fz53 - Y - Y - N - - - citizen_criminal_liability_fz53_flow1.hpl 2 - change_status_citizen_criminal_liability_fz53_flow1_success.hpl 2 - Y - Y - N - - - citizen_criminal_liability_fz53_flow1.hpl 2 - change_status_citizen_criminal_liability_fz53_flow1_error.hpl 2 - Y - N - N - - - citizen_criminal_liability_fz53_flow2.hpl 2 - change_status_citizen_criminal_liability_fz53_flow2_success.hpl 2 - Y - Y - N - - - citizen_criminal_liability_fz53_flow2.hpl 2 - change_status_citizen_criminal_liability_fz53_flow2_error.hpl 2 - Y - N - N - - - citizen_criminal_liability_fz53_flow3.hpl 2 - change_status_citizen_criminal_liability_fz53_flow3_success.hpl 2 - Y - Y - N - - - citizen_criminal_liability_fz53_flow3.hpl 2 - change_status_citizen_criminal_liability_fz53_flow3_error.hpl 2 - Y - N - N - - - citizen_criminal_liability_fz53_flow4.hpl 2 - change_status_citizen_criminal_liability_fz53_flow4_success.hpl 2 - Y - Y - N - - - citizen_criminal_liability_fz53_flow4.hpl 2 - change_status_citizen_criminal_liability_fz53_flow4_error.hpl 2 - Y - N - N - - - citizen_criminal_liability_fz53_flow5.hpl 2 - change_status_citizen_criminal_liability_fz53_flow5_success.hpl 2 - Y - Y - N - - - citizen_criminal_liability_fz53_flow5.hpl 2 - change_status_citizen_criminal_liability_fz53_flow5_error.hpl 2 - Y - N - N - - - change_status_citizen_criminal_liability_fz53_flow1_success.hpl 2 - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow1_error.hpl 2 - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow2_success.hpl 2 - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow2_error.hpl 2 - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow3_success.hpl 2 - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow3_error.hpl 2 - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow4_success.hpl 2 - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow4_error.hpl 2 - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow5_success.hpl 2 - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_criminal_liability_fz53_flow5_error.hpl 2 - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - Y - N - Y - - - checkpoint_job_citizen_criminal_liability_fz53.hpl 2 - Success citizen_criminal_liability_fz53 after error - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_criminal_liability_fz53_flow3.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_criminal_liability_fz53_flow2.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_criminal_liability_fz53_flow1.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_criminal_liability_fz53_flow4.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_criminal_liability_fz53_flow5.hpl 2 - Y - Y - N - - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 72 - 1088 - 176 - 0001-01-01 00:00:00 - -3001-01-01 00:00:00 - - 114 - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl new file mode 100644 index 0000000..0d5fb92 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl @@ -0,0 +1,561 @@ + + + + citizen_criminal_liability_fz53_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table output + Change job status on error + Y + + + Table input + Table output + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Table output + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1536 + 832 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1536 + 640 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1952 + 496 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 496 + 640 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1728 + 496 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1728 + 608 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_criminal_liability_fz53_raw + is_criminal_liability_fz53 + MAX + + + N + + + recruit_id + + + N + grp + + + 896 + 496 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 1088 + 496 + + + + Table input + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + + SELECT + i.recruit_id, + i.created_at, + i.updated_at, + --, -- сведения о факте уголовного преследования + i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) + i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела + i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело + i.decision_number AS case_number, -- номер уголовного дела (судебный) + i.decision_date AS sentence_date, -- дата приговора + i.extra_info->>'court' AS court_decision, -- суд вынесший приговор + CASE + WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' + WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' + WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' + WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' + ELSE NULL + END AS type_punishment, -- вид наказания + CASE + WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' + WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' + ELSE null + END AS decision_reason, -- Причины уголовного наказания в связи с фз53 + i.hidden, + CASE + WHEN i.hidden is false THEN 1 + ELSE 0 + END AS is_criminal_liability_fz53, + (i.extra_info->>'dateApplication')::date AS date_application,--дата с которой наложена мера + i.extra_info->>'description' AS description,--описание наказания + i.extra_info->>'reasonForAddEntry' AS reason_for_add_entry--основания для внесения записи + +FROM public.infringement i + +JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + + AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}' + + AND '${M_R_CR_DATE}' >= i.created_at + + --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты + +WHERE --hidden IS FALSE AND + + i.type = 'CRIMINAL' + + + +${LIMIT_FW} + Y + + + 704 + 640 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + created_at + created_at + + + updated_at + updated_at + + + case_number_before + case_number_before + + + date_initiation + date_initiation + + + body_initiated + body_initiated + + + case_number + case_number + + + sentence_date + sentence_date + + + court_decision + court_decision + + + type_punishment + type_punishment + + + decision_reason + decision_reason + + + hidden + hidden + + + date_application + date_application + + + description + description + + + reason_for_add_entry + reason_for_add_entry + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_criminal_liability_fz53
+ N + Y + N + Y + + + 896 + 640 + +
+ + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_criminal_liability_fz53 + has_criminal_liability_fz53 + +
+ N + Y + + + 1536 + 496 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_liability_fz53 + has_criminal_liability_fz53_raw == 1 + Boolean + -1 + -1 + + + + + 1312 + 496 + + + + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow1.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow1.hpl deleted file mode 100644 index 7593fb2..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow1.hpl +++ /dev/null @@ -1,183 +0,0 @@ - - - - citizen_criminal_liability_fz53_flow1 - Y - - - - Normal - 0 - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - created_at - created_at - - - ervu_dashboard - citizen_criminal_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - sentence_date - sentence_date - Y - - - court_decision - court_decision - Y - - - type_punishment - type_punishment - Y - - - decision_reason - decision_reason - Y - - - has_criminal_liability_fz53 - has_criminal_liability_fz53 - Y - -
- N - - - 880 - 288 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - --, -- сведения о факте уголовного преследования - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело - i.decision_number AS case_number, -- номер уголовного дела (судебный) - i.decision_date AS sentence_date, -- дата приговора - i.extra_info->>'court' AS court_decision, -- суд вынесший приговор - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' - WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' - WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' - WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' - WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' - ELSE null - END AS decision_reason, -- Причины уголовного наказания в связи с фз53 - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_criminal_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE --hidden IS FALSE AND - i.type = 'CRIMINAL' - Y - - - 448 - 288 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow2.hpl deleted file mode 100644 index 29c6100..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow2.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - citizen_criminal_liability_fz53_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_criminal_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - sentence_date - sentence_date - Y - - - court_decision - court_decision - Y - - - type_punishment - type_punishment - Y - - - decision_reason - decision_reason - Y - - - has_criminal_liability_fz53 - has_criminal_liability_fz53 - Y - -
- N - - - 880 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - --, -- сведения о факте уголовного преследования - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело - i.decision_number AS case_number, -- номер уголовного дела (судебный) - i.decision_date AS sentence_date, -- дата приговора - i.extra_info->>'court' AS court_decision, -- суд вынесший приговор - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' - WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' - WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' - WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' - WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' - ELSE null - END AS decision_reason, -- Причины уголовного наказания в связи с фз53 - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_criminal_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE --hidden IS FALSE AND - i.type = 'CRIMINAL' - Y - - - 448 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow3.hpl deleted file mode 100644 index 17ccb53..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow3.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - citizen_criminal_liability_fz53_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_criminal_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - sentence_date - sentence_date - Y - - - court_decision - court_decision - Y - - - type_punishment - type_punishment - Y - - - decision_reason - decision_reason - Y - - - has_criminal_liability_fz53 - has_criminal_liability_fz53 - Y - -
- N - - - 1120 - 384 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - --, -- сведения о факте уголовного преследования - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело - i.decision_number AS case_number, -- номер уголовного дела (судебный) - i.decision_date AS sentence_date, -- дата приговора - i.extra_info->>'court' AS court_decision, -- суд вынесший приговор - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' - WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' - WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' - WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' - WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' - ELSE null - END AS decision_reason, -- Причины уголовного наказания в связи с фз53 - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_criminal_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE --hidden IS FALSE AND - i.type = 'CRIMINAL' - Y - - - 688 - 384 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow4.hpl deleted file mode 100644 index 67ebd63..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow4.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - citizen_criminal_liability_fz53_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_criminal_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - sentence_date - sentence_date - Y - - - court_decision - court_decision - Y - - - type_punishment - type_punishment - Y - - - decision_reason - decision_reason - Y - - - has_criminal_liability_fz53 - has_criminal_liability_fz53 - Y - -
- N - - - 1104 - 416 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - --, -- сведения о факте уголовного преследования - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело - i.decision_number AS case_number, -- номер уголовного дела (судебный) - i.decision_date AS sentence_date, -- дата приговора - i.extra_info->>'court' AS court_decision, -- суд вынесший приговор - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' - WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' - WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' - WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' - WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' - ELSE null - END AS decision_reason, -- Причины уголовного наказания в связи с фз53 - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_criminal_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE --hidden IS FALSE AND - i.type = 'CRIMINAL' - Y - - - 672 - 416 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow5.hpl deleted file mode 100644 index 811495c..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow5.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - citizen_criminal_liability_fz53_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_criminal_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - sentence_date - sentence_date - Y - - - court_decision - court_decision - Y - - - type_punishment - type_punishment - Y - - - decision_reason - decision_reason - Y - - - has_criminal_liability_fz53 - has_criminal_liability_fz53 - Y - -
- N - - - 944 - 384 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - --, -- сведения о факте уголовного преследования - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело - i.decision_number AS case_number, -- номер уголовного дела (судебный) - i.decision_date AS sentence_date, -- дата приговора - i.extra_info->>'court' AS court_decision, -- суд вынесший приговор - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' - WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' - WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' - WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' - WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' - ELSE null - END AS decision_reason, -- Причины уголовного наказания в связи с фз53 - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_criminal_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE --hidden IS FALSE AND - i.type = 'CRIMINAL' - Y - - - 512 - 384 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl new file mode 100644 index 0000000..0201a15 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl @@ -0,0 +1,570 @@ + + + + citizen_criminal_liability_fz53_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1360 + 704 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1360 + 528 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1744 + 384 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 384 + 528 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1520 + 384 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1520 + 480 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_criminal_liability_fz53_raw + is_criminal_liability_fz53 + MAX + + + N + + + recruit_id + + + N + grp + + + 720 + 384 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 912 + 384 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + created_at + created_at + + ervu_dashboard + citizen_criminal_liability_fz53
+ + recruit_id + recruit_id + N + + + created_at + created_at + N + + + updated_at + updated_at + Y + + + case_number_before + case_number_before + Y + + + date_initiation + date_initiation + Y + + + body_initiated + body_initiated + Y + + + case_number + case_number + Y + + + sentence_date + sentence_date + Y + + + court_decision + court_decision + Y + + + type_punishment + type_punishment + Y + + + decision_reason + decision_reason + Y + + + hidden + hidden + Y + + + date_application + date_application + Y + + + description + description + Y + + + reason_for_add_entry + reason_for_add_entry + Y + +
+ N + + + 720 + 528 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + + SELECT + i.recruit_id, + i.created_at, + i.updated_at, + --, -- сведения о факте уголовного преследования + i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) + i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела + i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело + i.decision_number AS case_number, -- номер уголовного дела (судебный) + i.decision_date AS sentence_date, -- дата приговора + i.extra_info->>'court' AS court_decision, -- суд вынесший приговор + CASE + WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' + WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' + WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' + WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' + ELSE NULL + END AS type_punishment, -- вид наказания + CASE + WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' + WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' + ELSE null + END AS decision_reason, -- Причины уголовного наказания в связи с фз53 + i.hidden, + CASE + WHEN i.hidden is false THEN 1 + ELSE 0 + END AS is_criminal_liability_fz53, + (i.extra_info->>'dateApplication')::date AS date_application,--дата с которой наложена мера + i.extra_info->>'description' AS description,--описание наказания + i.extra_info->>'reasonForAddEntry' AS reason_for_add_entry--основания для внесения записи +FROM public.infringement i +JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}' + AND i.updated_at >= '${M_R_UP_DATE}'::timestamp --coalesce(i.updated_at,i.created_at) + --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты +WHERE --hidden IS FALSE AND + i.type = 'CRIMINAL' + +${LIMIT_FW} + Y + + + 592 + 528 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_criminal_liability_fz53 + has_criminal_liability_fz53 + +
+ N + Y + + + 1360 + 384 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_criminal_liability_fz53 + has_criminal_liability_fz53_raw == 1 + Boolean + -1 + -1 + + + + + 1136 + 384 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl new file mode 100644 index 0000000..2602be1 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl @@ -0,0 +1,594 @@ + + + + citizen_criminal_liability_fz53_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1296 + 432 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1296 + 208 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1824 + 64 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1536 + 64 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1536 + 176 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_criminal_liability_fz53_raw + is_criminal_liability_fz53 + MAX + + + N + + + recruit_id + + + N + grp + + + 656 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 848 + 64 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + created_at + created_at + + ervu_dashboard + citizen_criminal_liability_fz53
+ + recruit_id + recruit_id + N + + + created_at + created_at + N + + + updated_at + updated_at + Y + + + case_number_before + case_number_before + Y + + + date_initiation + date_initiation + Y + + + body_initiated + body_initiated + Y + + + case_number + case_number + Y + + + sentence_date + sentence_date + Y + + + court_decision + court_decision + Y + + + type_punishment + type_punishment + Y + + + decision_reason + decision_reason + Y + + + hidden + hidden + Y + + + date_application + date_application + Y + + + description + description + Y + + + reason_for_add_entry + reason_for_add_entry + Y + +
+ N + + + 656 + 208 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + + SELECT + i.recruit_id, + i.created_at, + i.updated_at, + --, -- сведения о факте уголовного преследования + i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) + i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела + i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело + i.decision_number AS case_number, -- номер уголовного дела (судебный) + i.decision_date AS sentence_date, -- дата приговора + i.extra_info->>'court' AS court_decision, -- суд вынесший приговор + CASE + WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' + WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' + WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' + WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' + ELSE NULL + END AS type_punishment, -- вид наказания + CASE + WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' + WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' + ELSE null + END AS decision_reason, -- Причины уголовного наказания в связи с фз53 + i.hidden, + CASE + WHEN i.hidden is false THEN 1 + ELSE 0 + END AS is_criminal_liability_fz53, + (i.extra_info->>'dateApplication')::date AS date_application,--дата с которой наложена мера + i.extra_info->>'description' AS description,--описание наказания + i.extra_info->>'reasonForAddEntry' AS reason_for_add_entry--основания для внесения записи + +FROM public.infringement i + +JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + + AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}' + + AND '${M_R_CR_DATE}' >= i.created_at + + --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты + +WHERE --hidden IS FALSE AND + + i.type = 'CRIMINAL' + + + +${LIMIT_FW} + Y + + + 480 + 208 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_criminal_liability_fz53 + has_criminal_liability_fz53 + +
+ N + Y + + + 1296 + 64 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_criminal_liability_fz53 + has_criminal_liability_fz53_raw == 1 + Boolean + -1 + -1 + + + + + 1072 + 64 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow1.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow1.hpl deleted file mode 100644 index bd7d195..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow1.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - delta_citizen_criminal_liability_fz53_flow1 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_criminal_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - sentence_date - sentence_date - Y - - - court_decision - court_decision - Y - - - type_punishment - type_punishment - Y - - - decision_reason - decision_reason - Y - - - has_criminal_liability_fz53 - has_criminal_liability_fz53 - Y - -
- N - - - 928 - 336 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - --, -- сведения о факте уголовного преследования - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело - i.decision_number AS case_number, -- номер уголовного дела (судебный) - i.decision_date AS sentence_date, -- дата приговора - i.extra_info->>'court' AS court_decision, -- суд вынесший приговор - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' - WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' - WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' - WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' - WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' - ELSE null - END AS decision_reason, -- Причины уголовного наказания в связи с фз53 - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_criminal_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE --hidden IS FALSE AND - i.type = 'CRIMINAL' - Y - - - 496 - 336 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow2.hpl deleted file mode 100644 index eb09efe..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow2.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - delta_citizen_criminal_liability_fz53_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_criminal_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - sentence_date - sentence_date - Y - - - court_decision - court_decision - Y - - - type_punishment - type_punishment - Y - - - decision_reason - decision_reason - Y - - - has_criminal_liability_fz53 - has_criminal_liability_fz53 - Y - -
- N - - - 1040 - 384 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - --, -- сведения о факте уголовного преследования - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело - i.decision_number AS case_number, -- номер уголовного дела (судебный) - i.decision_date AS sentence_date, -- дата приговора - i.extra_info->>'court' AS court_decision, -- суд вынесший приговор - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' - WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' - WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' - WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' - WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' - ELSE null - END AS decision_reason, -- Причины уголовного наказания в связи с фз53 - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_criminal_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE --hidden IS FALSE AND - i.type = 'CRIMINAL' - Y - - - 608 - 384 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow3.hpl deleted file mode 100644 index 1fa9fe1..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow3.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - delta_citizen_criminal_liability_fz53_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_criminal_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - sentence_date - sentence_date - Y - - - court_decision - court_decision - Y - - - type_punishment - type_punishment - Y - - - decision_reason - decision_reason - Y - - - has_criminal_liability_fz53 - has_criminal_liability_fz53 - Y - -
- N - - - 1056 - 224 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - --, -- сведения о факте уголовного преследования - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело - i.decision_number AS case_number, -- номер уголовного дела (судебный) - i.decision_date AS sentence_date, -- дата приговора - i.extra_info->>'court' AS court_decision, -- суд вынесший приговор - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' - WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' - WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' - WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' - WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' - ELSE null - END AS decision_reason, -- Причины уголовного наказания в связи с фз53 - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_criminal_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE --hidden IS FALSE AND - i.type = 'CRIMINAL' - Y - - - 624 - 224 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow4.hpl deleted file mode 100644 index f15f7f6..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow4.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - delta_citizen_criminal_liability_fz53_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_criminal_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - sentence_date - sentence_date - Y - - - court_decision - court_decision - Y - - - type_punishment - type_punishment - Y - - - decision_reason - decision_reason - Y - - - has_criminal_liability_fz53 - has_criminal_liability_fz53 - Y - -
- N - - - 960 - 416 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - --, -- сведения о факте уголовного преследования - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело - i.decision_number AS case_number, -- номер уголовного дела (судебный) - i.decision_date AS sentence_date, -- дата приговора - i.extra_info->>'court' AS court_decision, -- суд вынесший приговор - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' - WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' - WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' - WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' - WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' - ELSE null - END AS decision_reason, -- Причины уголовного наказания в связи с фз53 - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_criminal_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE --hidden IS FALSE AND - i.type = 'CRIMINAL' - Y - - - 528 - 416 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow5.hpl deleted file mode 100644 index 99a4d0a..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow5.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - delta_citizen_criminal_liability_fz53_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_criminal_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - sentence_date - sentence_date - Y - - - court_decision - court_decision - Y - - - type_punishment - type_punishment - Y - - - decision_reason - decision_reason - Y - - - has_criminal_liability_fz53 - has_criminal_liability_fz53 - Y - -
- N - - - 1184 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - --, -- сведения о факте уголовного преследования - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело - i.decision_number AS case_number, -- номер уголовного дела (судебный) - i.decision_date AS sentence_date, -- дата приговора - i.extra_info->>'court' AS court_decision, -- суд вынесший приговор - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф' - WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы' - WHEN i.extra_info->>'punishment' = '3' THEN 'Арест' - WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу' - WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы' - ELSE null - END AS decision_reason, -- Причины уголовного наказания в связи с фз53 - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_criminal_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE --hidden IS FALSE AND - i.type = 'CRIMINAL' - Y - - - 752 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..e4d32f9 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + citizen_criminal_liability_fz53_flow_delta.hpl + Y + + + Table input + citizen_criminal_liability_fz53_flow_delta.hpl 2 + Y + + + Table input + citizen_criminal_liability_fz53_flow_delta.hpl 3 + Y + + + Table input + citizen_criminal_liability_fz53_flow_delta.hpl 4 + Y + + + Table input + citizen_criminal_liability_fz53_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_criminal_liability_fz53_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + citizen_criminal_liability_fz53_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 624 + 128 + + + + citizen_criminal_liability_fz53_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 624 + 208 + + + + citizen_criminal_liability_fz53_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 624 + 288 + + + + citizen_criminal_liability_fz53_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 624 + 368 + + + + citizen_criminal_liability_fz53_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 624 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..d7bd8bb --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + citizen_criminal_liability_fz53_flow_repeat.hpl + Y + + + Table input + citizen_criminal_liability_fz53_flow_repeat.hpl 2 + Y + + + Table input + citizen_criminal_liability_fz53_flow_repeat.hpl 3 + Y + + + Table input + citizen_criminal_liability_fz53_flow_repeat.hpl 4 + Y + + + Table input + citizen_criminal_liability_fz53_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_criminal_liability_fz53_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + citizen_criminal_liability_fz53_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 496 + 208 + + + + citizen_criminal_liability_fz53_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 496 + 288 + + + + citizen_criminal_liability_fz53_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 496 + 368 + + + + citizen_criminal_liability_fz53_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 496 + 448 + + + + citizen_criminal_liability_fz53_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 496 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_rows_five_flow_if_error.hpl deleted file mode 100644 index b7e3e03..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_rows_five_flow_if_error.hpl +++ /dev/null @@ -1,185 +0,0 @@ - - - - recruitment_rows_five_flow_if_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/23 14:28:22.572 - - - 2025/05/23 14:28:22.572 - - - - - - Table input - Copy rows to result - Y - - - - Copy rows to result - RowsToResult - - Y - - 1 - - none - - - - - 880 - 288 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -fr_check AS ( - SELECT - last_recruitment_id AS recruitment_id, - recruitment_created_date, - status, - job_name - FROM public.etl_checkpoints - WHERE status = 'ERROR' AND job_name IN ('citizen_criminal_liability_fz53_flow1', 'citizen_criminal_liability_fz53_flow2', 'citizen_criminal_liability_fz53_flow3', 'citizen_criminal_liability_fz53_flow4', 'citizen_criminal_liability_fz53_flow5') -), -ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, - ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position - FROM ordered -), -pivoted AS ( - SELECT - position, - MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow1') THEN created_at END) AS cr_flow1, - MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow1') THEN idm_id::text END) AS idm_flow1, - MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow2') THEN created_at END) AS cr_flow2, - MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow2') THEN idm_id::text END) AS idm_flow2, - MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow3') THEN created_at END) AS cr_flow3, - MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow3') THEN idm_id::text END) AS idm_flow3, - MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow4') THEN created_at END) AS cr_flow4, - MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow4') THEN idm_id::text END) AS idm_flow4, - MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow5') THEN created_at END) AS cr_flow5, - MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow5') THEN idm_id::text END) AS idm_flow5 - FROM splitted - GROUP BY position -), -remains as ( - SELECT - position, - cr_flow1, - idm_flow1::uuid, - cr_flow2, - idm_flow2::uuid, - cr_flow3, - idm_flow3::uuid, - cr_flow4, - idm_flow4::uuid, - cr_flow5, - idm_flow5::uuid - FROM pivoted - WHERE (cr_flow1 IS NOT NULL AND idm_flow1 IS NOT NULL) - OR (cr_flow2 IS NOT NULL AND idm_flow2 IS NOT NULL) - OR (cr_flow3 IS NOT NULL AND idm_flow3 IS NOT NULL) - OR (cr_flow4 IS NOT NULL AND idm_flow4 IS NOT NULL) - OR (cr_flow5 IS NOT NULL AND idm_flow5 IS NOT NULL) - order by position -), -idm1 as ( - select - cr_flow1, - idm_flow1 - from remains - where cr_flow1 is not null and idm_flow1 is not null -), -idm2 as ( - select - cr_flow2, - idm_flow2 - from remains - where cr_flow2 is not null and idm_flow2 is not null -), -idm3 as ( - select - cr_flow3, - idm_flow3 - from remains - where cr_flow3 is not null and idm_flow3 is not null -), -idm4 as ( - select - cr_flow4, - idm_flow4 - from remains - where cr_flow4 is not null and idm_flow4 is not null -), -idm5 as ( - select - cr_flow5, - idm_flow5 - from remains - where cr_flow5 is not null and idm_flow5 is not null -) -select - i1.*, - i2.*, - i3.*, - i4.*, - i5.* -FROM - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1 -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn -ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn) -limit 2 - N - - - 512 - 288 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitments_five_flow.hpl new file mode 100644 index 0000000..eef528e --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + citizen_criminal_liability_fz53_flow.hpl + Y + + + Get all recruitments ordered by created_date + citizen_criminal_liability_fz53_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + citizen_criminal_liability_fz53_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + citizen_criminal_liability_fz53_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + citizen_criminal_liability_fz53_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + citizen_criminal_liability_fz53_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 752 + 144 + + + + citizen_criminal_liability_fz53_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 752 + 224 + + + + citizen_criminal_liability_fz53_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 752 + 304 + + + + citizen_criminal_liability_fz53_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 752 + 384 + + + + citizen_criminal_liability_fz53_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_criminal_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 752 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..b3fff70 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_guardianship_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_error.hpl deleted file mode 100644 index e6a5f14..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_error.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_citizen_guardianship_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'citizen_guardianship_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_success.hpl deleted file mode 100644 index 571a7cf..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_success.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_citizen_guardianship_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'citizen_guardianship_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_error.hpl deleted file mode 100644 index 7b836c5..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_error.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_citizen_guardianship_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_guardianship_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_success.hpl deleted file mode 100644 index 5ce643b..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_success.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_citizen_guardianship_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_guardianship_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_error.hpl deleted file mode 100644 index 4046d93..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_error.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_citizen_guardianship_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_guardianship_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_success.hpl deleted file mode 100644 index ba9817b..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_success.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_citizen_guardianship_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_guardianship_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_error.hpl deleted file mode 100644 index 09bc827..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_guardianship_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_guardianship_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_success.hpl deleted file mode 100644 index 4d21654..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_guardianship_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_guardianship_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_error.hpl deleted file mode 100644 index 88fd368..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_guardianship_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_guardianship_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_success.hpl deleted file mode 100644 index 0807eed..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_guardianship_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_guardianship_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_error.hpl deleted file mode 100644 index 62e0d8a..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_error.hpl +++ /dev/null @@ -1,110 +0,0 @@ - - - - change_status_delta_citizen_guardianship_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_guardianship' as job_name, - 'ERROR' as status, - current_timestamp as record_created - -union all - - SELECT - 'job_citizen_guardianship' as job_name, - 'ERROR' as status, - current_timestamp as record_created - - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_success.hpl deleted file mode 100644 index 5628f74..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_success.hpl +++ /dev/null @@ -1,110 +0,0 @@ - - - - change_status_delta_citizen_guardianship_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_guardianship' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - -union all - - SELECT - 'job_citizen_guardianship' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing.hpl deleted file mode 100644 index 68d82dc..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - change_status_to_processing - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 16:14:31.162 - - - 2025/06/11 16:14:31.162 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 784 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'job_citizen_guardianship' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_guardianship_flow1' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_guardianship_flow2' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_guardianship_flow3' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_guardianship_flow4' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_guardianship_flow5' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 368 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_citizen_guardianship_job_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_citizen_guardianship_job_exists.hpl new file mode 100644 index 0000000..8ff4ff0 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_citizen_guardianship_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_citizen_guardianship_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'citizen_guardianship_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Basic + Y + N + 0 + ${STATUS} + + + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_job_citizen_guardianship_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_job_citizen_guardianship_exists.hpl deleted file mode 100644 index 64a9b1d..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_job_citizen_guardianship_exists.hpl +++ /dev/null @@ -1,130 +0,0 @@ - - - - check_if_job_citizen_guardianship_exists - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 15:20:18.267 - - - 2025/06/11 15:20:18.267 - - - - - - Table input - Set variables - Y - - - Set variables - Write to log - N - - - - Set variables - SetVariable - - Y - - 1 - - none - - - - - job_name - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW - - - Y - - - 688 - 352 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - COALESCE(job_name, 'job_citizen_guardianship') AS job_name, - COALESCE(status, 'NEW') AS status, - current_timestamp::timestamp as record_created -FROM ( - SELECT job_name, status - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_guardianship' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_guardianship' - ) -) t - N - - - 400 - 352 - - - - Write to log - WriteToLog - - Y - - 1 - - none - - - Y - - - N - 0 - Basic - ${STATUS} - - - 960 - 240 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/delta_citizen_guardianship.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/delta_citizen_guardianship.hpl deleted file mode 100644 index d8ed97e..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/delta_citizen_guardianship.hpl +++ /dev/null @@ -1,122 +0,0 @@ - - - - delta_citizen_guardianship - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_guardianship
- - recruit_id - recruit_id - N - - - birth_date - birth_date - Y - - - full_name - full_name - Y - - - snils - snils - Y - -
- N - - - 1072 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with person as -(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку - --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp -where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array') -select - r.recruit_id AS recruit_id, - concat_ws(' ', ch->'fioOpek'->>'familiya', - ch->'fioOpek'->>'imya', - ch->'fioOpek'->>'otchestvo') full_name, - make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date, - ch->>'snils' snils -from ervu_dashboard.citizen r -join person on r.recruit_id = person.recruit_id - Y - - - 624 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/job_guardianship.hwf b/mappings/info_recruits/citizen_tables/citizen_guardianship/job_guardianship.hwf new file mode 100644 index 0000000..a09271a --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/job_guardianship.hwf @@ -0,0 +1,268 @@ + + + job_guardianship + Y + + + + 0 + - + 2025/06/05 14:27:15.055 + - + 2025/06/05 14:27:15.055 + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 416 + 208 + + + + check_if_citizen_guardianship_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_citizen_guardianship_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 608 + 208 + + + + citizen_guardianship_job_exists_check + + SIMPLE_EVAL + + + + boolean + + + + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 880 + 208 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1248 + 208 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_on_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 1120 + 512 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 880 + 368 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 880 + 512 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 880 + 704 + + + + + + Start + check_if_citizen_guardianship_job_exists.hpl + Y + Y + Y + + + check_if_citizen_guardianship_job_exists.hpl + citizen_guardianship_job_exists_check + Y + Y + N + + + citizen_guardianship_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + citizen_guardianship_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl new file mode 100644 index 0000000..f53452c --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl @@ -0,0 +1,512 @@ + + + + citizen_guardianship_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Table input + Table output + Y + + + Create job execution record + Table input + Y + + + Table output + Change job status on error + Y + + + Add constants + Update + Y + + + Update + Change job status on error + Y + + + Table output + Group by + Y + + + Change job status on error + Abort + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + Add constants + Y + + + Update + Filter rows + Y + + + Filter rows + Change job status on success 2 + Y + + + Update + Detect empty stream + Y + + + Detect empty stream + Change job status on success 2 + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1280 + 544 + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + is_guardian + true + -1 + N + Boolean + + + + + 1104 + 0 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1280 + 320 + + + + Change job status on success 2 + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}' +and status = 'PROCESSING'; + + + + + 1840 + 0 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 288 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1536 + 160 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success 2 + + + 1520 + 0 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 720 + 0 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 912 + 0 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id AS recruit_id, + (ch->>'id')::uuid AS guardianship_external_id, + NULLIF(ch->>'idERN', '') AS guardian_id_ern, + ch->'fioOpek'->>'familiya' AS last_name, + ch->'fioOpek'->>'imya' AS first_name, + ch->'fioOpek'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'fioOpek'->>'familiya', + ch->'fioOpek'->>'imya', + ch->'fioOpek'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(ch->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + ch->>'snils' AS snils +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') AS ch +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array' + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date; + Y + + + 496 + 320 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + guardianship_external_id + guardianship_external_id + + + guardian_id_ern + guardian_id_ern + + + last_name + last_name + + + first_name + first_name + + + middle_name + middle_name + + + full_name + full_name + + + birth_date + birth_date + + + snils + snils + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_guardianship
+ N + Y + N + Y + + + 720 + 320 + +
+ + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_guardian + is_guardian + +
+ N + Y + + + 1280 + 0 + +
+ + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow1.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow1.hpl deleted file mode 100644 index 5db084f..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow1.hpl +++ /dev/null @@ -1,228 +0,0 @@ - - - - citizen_guardianship_flow1 - Y - - - - Normal - 0 - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 26 - 560 - 208 - сведения о лице опекаемом или находящемся на попечении - 349 - - - - - Table input - Select values 4 2 - N - - - Select values 4 2 - Get variables - N - - - Table input - Insert / update - Y - - - - Get variables - GetVariable - - Y - - 1 - - none - - - - - -1 - recruitment_id - -1 - none - String - ID_F1 - - - - - 976 - 400 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_guardianship
- - recruit_id - recruit_id - N - - - birth_date - birth_date - Y - - - full_name - full_name - Y - - - snils - snils - Y - -
- N - - - 960 - 288 - -
- - Select values 4 2 - SelectValues - - Y - - 1 - - none - - - - N - - ID_F1 - ID_F1 - String - -2 - -2 - - false - - - false - - - - - - - - - - 720 - 400 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with person as -(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array') -select - r.recruit_id AS recruit_id, - concat_ws(' ', ch->'fioOpek'->>'familiya', - ch->'fioOpek'->>'imya', - ch->'fioOpek'->>'otchestvo') full_name, - make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date, - ch->>'snils' snils -from ervu_dashboard.citizen r -join person on r.recruit_id = person.recruit_id - Y - - - 448 - 288 - - - - - Select values 4 2 - Get variables - Y - - - - - - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow2.hpl deleted file mode 100644 index ecb257f..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow2.hpl +++ /dev/null @@ -1,141 +0,0 @@ - - - - citizen_guardianship_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 26 - 656 - 208 - сведения о лице опекаемом или находящемся на попечении - 349 - - - - - Table input - Insert / update 2 - Y - - - - Insert / update 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_guardianship
- - recruit_id - recruit_id - N - - - birth_date - birth_date - Y - - - full_name - full_name - Y - - - snils - snils - Y - -
- N - - - 1056 - 288 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with person as -(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array') -select - r.recruit_id AS recruit_id, - concat_ws(' ', ch->'fioOpek'->>'familiya', - ch->'fioOpek'->>'imya', - ch->'fioOpek'->>'otchestvo') full_name, - make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date, - ch->>'snils' snils -from ervu_dashboard.citizen r -join person on r.recruit_id = person.recruit_id - Y - - - 560 - 288 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow3.hpl deleted file mode 100644 index 7e5f328..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow3.hpl +++ /dev/null @@ -1,141 +0,0 @@ - - - - citizen_guardianship_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 26 - 800 - 256 - сведения о лице опекаемом или находящемся на попечении - 349 - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_guardianship
- - recruit_id - recruit_id - N - - - birth_date - birth_date - Y - - - full_name - full_name - Y - - - snils - snils - Y - -
- N - - - 1216 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with person as -(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array') -select - r.recruit_id AS recruit_id, - concat_ws(' ', ch->'fioOpek'->>'familiya', - ch->'fioOpek'->>'imya', - ch->'fioOpek'->>'otchestvo') full_name, - make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date, - ch->>'snils' snils -from ervu_dashboard.citizen r -join person on r.recruit_id = person.recruit_id - Y - - - 672 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow4.hpl deleted file mode 100644 index 9c52b48..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow4.hpl +++ /dev/null @@ -1,141 +0,0 @@ - - - - citizen_guardianship_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 26 - 640 - 240 - сведения о лице опекаемом или находящемся на попечении - 349 - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_guardianship
- - recruit_id - recruit_id - N - - - birth_date - birth_date - Y - - - full_name - full_name - Y - - - snils - snils - Y - -
- N - - - 1088 - 320 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with person as -(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array') -select - r.recruit_id AS recruit_id, - concat_ws(' ', ch->'fioOpek'->>'familiya', - ch->'fioOpek'->>'imya', - ch->'fioOpek'->>'otchestvo') full_name, - make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date, - ch->>'snils' snils -from ervu_dashboard.citizen r -join person on r.recruit_id = person.recruit_id - Y - - - 528 - 320 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow5.hpl deleted file mode 100644 index a26e744..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow5.hpl +++ /dev/null @@ -1,141 +0,0 @@ - - - - citizen_guardianship_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 26 - 704 - 256 - сведения о лице опекаемом или находящемся на попечении - 349 - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_guardianship
- - recruit_id - recruit_id - N - - - birth_date - birth_date - Y - - - full_name - full_name - Y - - - snils - snils - Y - -
- N - - - 1024 - 368 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with person as -(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch, - ri.recruit_id -from ervu_dashboard.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array') -select - r.recruit_id AS recruit_id, - concat_ws(' ', ch->'fioOpek'->>'familiya', - ch->'fioOpek'->>'imya', - ch->'fioOpek'->>'otchestvo') full_name, - make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date, - ch->>'snils' snils -from ervu_dashboard.citizen r -join person on r.recruit_id = person.recruit_id - Y - - - 560 - 368 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl new file mode 100644 index 0000000..89a2259 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl @@ -0,0 +1,527 @@ + + + + citizen_guardianship_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Add constants + Update + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Change job status on error + Abort + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + Add constants + Y + + + Update + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Update + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1200 + 480 + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + is_guardian + true + -1 + N + Boolean + + + + + 1024 + 0 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + error_code + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1200 + 224 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS', + error_description = null +WHERE job_name = '${JOB_NAME}' + and recruitment_id = '${IDM_ID}' + and status = 'DELTA_PROCESSING'; + + + + 1712 + 0 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 336 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1456 + 224 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1456 + 0 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 704 + 0 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 864 + 0 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + guardianship_external_id + guardianship_external_id + + ervu_dashboard + citizen_guardianship
+ + recruit_id + recruit_id + N + + + first_name + first_name + Y + + + last_name + last_name + Y + + + middle_name + middle_name + Y + + + birth_date + birth_date + Y + + + full_name + full_name + Y + + + guardian_id_ern + guardian_id_ern + Y + + + guardianship_external_id + guardianship_external_id + N + + + snils + snils + Y + +
+ N + + + 704 + 224 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id AS recruit_id, + (ch->>'id')::uuid AS guardianship_external_id, + NULLIF(ch->>'idERN', '') AS guardian_id_ern, + ch->'fioOpek'->>'familiya' AS last_name, + ch->'fioOpek'->>'imya' AS first_name, + ch->'fioOpek'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'fioOpek'->>'familiya', + ch->'fioOpek'->>'imya', + ch->'fioOpek'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(ch->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + ch->>'snils' AS snils +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') AS ch +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array' + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND c.update_date >= '${M_R_UP_DATE}'::timestamp; + Y + + + 544 + 224 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_guardian + is_guardian + +
+ N + Y + + + 1200 + 0 + +
+ + + Insert / update + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl new file mode 100644 index 0000000..5ec494f --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl @@ -0,0 +1,542 @@ + + + + citizen_guardianship_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Table input + Insert / update + Y + + + Insert / update + Change job status on error + Y + + + Add constants + Update + Y + + + Update + Change job status on error + Y + + + Insert / update + Group by + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + Add constants + Y + + + Change job status on error + Abort + Y + + + Update + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Update + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1232 + 384 + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + is_guardian + true + -1 + N + Boolean + + + + + 1040 + 48 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + error_code + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + + 1232 + 208 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}' +and status = 'PROCESSING'; + + + + + 1808 + 48 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + 160 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1488 + 192 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1504 + 48 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 704 + 48 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 896 + 48 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + guardianship_external_id + guardianship_external_id + + ervu_dashboard + citizen_guardianship
+ + recruit_id + recruit_id + N + + + first_name + first_name + Y + + + last_name + last_name + Y + + + middle_name + middle_name + Y + + + birth_date + birth_date + Y + + + full_name + full_name + Y + + + guardian_id_ern + guardian_id_ern + Y + + + guardianship_external_id + guardianship_external_id + N + + + snils + snils + Y + +
+ N + + + 704 + 208 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id AS recruit_id, + (ch->>'id')::uuid AS guardianship_external_id, + NULLIF(ch->>'idERN', '') AS guardian_id_ern, + ch->'fioOpek'->>'familiya' AS last_name, + ch->'fioOpek'->>'imya' AS first_name, + ch->'fioOpek'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'fioOpek'->>'familiya', + ch->'fioOpek'->>'imya', + ch->'fioOpek'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(ch->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + ch->>'snils' AS snils +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') AS ch +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array' + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date; + Y + + + 416 + 208 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_guardian + is_guardian + +
+ N + Y + + + 1232 + 48 + +
+ + + Insert / update + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..034d7b5 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + citizen_guardianship_flow_delta.hpl + Y + + + Table input + citizen_guardianship_flow_delta.hpl 2 + Y + + + Table input + citizen_guardianship_flow_delta.hpl 3 + Y + + + Table input + citizen_guardianship_flow_delta.hpl 4 + Y + + + Table input + citizen_guardianship_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_guardianship_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + citizen_guardianship_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 128 + + + + citizen_guardianship_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 208 + + + + citizen_guardianship_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 288 + + + + citizen_guardianship_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 368 + + + + citizen_guardianship_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..fba8aa1 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + citizen_guardianship_flow_repeat.hpl + Y + + + Table input + citizen_guardianship_flow_repeat.hpl 3 + Y + + + Table input + citizen_guardianship_flow_repeat.hpl 2 + Y + + + Table input + citizen_guardianship_flow_repeat.hpl 4 + Y + + + Table input + citizen_guardianship_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_guardianship_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + citizen_guardianship_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 208 + + + + citizen_guardianship_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 288 + + + + citizen_guardianship_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 368 + + + + citizen_guardianship_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 448 + + + + citizen_guardianship_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitments_five_flow.hpl new file mode 100644 index 0000000..5bc8d05 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitments_five_flow.hpl @@ -0,0 +1,356 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + citizen_guardianship_flow.hpl + Y + + + Get all recruitments ordered by created_date + citizen_guardianship_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + citizen_guardianship_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + citizen_guardianship_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + citizen_guardianship_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment; + N + + + 432 + 304 + + + + citizen_guardianship_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 144 + + + + citizen_guardianship_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 224 + + + + citizen_guardianship_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 304 + + + + citizen_guardianship_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 384 + + + + citizen_guardianship_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_guardianship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53.hpl deleted file mode 100644 index 8ad6911..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53.hpl +++ /dev/null @@ -1,124 +0,0 @@ - - - - branching_citizen_liability_fz53 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 09:54:43.724 - - - 2025/06/09 09:54:43.724 - - - - - - Set variables 2 - Write to log 2 - N - - - Table input - Set variables 2 - Y - - - - Set variables 2 - SetVariable - - Y - - 1 - - none - - - - - pipeline - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW - - - Y - - - 1056 - 256 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - select - status as STATUS, - job_name AS PIPELINE -from public.etl_checkpoints -where job_name = 'job_citizen_liability_fz53' - N - - - 816 - 256 - - - - Write to log 2 - WriteToLog - - Y - - 1 - - none - - - Y - - - pipeline - - - status - - - N - 0 - Basic - ${PIPE} -${STATUS} - - - 1280 - 256 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53_delta.hpl deleted file mode 100644 index 45f831f..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53_delta.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - branching_citizen_liability_fz53_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 09:54:43.724 - - - 2025/06/09 09:54:43.724 - - - - - - Set variables 2 - Write to log 2 - N - - - Table input - Set variables 2 - Y - - - - Set variables 2 - SetVariable - - Y - - 1 - - none - - - - - pipeline - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW - - - Y - - - 1056 - 256 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - COALESCE(job_name, 'job_citizen_liability_fz53_delta') AS PIPELINE, - COALESCE(status, 'ERROR') AS STATUS, - current_timestamp::timestamp as record_created -FROM ( - select - CASE - WHEN status = 'PROCESSING' THEN 'ERROR' - ELSE status - END AS status, - job_name - from public.etl_checkpoints - where job_name = 'job_citizen_liability_fz53_delta' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_liability_fz53_delta' - ) -) t - N - - - 816 - 256 - - - - Write to log 2 - WriteToLog - - Y - - 1 - - none - - - Y - - - pipeline - - - status - - - N - 0 - Basic - ${PIPE} -${STATUS} - - - 1280 - 256 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..657e764 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_liability_fz53_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_error.hpl deleted file mode 100644 index 51525dd..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_error.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_citizen_liability_fz53_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'citizen_liability_fz53_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_success.hpl deleted file mode 100644 index 516b012..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_success.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_citizen_liability_fz53_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'citizen_liability_fz53_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_error.hpl deleted file mode 100644 index 5765a9e..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_error.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_citizen_liability_fz53_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_liability_fz53_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_success.hpl deleted file mode 100644 index f68afc4..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_success.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_citizen_liability_fz53_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_liability_fz53_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_error.hpl deleted file mode 100644 index 4436574..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_error.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_citizen_liability_fz53_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_liability_fz53_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_success.hpl deleted file mode 100644 index 8988f0c..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_success.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_citizen_liability_fz53_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_liability_fz53_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_error.hpl deleted file mode 100644 index 3f3c5b7..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_liability_fz53_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_liability_fz53_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_success.hpl deleted file mode 100644 index 8e16f42..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_liability_fz53_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_liability_fz53_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_error.hpl deleted file mode 100644 index 8b54d7e..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_liability_fz53_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_liability_fz53_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_success.hpl deleted file mode 100644 index ba11212..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_liability_fz53_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_liability_fz53_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_error.hpl deleted file mode 100644 index 84f72b4..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_liability_fz53_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_liability_fz53_flow1' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_success.hpl deleted file mode 100644 index 81381cb..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_liability_fz53_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_liability_fz53_flow1' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl deleted file mode 100644 index 543c8ef..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl +++ /dev/null @@ -1,102 +0,0 @@ - - - - change_status_delta_citizen_liability_fz53_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_liability_fz53_flow2' as job_name, - 'ERROR' as status, - current_timestamp as record_created - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_success.hpl deleted file mode 100644 index 24c35d7..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_liability_fz53_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_liability_fz53_flow2' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_error.hpl deleted file mode 100644 index 4fd1742..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_liability_fz53_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_liability_fz53_flow3' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_success.hpl deleted file mode 100644 index 463529d..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_liability_fz53_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_liability_fz53_flow3' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_error.hpl deleted file mode 100644 index 2c43fdf..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_liability_fz53_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_liability_fz53_flow4' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_success.hpl deleted file mode 100644 index 4e3ac61..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_liability_fz53_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_liability_fz53_flow4' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_error.hpl deleted file mode 100644 index 87c2807..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_liability_fz53_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_liability_fz53_flow5' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_success.hpl deleted file mode 100644 index befcfd5..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_citizen_liability_fz53_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_liability_fz53_flow5' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing.hpl deleted file mode 100644 index 688659d..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - change_status_to_processing - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 16:14:31.162 - - - 2025/06/11 16:14:31.162 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 784 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'job_citizen_liability_fz53' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_liability_fz53_flow1' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_liability_fz53_flow2' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_liability_fz53_flow3' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_liability_fz53_flow4' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_liability_fz53_flow5' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 368 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing_delta.hpl deleted file mode 100644 index 46b50cc..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing_delta.hpl +++ /dev/null @@ -1,102 +0,0 @@ - - - - change_status_to_processing_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 13:42:26.494 - - - 2025/06/16 13:42:26.494 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1248 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'delta_citizen_liability_fz53' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 832 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/check_if_job_prosecution_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_citizen_liability_fz53_job_exists.hpl similarity index 70% rename from mappings/info_recruits/citizen_tables/prosecution/checkpoints/check_if_job_prosecution_exists.hpl rename to mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_citizen_liability_fz53_job_exists.hpl index 3a00226..0f2ee35 100644 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/check_if_job_prosecution_exists.hpl +++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_citizen_liability_fz53_job_exists.hpl @@ -1,7 +1,7 @@ - check_if_job_prosecution_exists + check_if_citizen_liability_fz53_job_exists Y @@ -13,23 +13,23 @@ 1000 100 - - 2025/06/11 15:20:18.267 + 2025/08/05 13:28:46.661 - - 2025/06/11 15:20:18.267 + 2025/08/05 13:28:46.661 - - Table input - Set variables - Y - Set variables Write to log N + + Table input + Set variables + Y + Set variables @@ -44,21 +44,16 @@ - job_name - PIPE - PARENT_WORKFLOW - - - status - STATUS + job_executed_flag + JOB_EXECUTED_FLAG PARENT_WORKFLOW Y - 688 - 352 + 672 + 336 @@ -75,29 +70,17 @@ ervu-dashboard N 0 - SELECT - COALESCE(job_name, 'job_prosecution') AS job_name, - COALESCE(status, 'NEW') AS status, - current_timestamp::timestamp as record_created -FROM ( - SELECT job_name, status - FROM public.etl_checkpoints - WHERE job_name = 'job_prosecution' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_prosecution' - ) -) t + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'citizen_liability_fz53_job' + limit 1 + ) AS job_executed_flag; N - 400 - 352 + 384 + 336 @@ -120,8 +103,8 @@ FROM ( ${STATUS} - 960 - 240 + 944 + 224 diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_job_citizen_liability_fz53_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_job_citizen_liability_fz53_exists.hpl deleted file mode 100644 index e27b362..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_job_citizen_liability_fz53_exists.hpl +++ /dev/null @@ -1,130 +0,0 @@ - - - - check_if_job_citizen_liability_fz53_exists - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 15:20:18.267 - - - 2025/06/11 15:20:18.267 - - - - - - Table input - Set variables - Y - - - Set variables - Write to log - N - - - - Set variables - SetVariable - - Y - - 1 - - none - - - - - job_name - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW - - - Y - - - 688 - 352 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - COALESCE(job_name, 'job_citizen_liability_fz53') AS job_name, - COALESCE(status, 'NEW') AS status, - current_timestamp::timestamp as record_created -FROM ( - SELECT job_name, status - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_liability_fz53' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_liability_fz53' - ) -) t - N - - - 400 - 352 - - - - Write to log - WriteToLog - - Y - - 1 - - none - - - Y - - - N - 0 - Basic - ${STATUS} - - - 960 - 240 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_citizen_liability_fz53_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_citizen_liability_fz53_error.hpl deleted file mode 100644 index 0d9cb80..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_citizen_liability_fz53_error.hpl +++ /dev/null @@ -1,273 +0,0 @@ - - - - checkpoint_snils_inn_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 10:01:04.895 - - - 2025/06/09 10:01:04.895 - - - - - - Select values - Table output - N - - - Table input - Select values - N - - - Table input - Table output - Y - - - - Select values - SelectValues - - Y - - 1 - - none - - - - N - - idm_id - idm_id - String - -2 - -2 - - false - - - false - - - - - - - - - - 1008 - 608 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - FROM result_ma -), -for_checkpoints as ( - SELECT - 'job_child_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -) -select * from for_checkpoints - N - - - 736 - 448 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - public - N - etl_checkpoints
- N - Y - N - Y - - - 1248 - 448 - -
- - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl deleted file mode 100644 index a261d64..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl +++ /dev/null @@ -1,869 +0,0 @@ - - - - checkpoint_job_citizen_liability_fz53 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 14:19:02.590 - - - 2025/06/03 14:19:02.590 - - - - - - Filter rows - Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update - Y - - - Dummy (do nothing) - JSON input state_child_flow1.json - N - - - Dummy (do nothing) - JSON input state_child_flow2.json - N - - - Dummy (do nothing) - JSON input state_child_flow3.json - N - - - Dummy (do nothing) - JSON input state_child_flow4.json - N - - - Dummy (do nothing) - JSON input state_child_flow5.json - N - - - - Abort - Abort - - Y - - 1 - - none - - - ABORT_WITH_ERROR - Y - 0 - - - 1264 - 592 - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - - - Filter rows - FilterRows - - Y - - 1 - - none - - - - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow1 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow2 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow3 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow4 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow5 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - Abort - - - 944 - 592 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 432 - - - - JSON input state_child_flow2.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 512 - - - - JSON input state_child_flow3.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 592 - - - - JSON input state_child_flow4.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 672 - - - - JSON input state_child_flow5.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 752 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'citizen_liability_fz53_flow1', - 'citizen_liability_fz53_flow2', - 'citizen_liability_fz53_flow3', - 'citizen_liability_fz53_flow4', - 'citizen_liability_fz53_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'citizen_liability_fz53_flow1', - 'citizen_liability_fz53_flow2', - 'citizen_liability_fz53_flow3', - 'citizen_liability_fz53_flow4', - 'citizen_liability_fz53_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_citizen_liability_fz53' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53_delta.hpl deleted file mode 100644 index e5f3aa0..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53_delta.hpl +++ /dev/null @@ -1,869 +0,0 @@ - - - - checkpoint_job_citizen_liability_fz53_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 14:19:02.590 - - - 2025/06/03 14:19:02.590 - - - - - - Filter rows - Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update - Y - - - Dummy (do nothing) - JSON input state_child_flow1.json - N - - - Dummy (do nothing) - JSON input state_child_flow2.json - N - - - Dummy (do nothing) - JSON input state_child_flow3.json - N - - - Dummy (do nothing) - JSON input state_child_flow4.json - N - - - Dummy (do nothing) - JSON input state_child_flow5.json - N - - - - Abort - Abort - - Y - - 1 - - none - - - ABORT_WITH_ERROR - Y - 0 - - - 1264 - 592 - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - - - Filter rows - FilterRows - - Y - - 1 - - none - - - - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow1 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow2 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow3 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow4 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow5 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - Abort - - - 944 - 592 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 432 - - - - JSON input state_child_flow2.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 512 - - - - JSON input state_child_flow3.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 592 - - - - JSON input state_child_flow4.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 672 - - - - JSON input state_child_flow5.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 752 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'delta_citizen_liability_fz53_flow1', - 'delta_citizen_liability_fz53_flow2', - 'delta_citizen_liability_fz53_flow3', - 'delta_citizen_liability_fz53_flow4', - 'delta_citizen_liability_fz53_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'delta_citizen_liability_fz53_flow1', - 'delta_citizen_liability_fz53_flow2', - 'delta_citizen_liability_fz53_flow3', - 'delta_citizen_liability_fz53_flow4', - 'delta_citizen_liability_fz53_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_citizen_liability_fz53_delta' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/citizen_liability_fz53_job.hwf b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/citizen_liability_fz53_job.hwf new file mode 100644 index 0000000..2abe41b --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/citizen_liability_fz53_job.hwf @@ -0,0 +1,358 @@ + + + citizen_liability_fz53_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 192 + 304 + + + + check_if_citizen_liability_fz53_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_citizen_liability_fz53_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 304 + + + + citizen_liability_fz53_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 752 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1024 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_on_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 992 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 752 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 752 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 752 + 800 + + + + + + Start + check_if_citizen_liability_fz53_job_exists.hpl + Y + Y + Y + + + check_if_citizen_liability_fz53_job_exists.hpl + citizen_liability_fz53_job_exists_check + Y + Y + N + + + citizen_liability_fz53_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + citizen_liability_fz53_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 864 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 864 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 672 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + citizen_liability_fz53_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 136 + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/job_citizen_liability_fz53.hwf b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/job_citizen_liability_fz53.hwf deleted file mode 100644 index b6fe762..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/job_citizen_liability_fz53.hwf +++ /dev/null @@ -1,2480 +0,0 @@ - - - job_citizen_liability_fz53 - Y - - - - 0 - - - 2025/06/05 14:27:15.055 - - - 2025/06/05 14:27:15.055 - - - M_R_CR_DATE - 3001-01-01 00:00:00 - - - - M_R_UP_DATE - - - - - - - Start - - SPECIAL - - 1 - 12 - 60 - 0 - 0 - N - 0 - 1 - N - 368 - 400 - - - - checkpoint_job_citizen_liability_fz53.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 1136 - 1280 - - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2352 - 400 - - - - citizen_liability_fz53_flow1.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2672 - 80 - - - - citizen_liability_fz53_flow2.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2672 - 240 - - - - citizen_liability_fz53_flow3.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2672 - 400 - - - - citizen_liability_fz53_flow4.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2672 - 560 - - - - citizen_liability_fz53_flow5.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2672 - 720 - - - - Abort workflow - - ABORT - - N - N - 2336 - 208 - - - - Success new citizen_liability_fz53 - - SUCCESS - - N - 3728 - 432 - - - - branching_citizen_liability_fz53.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 1536 - 1280 - - - - Simple citizen_liability_fz53 WHERE SUCCESS - - SIMPLE_EVAL - - SUCCESS - string - true - equal - equal - N - variable - STATUS - N - 1584 - 1680 - - - - Simple citizen_liability_fz53 WHERE ERROR - - SIMPLE_EVAL - - ERROR - string - true - equal - equal - N - variable - STATUS - N - 1840 - 1280 - - - - recruitment_rows_five_flow_if_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_rows_five_flow_if_error.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2384 - 1280 - - - - Abort workflow 2 - - ABORT - - N - N - 2320 - 1040 - - - - delta_citizen_liability_fz53_flow1.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow1.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2640 - 1792 - - - - check_if_job_citizen_liability_fz53_exists.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_job_citizen_liability_fz53_exists.hpl - Basic - - Y - - N - local - N - N - Y - N - 576 - 400 - - - - Simple job_citizen_liability_fz53_exists check NEW - - SIMPLE_EVAL - - NEW - string - true - equal - equal - N - variable - STATUS - N - 896 - 400 - - - - change_status_to_processing.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 2368 - 560 - - - - change_status_citizen_liability_fz53_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 80 - - - - change_status_citizen_liability_fz53_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 160 - - - - change_status_citizen_liability_fz53_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 240 - - - - change_status_citizen_liability_fz53_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 320 - - - - change_status_citizen_liability_fz53_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 400 - - - - change_status_citizen_liability_fz53_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 480 - - - - change_status_citizen_liability_fz53_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 560 - - - - change_status_citizen_liability_fz53_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 640 - - - - change_status_citizen_liability_fz53_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 720 - - - - change_status_citizen_liability_fz53_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 800 - - - - checkpoint_job_citizen_liability_fz53.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 3456 - 432 - - - - change_status_to_processing.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 2288 - 1424 - - - - change_status_to_processing_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing_delta.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 2384 - 2304 - - - - change_status_delta_citizen_liability_fz53_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1792 - - - - change_status_delta_citizen_liability_fz53_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1872 - - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2320 - 2112 - - - - Abort workflow 2 2 - - ABORT - - N - N - 2336 - 1952 - - - - delta_citizen_liability_fz53_flow2.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow2.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2640 - 1952 - - - - change_status_delta_citizen_liability_fz53_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1952 - - - - change_status_delta_citizen_liability_fz53_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2032 - - - - delta_citizen_liability_fz53_flow3.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow3.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2640 - 2112 - - - - change_status_delta_citizen_liability_fz53_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2112 - - - - change_status_delta_citizen_liability_fz53_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2192 - - - - delta_citizen_liability_fz53_flow4.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow4.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2640 - 2272 - - - - change_status_delta_citizen_liability_fz53_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2272 - - - - change_status_delta_citizen_liability_fz53_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2352 - - - - delta_citizen_liability_fz53_flow5.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow5.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2640 - 2432 - - - - change_status_delta_citizen_liability_fz53_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2432 - - - - change_status_delta_citizen_liability_fz53_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2512 - - - - branching_citizen_liability_fz53_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 1616 - 2112 - - - - Simple delta_citizen_liability_fz53 WHERE ERROR - - SIMPLE_EVAL - - ERROR - string - true - equal - equal - N - variable - STATUS - N - 1936 - 2112 - - - - delta_citizen_liability_fz53 success - - SUCCESS - - N - 2160 - 1952 - - - - checkpoint_job_citizen_liability_fz53_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 3440 - 2112 - - - - Success delta_citizen_liability_fz53 - - SUCCESS - - N - 3728 - 2112 - - - - citizen_liability_fz53_flow1.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2672 - 960 - - - - citizen_liability_fz53_flow2.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2672 - 1120 - - - - citizen_liability_fz53_flow3.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2672 - 1280 - - - - citizen_liability_fz53_flow4.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2672 - 1440 - - - - citizen_liability_fz53_flow5.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2672 - 1600 - - - - Success citizen_liability_fz53 after error - - SUCCESS - - N - 3728 - 1312 - - - - change_status_citizen_liability_fz53_flow1_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 960 - - - - change_status_citizen_liability_fz53_flow1_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1040 - - - - change_status_citizen_liability_fz53_flow2_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1120 - - - - change_status_citizen_liability_fz53_flow2_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1200 - - - - change_status_citizen_liability_fz53_flow3_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1280 - - - - change_status_citizen_liability_fz53_flow3_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1360 - - - - change_status_citizen_liability_fz53_flow4_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1440 - - - - change_status_citizen_liability_fz53_flow4_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1520 - - - - change_status_citizen_liability_fz53_flow5_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1600 - - - - change_status_citizen_liability_fz53_flow5_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1680 - - - - checkpoint_job_citizen_liability_fz53.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 3456 - 1312 - - - - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl - citizen_liability_fz53_flow1.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl - citizen_liability_fz53_flow2.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl - citizen_liability_fz53_flow3.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl - citizen_liability_fz53_flow4.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl - citizen_liability_fz53_flow5.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl - Abort workflow - Y - N - N - - - branching_citizen_liability_fz53.hpl - Simple citizen_liability_fz53 WHERE ERROR - Y - N - Y - - - branching_citizen_liability_fz53.hpl - Simple citizen_liability_fz53 WHERE SUCCESS - Y - N - Y - - - recruitment_rows_five_flow_if_error.hpl - Abort workflow 2 - Y - N - N - - - Start - check_if_job_citizen_liability_fz53_exists.hpl - Y - Y - Y - - - check_if_job_citizen_liability_fz53_exists.hpl - Simple job_citizen_liability_fz53_exists check NEW - Y - Y - N - - - citizen_liability_fz53_flow1.hpl - change_status_citizen_liability_fz53_flow1_success.hpl - Y - Y - N - - - citizen_liability_fz53_flow1.hpl - change_status_citizen_liability_fz53_flow1_error.hpl - Y - N - N - - - citizen_liability_fz53_flow2.hpl - change_status_citizen_liability_fz53_flow2_success.hpl - Y - Y - N - - - citizen_liability_fz53_flow2.hpl - change_status_citizen_liability_fz53_flow2_error.hpl - Y - N - N - - - citizen_liability_fz53_flow3.hpl - change_status_citizen_liability_fz53_flow3_success.hpl - Y - Y - N - - - citizen_liability_fz53_flow3.hpl - change_status_citizen_liability_fz53_flow3_error.hpl - Y - N - N - - - citizen_liability_fz53_flow4.hpl - change_status_citizen_liability_fz53_flow4_success.hpl - Y - Y - N - - - citizen_liability_fz53_flow4.hpl - change_status_citizen_liability_fz53_flow4_error.hpl - Y - N - N - - - citizen_liability_fz53_flow5.hpl - change_status_citizen_liability_fz53_flow5_success.hpl - Y - Y - N - - - citizen_liability_fz53_flow5.hpl - change_status_citizen_liability_fz53_flow5_error.hpl - Y - N - N - - - change_status_citizen_liability_fz53_flow5_error.hpl - checkpoint_job_citizen_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_liability_fz53_flow5_success.hpl - checkpoint_job_citizen_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_liability_fz53_flow4_error.hpl - checkpoint_job_citizen_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_liability_fz53_flow4_success.hpl - checkpoint_job_citizen_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_liability_fz53_flow3_error.hpl - checkpoint_job_citizen_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_liability_fz53_flow3_success.hpl - checkpoint_job_citizen_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_liability_fz53_flow2_error.hpl - checkpoint_job_citizen_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_liability_fz53_flow2_success.hpl - checkpoint_job_citizen_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_liability_fz53_flow1_error.hpl - checkpoint_job_citizen_liability_fz53.hpl - Y - N - Y - - - change_status_citizen_liability_fz53_flow1_success.hpl - checkpoint_job_citizen_liability_fz53.hpl - Y - N - Y - - - checkpoint_job_citizen_liability_fz53.hpl - Success new citizen_liability_fz53 - Y - Y - N - - - checkpoint_job_citizen_liability_fz53.hpl (2) - branching_citizen_liability_fz53.hpl - Y - N - Y - - - Simple job_citizen_liability_fz53_exists check NEW - checkpoint_job_citizen_liability_fz53.hpl (2) - Y - N - N - - - delta_citizen_liability_fz53_flow1.hpl - change_status_delta_citizen_liability_fz53_flow1_success.hpl - Y - Y - N - - - delta_citizen_liability_fz53_flow1.hpl - change_status_delta_citizen_liability_fz53_flow1_error.hpl - Y - N - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl - change_status_to_processing.hpl - Y - Y - N - - - Simple job_citizen_liability_fz53_exists check NEW - recruitment_rows_five_flow_citizen_liability_fz53.hpl - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - change_status_to_processing.hpl (2) - Y - Y - N - - - Simple citizen_liability_fz53 WHERE ERROR - recruitment_rows_five_flow_if_error.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl (2) - delta_citizen_liability_fz53_flow1.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl (2) - change_status_to_processing_delta.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl (2) - Abort workflow 2 2 - Y - N - N - - - delta_citizen_liability_fz53_flow2.hpl - change_status_delta_citizen_liability_fz53_flow2_success.hpl - Y - Y - N - - - delta_citizen_liability_fz53_flow2.hpl - change_status_delta_citizen_liability_fz53_flow2_error.hpl - Y - N - N - - - delta_citizen_liability_fz53_flow3.hpl - change_status_delta_citizen_liability_fz53_flow3_success.hpl - Y - Y - N - - - delta_citizen_liability_fz53_flow3.hpl - change_status_delta_citizen_liability_fz53_flow3_error.hpl - Y - N - N - - - delta_citizen_liability_fz53_flow4.hpl - change_status_delta_citizen_liability_fz53_flow4_success.hpl - Y - Y - N - - - delta_citizen_liability_fz53_flow4.hpl - change_status_delta_citizen_liability_fz53_flow4_error.hpl - Y - N - N - - - delta_citizen_liability_fz53_flow5.hpl - change_status_delta_citizen_liability_fz53_flow5_success.hpl - Y - Y - N - - - delta_citizen_liability_fz53_flow5.hpl - change_status_delta_citizen_liability_fz53_flow5_error.hpl - Y - N - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl (2) - delta_citizen_liability_fz53_flow3.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl (2) - delta_citizen_liability_fz53_flow2.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl (2) - delta_citizen_liability_fz53_flow4.hpl - Y - Y - N - - - recruitment_rows_five_flow_citizen_liability_fz53.hpl (2) - delta_citizen_liability_fz53_flow5.hpl - Y - Y - N - - - Simple citizen_liability_fz53 WHERE SUCCESS - branching_citizen_liability_fz53_delta.hpl - Y - Y - N - - - Simple delta_citizen_liability_fz53 WHERE ERROR - delta_citizen_liability_fz53 success - Y - N - N - - - branching_citizen_liability_fz53_delta.hpl - Simple delta_citizen_liability_fz53 WHERE ERROR - Y - Y - N - - - Simple delta_citizen_liability_fz53 WHERE ERROR - recruitment_rows_five_flow_citizen_liability_fz53.hpl (2) - Y - Y - N - - - change_status_delta_citizen_liability_fz53_flow1_success.hpl - checkpoint_job_citizen_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_liability_fz53_flow3_success.hpl - checkpoint_job_citizen_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_liability_fz53_flow2_error.hpl - checkpoint_job_citizen_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_liability_fz53_flow2_success.hpl - checkpoint_job_citizen_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_liability_fz53_flow1_error.hpl - checkpoint_job_citizen_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_liability_fz53_flow3_error.hpl - checkpoint_job_citizen_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_liability_fz53_flow4_success.hpl - checkpoint_job_citizen_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_liability_fz53_flow4_error.hpl - checkpoint_job_citizen_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_liability_fz53_flow5_success.hpl - checkpoint_job_citizen_liability_fz53_delta.hpl - Y - Y - N - - - change_status_delta_citizen_liability_fz53_flow5_error.hpl - checkpoint_job_citizen_liability_fz53_delta.hpl - Y - Y - N - - - checkpoint_job_citizen_liability_fz53_delta.hpl - Success delta_citizen_liability_fz53 - Y - Y - N - - - citizen_liability_fz53_flow1.hpl 2 - change_status_citizen_liability_fz53_flow1_success.hpl 2 - Y - Y - N - - - citizen_liability_fz53_flow1.hpl 2 - change_status_citizen_liability_fz53_flow1_error.hpl 2 - Y - N - N - - - citizen_liability_fz53_flow2.hpl 2 - change_status_citizen_liability_fz53_flow2_success.hpl 2 - Y - Y - N - - - citizen_liability_fz53_flow2.hpl 2 - change_status_citizen_liability_fz53_flow2_error.hpl 2 - Y - N - N - - - citizen_liability_fz53_flow3.hpl 2 - change_status_citizen_liability_fz53_flow3_success.hpl 2 - Y - Y - N - - - citizen_liability_fz53_flow3.hpl 2 - change_status_citizen_liability_fz53_flow3_error.hpl 2 - Y - N - N - - - citizen_liability_fz53_flow4.hpl 2 - change_status_citizen_liability_fz53_flow4_success.hpl 2 - Y - Y - N - - - citizen_liability_fz53_flow4.hpl 2 - change_status_citizen_liability_fz53_flow4_error.hpl 2 - Y - N - N - - - citizen_liability_fz53_flow5.hpl 2 - change_status_citizen_liability_fz53_flow5_success.hpl 2 - Y - Y - N - - - citizen_liability_fz53_flow5.hpl 2 - change_status_citizen_liability_fz53_flow5_error.hpl 2 - Y - N - N - - - change_status_citizen_liability_fz53_flow1_success.hpl 2 - checkpoint_job_citizen_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_liability_fz53_flow1_error.hpl 2 - checkpoint_job_citizen_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_liability_fz53_flow2_success.hpl 2 - checkpoint_job_citizen_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_liability_fz53_flow2_error.hpl 2 - checkpoint_job_citizen_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_liability_fz53_flow3_success.hpl 2 - checkpoint_job_citizen_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_liability_fz53_flow3_error.hpl 2 - checkpoint_job_citizen_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_liability_fz53_flow4_success.hpl 2 - checkpoint_job_citizen_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_liability_fz53_flow4_error.hpl 2 - checkpoint_job_citizen_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_liability_fz53_flow5_success.hpl 2 - checkpoint_job_citizen_liability_fz53.hpl 2 - Y - N - Y - - - change_status_citizen_liability_fz53_flow5_error.hpl 2 - checkpoint_job_citizen_liability_fz53.hpl 2 - Y - N - Y - - - checkpoint_job_citizen_liability_fz53.hpl 2 - Success citizen_liability_fz53 after error - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_liability_fz53_flow3.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_liability_fz53_flow2.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_liability_fz53_flow1.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_liability_fz53_flow4.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - citizen_liability_fz53_flow5.hpl 2 - Y - Y - N - - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 72 - 1088 - 176 - 0001-01-01 00:00:00 - -3001-01-01 00:00:00 - - 114 - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl new file mode 100644 index 0000000..cd944ae --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl @@ -0,0 +1,554 @@ + + + + citizen_liability_fz53_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table output + Change job status on error + Y + + + Table output + Group by + Y + + + Group by + Identify last row in a stream + Y + + + Table input + Table output + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1360 + 1056 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1360 + 832 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1808 + 656 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 320 + 832 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1584 + 656 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1584 + 768 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_liability_fz53_raw + is_liability_fz53 + MAX + + + N + + + recruit_id + + + N + grp + + + 720 + 656 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 912 + 656 + + + + Table input + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + SELECT + i.recruit_id, + i.created_at, + i.updated_at, + i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) + i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении + i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении + i.decision_number AS case_number, -- номер дела об административном правонарушении + i.decision_date AS date_resolution, -- дата постановления + i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ + i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление + i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер + CASE + WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' + WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' + WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' + ELSE NULL + END AS reason_use, -- причина применения + i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера + i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания + CASE + WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' + WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' + ELSE NULL + END AS type_punishment, -- вид наказания + i.hidden, + CASE + WHEN i.hidden is false THEN 1 + ELSE 0 + END AS is_liability_fz53 +FROM public.infringement i +JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= i.created_at + --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты +WHERE -- hidden IS FALSE AND + type = 'ADMINISTRATIVE' + +${LIMIT_FW} + Y + + + 512 + 832 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + created_at + created_at + + + updated_at + updated_at + + + case_number_before + case_number_before + + + date_initiation + date_initiation + + + body_initiated + body_initiated + + + case_number + case_number + + + date_resolution + date_resolution + + + article_koap_rf + article_koap_rf + + + court_decision + court_decision + + + name_vc + name_vc + + + reason_use + reason_use + + + start_date + start_date + + + size_term_punishment + size_term_punishment + + + hidden + hidden + + + type_punishment + type_punishment + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_liability_fz53
+ N + Y + N + Y + + + 720 + 832 + +
+ + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_liability_fz53 + has_liability_fz53 + +
+ N + Y + + + 1360 + 656 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_liability_fz53 + has_liability_fz53_raw == 1 + Boolean + -1 + -1 + + + + + 1136 + 656 + + + + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow1.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow1.hpl deleted file mode 100644 index 61d564c..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow1.hpl +++ /dev/null @@ -1,205 +0,0 @@ - - - - citizen_liability_fz53_flow1 - Y - - - - Normal - 0 - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - created_at - created_at - - - ervu_dashboard - citizen_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - date_resolution - date_resolution - Y - - - article_koap_rf - article_koap_rf - Y - - - court_decision - court_decision - Y - - - name_vc - name_vc - Y - - - reason_use - reason_use - Y - - - start_date - start_date - Y - - - size_term_punishment - size_term_punishment - Y - - - type_punishment - type_punishment - Y - - - has_liability_fz53 - has_liability_fz53 - Y - -
- N - - - 880 - 288 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении - i.decision_number AS case_number, -- номер дела об административном правонарушении - i.decision_date AS date_resolution, -- дата постановления - i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ - i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление - i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер - CASE - WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' - WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' - WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' - ELSE NULL - END AS reason_use, -- причина применения - i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера - i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' - WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE -- hidden IS FALSE AND - type = 'ADMINISTRATIVE' - Y - - - 448 - 288 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow2.hpl deleted file mode 100644 index 1950156..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow2.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - citizen_liability_fz53_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - date_resolution - date_resolution - Y - - - article_koap_rf - article_koap_rf - Y - - - court_decision - court_decision - Y - - - name_vc - name_vc - Y - - - reason_use - reason_use - Y - - - start_date - start_date - Y - - - size_term_punishment - size_term_punishment - Y - - - type_punishment - type_punishment - Y - - - has_liability_fz53 - has_liability_fz53 - Y - -
- N - - - 960 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении - i.decision_number AS case_number, -- номер дела об административном правонарушении - i.decision_date AS date_resolution, -- дата постановления - i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ - i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление - i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер - CASE - WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' - WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' - WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' - ELSE NULL - END AS reason_use, -- причина применения - i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера - i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' - WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE -- hidden IS FALSE AND - type = 'ADMINISTRATIVE' - Y - - - 528 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow3.hpl deleted file mode 100644 index cb454d6..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow3.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - citizen_liability_fz53_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - date_resolution - date_resolution - Y - - - article_koap_rf - article_koap_rf - Y - - - court_decision - court_decision - Y - - - name_vc - name_vc - Y - - - reason_use - reason_use - Y - - - start_date - start_date - Y - - - size_term_punishment - size_term_punishment - Y - - - type_punishment - type_punishment - Y - - - has_liability_fz53 - has_liability_fz53 - Y - -
- N - - - 1056 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении - i.decision_number AS case_number, -- номер дела об административном правонарушении - i.decision_date AS date_resolution, -- дата постановления - i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ - i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление - i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер - CASE - WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' - WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' - WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' - ELSE NULL - END AS reason_use, -- причина применения - i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера - i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' - WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE -- hidden IS FALSE AND - type = 'ADMINISTRATIVE' - Y - - - 624 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow4.hpl deleted file mode 100644 index 49a4f14..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow4.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - citizen_liability_fz53_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - date_resolution - date_resolution - Y - - - article_koap_rf - article_koap_rf - Y - - - court_decision - court_decision - Y - - - name_vc - name_vc - Y - - - reason_use - reason_use - Y - - - start_date - start_date - Y - - - size_term_punishment - size_term_punishment - Y - - - type_punishment - type_punishment - Y - - - has_liability_fz53 - has_liability_fz53 - Y - -
- N - - - 1008 - 384 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении - i.decision_number AS case_number, -- номер дела об административном правонарушении - i.decision_date AS date_resolution, -- дата постановления - i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ - i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление - i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер - CASE - WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' - WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' - WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' - ELSE NULL - END AS reason_use, -- причина применения - i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера - i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' - WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE -- hidden IS FALSE AND - type = 'ADMINISTRATIVE' - Y - - - 576 - 384 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow5.hpl deleted file mode 100644 index 88a3711..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow5.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - citizen_liability_fz53_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - date_resolution - date_resolution - Y - - - article_koap_rf - article_koap_rf - Y - - - court_decision - court_decision - Y - - - name_vc - name_vc - Y - - - reason_use - reason_use - Y - - - start_date - start_date - Y - - - size_term_punishment - size_term_punishment - Y - - - type_punishment - type_punishment - Y - - - has_liability_fz53 - has_liability_fz53 - Y - -
- N - - - 1072 - 368 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении - i.decision_number AS case_number, -- номер дела об административном правонарушении - i.decision_date AS date_resolution, -- дата постановления - i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ - i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление - i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер - CASE - WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' - WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' - WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' - ELSE NULL - END AS reason_use, -- причина применения - i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера - i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' - WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE -- hidden IS FALSE AND - type = 'ADMINISTRATIVE' - Y - - - 640 - 368 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl new file mode 100644 index 0000000..a39fd49 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl @@ -0,0 +1,575 @@ + + + + citizen_liability_fz53_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + Update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1520 + 560 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1520 + 400 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1920 + 240 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 416 + 400 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1712 + 240 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1712 + 336 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_liability_fz53_raw + is_liability_fz53 + MAX + + + + N + + + recruit_id + + + N + + grp + + + 880 + 240 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 1072 + 240 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + created_at + created_at + + ervu_dashboard + citizen_liability_fz53
+ + recruit_id + recruit_id + N + + + created_at + created_at + N + + + updated_at + updated_at + Y + + + case_number_before + case_number_before + Y + + + date_initiation + date_initiation + Y + + + body_initiated + body_initiated + Y + + + case_number + case_number + Y + + + date_resolution + date_resolution + Y + + + article_koap_rf + article_koap_rf + Y + + + court_decision + court_decision + Y + + + name_vc + name_vc + Y + + + reason_use + reason_use + Y + + + start_date + start_date + Y + + + size_term_punishment + size_term_punishment + Y + + + type_punishment + type_punishment + Y + + + hidden + hidden + Y + +
+ N + + + 880 + 400 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + SELECT + i.recruit_id, + i.created_at, + i.updated_at, + i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) + i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении + i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении + i.decision_number AS case_number, -- номер дела об административном правонарушении + i.decision_date AS date_resolution, -- дата постановления + i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ + i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление + i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер + CASE + WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' + WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' + WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' + ELSE NULL + END AS reason_use, -- причина применения + i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера + i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания + CASE + WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' + WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' + ELSE NULL + END AS type_punishment, -- вид наказания + i.hidden, + CASE + WHEN i.hidden is false THEN 1 + ELSE 0 + END AS is_liability_fz53 +FROM public.infringement i +JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}' + AND i.updated_at >= '${M_R_UP_DATE}'::timestamp --coalesce(i.updated_at,i.created_at) + --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты +WHERE -- hidden IS FALSE AND + type = 'ADMINISTRATIVE' + +${LIMIT_FW} + Y + + + 624 + 400 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_liability_fz53 + has_liability_fz53 + +
+ N + Y + + + 1520 + 240 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_liability_fz53 + has_liability_fz53_raw == 1 + Boolean + -1 + -1 + + + + + 1296 + 240 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl new file mode 100644 index 0000000..6a020cb --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl @@ -0,0 +1,588 @@ + + + + citizen_liability_fz53_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1312 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1312 + 208 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1872 + 80 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1584 + 80 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1584 + 176 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_liability_fz53_raw + is_liability_fz53 + MAX + + + N + + + recruit_id + + + N + grp + + + 672 + 80 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 864 + 80 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + created_at + created_at + + ervu_dashboard + citizen_liability_fz53
+ + recruit_id + recruit_id + N + + + created_at + created_at + N + + + updated_at + updated_at + Y + + + case_number_before + case_number_before + Y + + + date_initiation + date_initiation + Y + + + body_initiated + body_initiated + Y + + + case_number + case_number + Y + + + date_resolution + date_resolution + Y + + + article_koap_rf + article_koap_rf + Y + + + court_decision + court_decision + Y + + + name_vc + name_vc + Y + + + reason_use + reason_use + Y + + + start_date + start_date + Y + + + size_term_punishment + size_term_punishment + Y + + + type_punishment + type_punishment + Y + + + hidden + hidden + Y + +
+ N + + + 672 + 208 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + SELECT + i.recruit_id, + i.created_at, + i.updated_at, + i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) + i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении + i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении + i.decision_number AS case_number, -- номер дела об административном правонарушении + i.decision_date AS date_resolution, -- дата постановления + i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ + i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление + i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер + CASE + WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' + WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' + WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' + ELSE NULL + END AS reason_use, -- причина применения + i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера + i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания + CASE + WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' + WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' + ELSE NULL + END AS type_punishment, -- вид наказания + i.hidden, + CASE + WHEN i.hidden is false THEN 1 + ELSE 0 + END AS is_liability_fz53 +FROM public.infringement i +JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= i.created_at + --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты +WHERE -- hidden IS FALSE AND + type = 'ADMINISTRATIVE' + +${LIMIT_FW} + Y + + + 480 + 208 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_liability_fz53 + has_liability_fz53 + +
+ N + Y + + + 1312 + 80 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_liability_fz53 + has_liability_fz53_raw == 1 + Boolean + -1 + -1 + + + + + 1088 + 80 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow1.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow1.hpl deleted file mode 100644 index d336de5..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow1.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - delta_citizen_liability_fz53_flow1 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - date_resolution - date_resolution - Y - - - article_koap_rf - article_koap_rf - Y - - - court_decision - court_decision - Y - - - name_vc - name_vc - Y - - - reason_use - reason_use - Y - - - start_date - start_date - Y - - - size_term_punishment - size_term_punishment - Y - - - type_punishment - type_punishment - Y - - - has_liability_fz53 - has_liability_fz53 - Y - -
- N - - - 1168 - 336 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении - i.decision_number AS case_number, -- номер дела об административном правонарушении - i.decision_date AS date_resolution, -- дата постановления - i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ - i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление - i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер - CASE - WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' - WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' - WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' - ELSE NULL - END AS reason_use, -- причина применения - i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера - i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' - WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE -- hidden IS FALSE AND - type = 'ADMINISTRATIVE' - Y - - - 736 - 336 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow2.hpl deleted file mode 100644 index 15704f1..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow2.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - delta_citizen_liability_fz53_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - date_resolution - date_resolution - Y - - - article_koap_rf - article_koap_rf - Y - - - court_decision - court_decision - Y - - - name_vc - name_vc - Y - - - reason_use - reason_use - Y - - - start_date - start_date - Y - - - size_term_punishment - size_term_punishment - Y - - - type_punishment - type_punishment - Y - - - has_liability_fz53 - has_liability_fz53 - Y - -
- N - - - 1056 - 240 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении - i.decision_number AS case_number, -- номер дела об административном правонарушении - i.decision_date AS date_resolution, -- дата постановления - i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ - i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление - i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер - CASE - WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' - WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' - WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' - ELSE NULL - END AS reason_use, -- причина применения - i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера - i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' - WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE -- hidden IS FALSE AND - type = 'ADMINISTRATIVE' - Y - - - 624 - 240 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow3.hpl deleted file mode 100644 index e1fe0b5..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow3.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - delta_citizen_liability_fz53_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - date_resolution - date_resolution - Y - - - article_koap_rf - article_koap_rf - Y - - - court_decision - court_decision - Y - - - name_vc - name_vc - Y - - - reason_use - reason_use - Y - - - start_date - start_date - Y - - - size_term_punishment - size_term_punishment - Y - - - type_punishment - type_punishment - Y - - - has_liability_fz53 - has_liability_fz53 - Y - -
- N - - - 1152 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении - i.decision_number AS case_number, -- номер дела об административном правонарушении - i.decision_date AS date_resolution, -- дата постановления - i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ - i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление - i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер - CASE - WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' - WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' - WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' - ELSE NULL - END AS reason_use, -- причина применения - i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера - i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' - WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE -- hidden IS FALSE AND - type = 'ADMINISTRATIVE' - Y - - - 720 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow4.hpl deleted file mode 100644 index 19d16e5..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow4.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - delta_citizen_liability_fz53_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - date_resolution - date_resolution - Y - - - article_koap_rf - article_koap_rf - Y - - - court_decision - court_decision - Y - - - name_vc - name_vc - Y - - - reason_use - reason_use - Y - - - start_date - start_date - Y - - - size_term_punishment - size_term_punishment - Y - - - type_punishment - type_punishment - Y - - - has_liability_fz53 - has_liability_fz53 - Y - -
- N - - - 1104 - 336 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении - i.decision_number AS case_number, -- номер дела об административном правонарушении - i.decision_date AS date_resolution, -- дата постановления - i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ - i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление - i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер - CASE - WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' - WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' - WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' - ELSE NULL - END AS reason_use, -- причина применения - i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера - i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' - WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE -- hidden IS FALSE AND - type = 'ADMINISTRATIVE' - Y - - - 672 - 336 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow5.hpl deleted file mode 100644 index f18a7f4..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow5.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - delta_citizen_liability_fz53_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - created_at - created_at - - ervu_dashboard - citizen_liability_fz53
- - recruit_id - recruit_id - N - - - created_at - created_at - N - - - updated_at - updated_at - Y - - - case_number_before - case_number_before - Y - - - date_initiation - date_initiation - Y - - - body_initiated - body_initiated - Y - - - case_number - case_number - Y - - - date_resolution - date_resolution - Y - - - article_koap_rf - article_koap_rf - Y - - - court_decision - court_decision - Y - - - name_vc - name_vc - Y - - - reason_use - reason_use - Y - - - start_date - start_date - Y - - - size_term_punishment - size_term_punishment - Y - - - type_punishment - type_punishment - Y - - - has_liability_fz53 - has_liability_fz53 - Y - -
- N - - - 1184 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - i.recruit_id, - i.created_at, - i.updated_at, - i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) - i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении - i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении - i.decision_number AS case_number, -- номер дела об административном правонарушении - i.decision_date AS date_resolution, -- дата постановления - i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ - i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление - i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер - CASE - WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' - WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования' - WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' - ELSE NULL - END AS reason_use, -- причина применения - i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера - i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания - CASE - WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение' - WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф' - ELSE NULL - END AS type_punishment, -- вид наказания - CASE - WHEN i.hidden is false THEN true - ELSE false - END AS has_liability_fz53 -FROM public.infringement i -JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}' - --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты -WHERE -- hidden IS FALSE AND - type = 'ADMINISTRATIVE' - Y - - - 752 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..64316a1 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + citizen_liability_fz53_flow_delta.hpl + Y + + + Table input + citizen_liability_fz53_flow_delta.hpl 2 + Y + + + Table input + citizen_liability_fz53_flow_delta.hpl 3 + Y + + + Table input + citizen_liability_fz53_flow_delta.hpl 4 + Y + + + Table input + citizen_liability_fz53_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_liability_fz53_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + citizen_liability_fz53_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 128 + + + + citizen_liability_fz53_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 208 + + + + citizen_liability_fz53_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 288 + + + + citizen_liability_fz53_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 368 + + + + citizen_liability_fz53_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..597384a --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + citizen_liability_fz53_flow_repeat.hpl + Y + + + Table input + citizen_liability_fz53_flow_repeat.hpl 2 + Y + + + Table input + citizen_liability_fz53_flow_repeat.hpl 3 + Y + + + Table input + citizen_liability_fz53_flow_repeat.hpl 4 + Y + + + Table input + citizen_liability_fz53_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_liability_fz53_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + citizen_liability_fz53_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 480 + 208 + + + + citizen_liability_fz53_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 480 + 288 + + + + citizen_liability_fz53_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 480 + 368 + + + + citizen_liability_fz53_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 480 + 448 + + + + citizen_liability_fz53_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 480 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_rows_five_flow_if_error.hpl deleted file mode 100644 index 92f9426..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_rows_five_flow_if_error.hpl +++ /dev/null @@ -1,185 +0,0 @@ - - - - recruitment_rows_five_flow_if_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/23 14:28:22.572 - - - 2025/05/23 14:28:22.572 - - - - - - Table input - Copy rows to result - Y - - - - Copy rows to result - RowsToResult - - Y - - 1 - - none - - - - - 880 - 288 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -fr_check AS ( - SELECT - last_recruitment_id AS recruitment_id, - recruitment_created_date, - status, - job_name - FROM public.etl_checkpoints - WHERE status = 'ERROR' AND job_name IN ('citizen_liability_fz53_flow1', 'citizen_liability_fz53_flow2', 'citizen_liability_fz53_flow3', 'citizen_liability_fz53_flow4', 'citizen_liability_fz53_flow5') -), -ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, - ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position - FROM ordered -), -pivoted AS ( - SELECT - position, - MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow1') THEN created_at END) AS cr_flow1, - MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow1') THEN idm_id::text END) AS idm_flow1, - MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow2') THEN created_at END) AS cr_flow2, - MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow2') THEN idm_id::text END) AS idm_flow2, - MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow3') THEN created_at END) AS cr_flow3, - MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow3') THEN idm_id::text END) AS idm_flow3, - MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow4') THEN created_at END) AS cr_flow4, - MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow4') THEN idm_id::text END) AS idm_flow4, - MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow5') THEN created_at END) AS cr_flow5, - MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow5') THEN idm_id::text END) AS idm_flow5 - FROM splitted - GROUP BY position -), -remains as ( - SELECT - position, - cr_flow1, - idm_flow1::uuid, - cr_flow2, - idm_flow2::uuid, - cr_flow3, - idm_flow3::uuid, - cr_flow4, - idm_flow4::uuid, - cr_flow5, - idm_flow5::uuid - FROM pivoted - WHERE (cr_flow1 IS NOT NULL AND idm_flow1 IS NOT NULL) - OR (cr_flow2 IS NOT NULL AND idm_flow2 IS NOT NULL) - OR (cr_flow3 IS NOT NULL AND idm_flow3 IS NOT NULL) - OR (cr_flow4 IS NOT NULL AND idm_flow4 IS NOT NULL) - OR (cr_flow5 IS NOT NULL AND idm_flow5 IS NOT NULL) - order by position -), -idm1 as ( - select - cr_flow1, - idm_flow1 - from remains - where cr_flow1 is not null and idm_flow1 is not null -), -idm2 as ( - select - cr_flow2, - idm_flow2 - from remains - where cr_flow2 is not null and idm_flow2 is not null -), -idm3 as ( - select - cr_flow3, - idm_flow3 - from remains - where cr_flow3 is not null and idm_flow3 is not null -), -idm4 as ( - select - cr_flow4, - idm_flow4 - from remains - where cr_flow4 is not null and idm_flow4 is not null -), -idm5 as ( - select - cr_flow5, - idm_flow5 - from remains - where cr_flow5 is not null and idm_flow5 is not null -) -select - i1.*, - i2.*, - i3.*, - i4.*, - i5.* -FROM - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1 -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn -ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn) -limit 2 - N - - - 512 - 288 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitments_five_flow.hpl new file mode 100644 index 0000000..ccea1cd --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + citizen_liability_fz53_flow.hpl + Y + + + Get all recruitments ordered by created_date + citizen_liability_fz53_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + citizen_liability_fz53_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + citizen_liability_fz53_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + citizen_liability_fz53_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + citizen_liability_fz53_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 144 + + + + citizen_liability_fz53_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 224 + + + + citizen_liability_fz53_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 304 + + + + citizen_liability_fz53_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 384 + + + + citizen_liability_fz53_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_liability_fz53_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..d371924 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_spouse/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_spouse_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_error.hpl deleted file mode 100644 index dc19556..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_error.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_citizen_spouse_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'citizen_spouse_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_success.hpl deleted file mode 100644 index 645816b..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_success.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_citizen_spouse_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'citizen_spouse_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_error.hpl deleted file mode 100644 index 8380623..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_error.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_citizen_spouse_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_spouse_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_success.hpl deleted file mode 100644 index baa3bbb..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_success.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_citizen_spouse_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_spouse_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_error.hpl deleted file mode 100644 index 495f0f1..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_error.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_citizen_spouse_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_spouse_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_success.hpl deleted file mode 100644 index e399fd1..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_success.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_citizen_spouse_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_spouse_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_error.hpl deleted file mode 100644 index 5deb8d0..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_spouse_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_spouse_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_success.hpl deleted file mode 100644 index f8024a0..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_spouse_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_spouse_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_error.hpl deleted file mode 100644 index 32fcfb9..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_spouse_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_spouse_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_success.hpl deleted file mode 100644 index 1bf12a5..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_citizen_spouse_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'citizen_spouse_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_error.hpl deleted file mode 100644 index dcc34fb..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_error.hpl +++ /dev/null @@ -1,110 +0,0 @@ - - - - change_status_delta_citizen_spouse_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_spouse' as job_name, - 'ERROR' as status, - current_timestamp as record_created - -union all - - SELECT - 'job_citizen_spouse' as job_name, - 'ERROR' as status, - current_timestamp as record_created - - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_success.hpl deleted file mode 100644 index d704ea8..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_success.hpl +++ /dev/null @@ -1,110 +0,0 @@ - - - - change_status_delta_citizen_spouse_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_citizen_spouse' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - -union all - - SELECT - 'job_citizen_spouse' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing.hpl deleted file mode 100644 index 3ad2861..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - change_status_to_processing - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 16:14:31.162 - - - 2025/06/11 16:14:31.162 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 784 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'job_citizen_spouse' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_spouse_flow1' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_spouse_flow2' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_spouse_flow3' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_spouse_flow4' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'citizen_spouse_flow5' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 368 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing_delta.hpl deleted file mode 100644 index 3619918..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing_delta.hpl +++ /dev/null @@ -1,102 +0,0 @@ - - - - change_status_to_processing_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 13:42:26.494 - - - 2025/06/16 13:42:26.494 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1248 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'delta_citizen_spouse' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 832 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_citizen_spouse_job_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_citizen_spouse_job_exists.hpl new file mode 100644 index 0000000..a62f9ed --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_citizen_spouse_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_citizen_spouse_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'citizen_spouse_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Basic + Y + N + 0 + ${STATUS} + + + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_citizen_spouse_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_citizen_spouse_error.hpl deleted file mode 100644 index 11ad83c..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_citizen_spouse_error.hpl +++ /dev/null @@ -1,273 +0,0 @@ - - - - checkpoint_citizen_spouse_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 10:01:04.895 - - - 2025/06/09 10:01:04.895 - - - - - - Select values - Table output - N - - - Table input - Select values - N - - - Table input - Table output - Y - - - - Select values - SelectValues - - Y - - 1 - - none - - - - N - - idm_id - idm_id - String - -2 - -2 - - false - - - false - - - - - - - - - - 1008 - 608 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - FROM result_ma -), -for_checkpoints as ( - SELECT - 'job_child_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -) -select * from for_checkpoints - N - - - 736 - 448 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - public - N - etl_checkpoints
- N - Y - N - Y - - - 1248 - 448 - -
- - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/delta_citizen_spouse.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/delta_citizen_spouse.hpl deleted file mode 100644 index ee470cb..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/delta_citizen_spouse.hpl +++ /dev/null @@ -1,181 +0,0 @@ - - - - delta_citizen_spouse - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH suprug AS ( - SELECT - supr.supri AS supr, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' AS marriage_date, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' AS divorce_date, - CASE - WHEN (ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1') THEN true - ELSE false - END AS information_excluded, - ri.recruit_id - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку - --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp - JOIN LATERAL ( - SELECT jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri - WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' - ) AS supr ON true -) -SELECT - r.recruit_id AS recruit_id, - supr->>'rodstvSvyazSuprugNaim' AS kinship_type, - CONCAT_WS(' ', - supr->'svedFLBS'->'fio'->>'familiya', - supr->'svedFLBS'->'fio'->>'imya', - supr->'svedFLBS'->'fio'->>'otchestvo' - ) AS full_name, - MAKE_DATE( - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int - ) AS birth_date, - (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, - supr->'svedSmert'->>'nomerZapis' AS death_az_number, - marriage_az_number, - marriage_date::date, - divorce_az_number, - divorce_date::date, - information_excluded -FROM ervu_dashboard.citizen r -JOIN suprug ON r.recruit_id = suprug.recruit_id - Y - - - 624 - 352 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_spouse
- - recruit_id - recruit_id - N - - - kinship_type - kinship_type - Y - - - full_name - full_name - Y - - - birth_date - birth_date - Y - - - death_date - death_date - Y - - - death_az_number - death_az_number - Y - - - marriage_az_number - marriage_az_number - Y - - - marriage_date - marriage_date - Y - - - divorce_az_number - divorce_az_number - Y - - - divorce_date - divorce_date - Y - - - information_excluded - information_excluded - Y - -
- N - - - 1024 - 352 - -
- - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/job_spouse.hwf b/mappings/info_recruits/citizen_tables/citizen_spouse/job_spouse.hwf new file mode 100644 index 0000000..52a8cd1 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_spouse/job_spouse.hwf @@ -0,0 +1,271 @@ + + + job_citizen_spouse + Y + + + + 0 + - + 2025/06/05 14:27:15.055 + - + 2025/06/05 14:27:15.055 + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 416 + 208 + + + + check_if_citizen_spouse_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_citizen_spouse_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 608 + 208 + + + + citizen_spouse_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 880 + 208 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/recruitments_five_flow.hpl + + + Basic + + Y + + N + local + N + N + Y + Y + 1120 + 208 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_on_error.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 1120 + 512 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/check_if_need_to_repeat_job.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 880 + 368 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 880 + 512 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_delta.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 880 + 704 + + + + + + Start + check_if_citizen_spouse_job_exists.hpl + Y + Y + Y + + + check_if_citizen_spouse_job_exists.hpl + citizen_spouse_job_exists_check + Y + Y + N + + + citizen_spouse_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + citizen_spouse_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl new file mode 100644 index 0000000..ebfe4cd --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl @@ -0,0 +1,429 @@ + + + + citizen_spouse_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Table output + Change job status on error + Y + + + Filter rows + Change job status on success + Y + + + Table output + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table input + Identify last row in a stream + Y + + + Identify last row in a stream + Table output + Y + + + Table output + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1136 + 528 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 720 + 528 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}' +and status = 'PROCESSING'; + + + + + 1120 + 64 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 80 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1120 + 320 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 720 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 576 + 320 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id AS recruit_id, + (supr->>'id')::uuid AS spouse_external_id, + NULLIF(supr->>'idERN', '') AS spouse_id_ern, + NULLIF(supr->>'rodstvSvyazSuprug', '')::int AS kinship_type, + supr->'svedFLBS'->'fio'->>'familiya' AS last_name, + supr->'svedFLBS'->'fio'->>'imya' AS first_name, + supr->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + supr->'svedFLBS'->'fio'->>'familiya', + supr->'svedFLBS'->'fio'->>'imya', + supr->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, + supr->'svedSmert'->>'nomerZapis' AS death_az_number, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend')::date AS marriage_date, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend')::date AS divorce_date, + CASE + WHEN ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1' THEN true + ELSE false + END AS information_excluded +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id +CROSS JOIN LATERAL ( + SELECT supri + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' +) AS supr(supr) +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date; + Y + + + 368 + 320 + + + + Table output + TableOutput + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + spouse_external_id + spouse_external_id + + + spouse_id_ern + spouse_id_ern + + + kinship_type + kinship_type + + + last_name + last_name + + + first_name + first_name + + + middle_name + middle_name + + + full_name + full_name + + + birth_date + birth_date + + + death_date + death_date + + + death_az_number + death_az_number + + + marriage_az_number + marriage_az_number + + + marriage_date + marriage_date + + + divorce_az_number + divorce_az_number + + + divorce_date + divorce_date + + + information_excluded + information_excluded + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_spouse
+ N + Y + N + Y + + + 720 + 320 + +
+ + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl deleted file mode 100644 index 712f5ee..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - citizen_spouse_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_spouse
- - recruit_id - recruit_id - N - - - kinship_type - kinship_type - Y - - - full_name - full_name - Y - - - birth_date - birth_date - Y - - - death_date - death_date - Y - - - death_az_number - death_az_number - Y - - - marriage_az_number - marriage_az_number - Y - - - marriage_date - marriage_date - Y - - - divorce_az_number - divorce_az_number - Y - - - divorce_date - divorce_date - Y - - - information_excluded - information_excluded - Y - -
- N - - - 1280 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH suprug AS ( - SELECT - supr.supri AS supr, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' AS marriage_date, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' AS divorce_date, - CASE - WHEN (ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1') THEN true - ELSE false - END AS information_excluded, - ri.recruit_id - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - JOIN LATERAL ( - SELECT jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri - WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' - ) AS supr ON true -) -SELECT - r.recruit_id AS recruit_id, - supr->>'rodstvSvyazSuprugNaim' AS kinship_type, - CONCAT_WS(' ', - supr->'svedFLBS'->'fio'->>'familiya', - supr->'svedFLBS'->'fio'->>'imya', - supr->'svedFLBS'->'fio'->>'otchestvo' - ) AS full_name, - MAKE_DATE( - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int - ) AS birth_date, - (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, - supr->'svedSmert'->>'nomerZapis' AS death_az_number, - marriage_az_number, - marriage_date::date, - divorce_az_number, - divorce_date::date, - information_excluded -FROM ervu_dashboard.citizen r -JOIN suprug ON r.recruit_id = suprug.recruit_id - Y - - - 784 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl deleted file mode 100644 index bcb2772..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - citizen_spouse_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_spouse
- - recruit_id - recruit_id - N - - - kinship_type - kinship_type - Y - - - full_name - full_name - Y - - - birth_date - birth_date - Y - - - death_date - death_date - Y - - - death_az_number - death_az_number - Y - - - marriage_az_number - marriage_az_number - Y - - - marriage_date - marriage_date - Y - - - divorce_az_number - divorce_az_number - Y - - - divorce_date - divorce_date - Y - - - information_excluded - information_excluded - Y - -
- N - - - 1152 - 336 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH suprug AS ( - SELECT - supr.supri AS supr, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' AS marriage_date, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' AS divorce_date, - CASE - WHEN (ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1') THEN true - ELSE false - END AS information_excluded, - ri.recruit_id - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - JOIN LATERAL ( - SELECT jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri - WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' - ) AS supr ON true -) -SELECT - r.recruit_id AS recruit_id, - supr->>'rodstvSvyazSuprugNaim' AS kinship_type, - CONCAT_WS(' ', - supr->'svedFLBS'->'fio'->>'familiya', - supr->'svedFLBS'->'fio'->>'imya', - supr->'svedFLBS'->'fio'->>'otchestvo' - ) AS full_name, - MAKE_DATE( - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int - ) AS birth_date, - (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, - supr->'svedSmert'->>'nomerZapis' AS death_az_number, - marriage_az_number, - marriage_date::date, - divorce_az_number, - divorce_date::date, - information_excluded -FROM ervu_dashboard.citizen r -JOIN suprug ON r.recruit_id = suprug.recruit_id - Y - - - 656 - 336 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl deleted file mode 100644 index 31e629e..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - citizen_spouse_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_spouse
- - recruit_id - recruit_id - N - - - kinship_type - kinship_type - Y - - - full_name - full_name - Y - - - birth_date - birth_date - Y - - - death_date - death_date - Y - - - death_az_number - death_az_number - Y - - - marriage_az_number - marriage_az_number - Y - - - marriage_date - marriage_date - Y - - - divorce_az_number - divorce_az_number - Y - - - divorce_date - divorce_date - Y - - - information_excluded - information_excluded - Y - -
- N - - - 1184 - 384 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH suprug AS ( - SELECT - supr.supri AS supr, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' AS marriage_date, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' AS divorce_date, - CASE - WHEN (ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1') THEN true - ELSE false - END AS information_excluded, - ri.recruit_id - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - JOIN LATERAL ( - SELECT jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri - WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' - ) AS supr ON true -) -SELECT - r.recruit_id AS recruit_id, - supr->>'rodstvSvyazSuprugNaim' AS kinship_type, - CONCAT_WS(' ', - supr->'svedFLBS'->'fio'->>'familiya', - supr->'svedFLBS'->'fio'->>'imya', - supr->'svedFLBS'->'fio'->>'otchestvo' - ) AS full_name, - MAKE_DATE( - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int - ) AS birth_date, - (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, - supr->'svedSmert'->>'nomerZapis' AS death_az_number, - marriage_az_number, - marriage_date::date, - divorce_az_number, - divorce_date::date, - information_excluded -FROM ervu_dashboard.citizen r -JOIN suprug ON r.recruit_id = suprug.recruit_id - Y - - - 688 - 384 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl deleted file mode 100644 index 18f686f..0000000 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - citizen_spouse_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_spouse
- - recruit_id - recruit_id - N - - - kinship_type - kinship_type - Y - - - full_name - full_name - Y - - - birth_date - birth_date - Y - - - death_date - death_date - Y - - - death_az_number - death_az_number - Y - - - marriage_az_number - marriage_az_number - Y - - - marriage_date - marriage_date - Y - - - divorce_az_number - divorce_az_number - Y - - - divorce_date - divorce_date - Y - - - information_excluded - information_excluded - Y - -
- N - - - 1152 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH suprug AS ( - SELECT - supr.supri AS supr, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' AS marriage_date, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' AS divorce_date, - CASE - WHEN (ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1') THEN true - ELSE false - END AS information_excluded, - ri.recruit_id - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - JOIN LATERAL ( - SELECT jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri - WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' - ) AS supr ON true -) -SELECT - r.recruit_id AS recruit_id, - supr->>'rodstvSvyazSuprugNaim' AS kinship_type, - CONCAT_WS(' ', - supr->'svedFLBS'->'fio'->>'familiya', - supr->'svedFLBS'->'fio'->>'imya', - supr->'svedFLBS'->'fio'->>'otchestvo' - ) AS full_name, - MAKE_DATE( - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int - ) AS birth_date, - (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, - supr->'svedSmert'->>'nomerZapis' AS death_az_number, - marriage_az_number, - marriage_date::date, - divorce_az_number, - divorce_date::date, - information_excluded -FROM ervu_dashboard.citizen r -JOIN suprug ON r.recruit_id = suprug.recruit_id - Y - - - 656 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl new file mode 100644 index 0000000..99e9f11 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl @@ -0,0 +1,452 @@ + + + + citizen_spouse_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Insert / update + Change job status on error + Y + + + Change job status on error + Abort + Y + + + Insert / update + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Insert / update + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Table input + Identify last row in a stream + Y + + + Identify last row in a stream + Insert / update + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 976 + 480 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + error_code + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 736 + 480 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS', + error_description = null +WHERE job_name = '${JOB_NAME}' + and recruitment_id = '${IDM_ID}' + and status = 'DELTA_PROCESSING'; + + + + 1200 + 80 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 96 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1200 + 224 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 736 + 80 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 576 + 224 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + spouse_external_id + spouse_external_id + + ervu_dashboard + citizen_spouse
+ + recruit_id + recruit_id + N + + + spouse_external_id + spouse_external_id + N + + + spouse_id_ern + spouse_id_ern + Y + + + kinship_type + kinship_type + Y + + + last_name + last_name + Y + + + first_name + first_name + Y + + + middle_name + middle_name + Y + + + full_name + full_name + Y + + + birth_date + birth_date + Y + + + death_date + death_date + Y + + + death_az_number + death_az_number + Y + + + marriage_az_number + marriage_az_number + Y + + + marriage_date + marriage_date + Y + + + divorce_az_number + divorce_az_number + Y + + + divorce_date + divorce_date + Y + + + information_excluded + information_excluded + Y + +
+ N + + + 736 + 224 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id AS recruit_id, + (supr->>'id')::uuid AS spouse_external_id, + NULLIF(supr->>'idERN', '') AS spouse_id_ern, + NULLIF(supr->>'rodstvSvyazSuprug', '')::int AS kinship_type, + supr->'svedFLBS'->'fio'->>'familiya' AS last_name, + supr->'svedFLBS'->'fio'->>'imya' AS first_name, + supr->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + supr->'svedFLBS'->'fio'->>'familiya', + supr->'svedFLBS'->'fio'->>'imya', + supr->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, + supr->'svedSmert'->>'nomerZapis' AS death_az_number, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend')::date AS marriage_date, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend')::date AS divorce_date, + CASE + WHEN ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1' THEN true + ELSE false + END AS information_excluded +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id +CROSS JOIN LATERAL ( + SELECT supri + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' +) AS supr(supr) +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date + AND c.update_date >= '${M_R_UP_DATE}'::timestamp; + + Y + + + 368 + 224 + + + + + Insert / update + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl new file mode 100644 index 0000000..d92ae63 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl @@ -0,0 +1,467 @@ + + + + citizen_spouse_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Insert / update + Change job status on error + Y + + + Change job status on error + Abort + Y + + + Insert / update + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Table input + Identify last row in a stream + Y + + + Identify last row in a stream + Insert / update + Y + + + Insert / update + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1008 + 576 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + error_code + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 704 + 576 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS', +error_description = null +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}' +and status = 'PROCESSING'; + + + + + + 1136 + 64 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + 112 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1136 + 208 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 704 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 528 + 208 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + spouse_external_id + spouse_external_id + + ervu_dashboard + citizen_spouse
+ + recruit_id + recruit_id + N + + + spouse_external_id + spouse_external_id + N + + + spouse_id_ern + spouse_id_ern + Y + + + kinship_type + kinship_type + Y + + + last_name + last_name + Y + + + first_name + first_name + Y + + + middle_name + middle_name + Y + + + full_name + full_name + Y + + + birth_date + birth_date + Y + + + death_date + death_date + Y + + + death_az_number + death_az_number + Y + + + marriage_az_number + marriage_az_number + Y + + + marriage_date + marriage_date + Y + + + divorce_az_number + divorce_az_number + Y + + + divorce_date + divorce_date + Y + + + information_excluded + information_excluded + Y + +
+ N + + + 704 + 208 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id AS recruit_id, + (supr->>'id')::uuid AS spouse_external_id, + NULLIF(supr->>'idERN', '') AS spouse_id_ern, + NULLIF(supr->>'rodstvSvyazSuprug', '')::int AS kinship_type, + supr->'svedFLBS'->'fio'->>'familiya' AS last_name, + supr->'svedFLBS'->'fio'->>'imya' AS first_name, + supr->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + supr->'svedFLBS'->'fio'->>'familiya', + supr->'svedFLBS'->'fio'->>'imya', + supr->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, + supr->'svedSmert'->>'nomerZapis' AS death_az_number, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend')::date AS marriage_date, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend')::date AS divorce_date, + CASE + WHEN ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1' THEN true + ELSE false + END AS information_excluded +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id +CROSS JOIN LATERAL ( + SELECT supri + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' +) AS supr(supr) +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date; + Y + + + 352 + 208 + + + + + Insert / update + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..a89ab4b --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + citizen_spouse_flow_delta.hpl + Y + + + Table input + citizen_spouse_flow_delta.hpl 2 + Y + + + Table input + citizen_spouse_flow_delta.hpl 3 + Y + + + Table input + citizen_spouse_flow_delta.hpl 4 + Y + + + Table input + citizen_spouse_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_spouse_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + citizen_spouse_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 128 + + + + citizen_spouse_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 208 + + + + citizen_spouse_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 288 + + + + citizen_spouse_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 368 + + + + citizen_spouse_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..b0ef287 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + citizen_spouse_flow_repeat.hpl + Y + + + Table input + citizen_spouse_flow_repeat.hpl 3 + Y + + + Table input + citizen_spouse_flow_repeat.hpl 2 + Y + + + Table input + citizen_spouse_flow_repeat.hpl 4 + Y + + + Table input + citizen_spouse_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizen_spouse_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + citizen_spouse_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 208 + + + + citizen_spouse_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 288 + + + + citizen_spouse_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 368 + + + + citizen_spouse_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 448 + + + + citizen_spouse_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitments_five_flow.hpl new file mode 100644 index 0000000..6dccdb6 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitments_five_flow.hpl @@ -0,0 +1,356 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + citizen_spouse_flow.hpl + Y + + + Get all recruitments ordered by created_date + citizen_spouse_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + citizen_spouse_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + citizen_spouse_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + citizen_spouse_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment; + N + + + 432 + 304 + + + + citizen_spouse_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 144 + + + + citizen_spouse_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 224 + + + + citizen_spouse_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 304 + + + + citizen_spouse_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 384 + + + + citizen_spouse_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizen_spouse_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizenship/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizenship/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..b63f652 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizenship/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizenship_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_job_citizen_spouse_exists.hpl b/mappings/info_recruits/citizen_tables/citizenship/checkpoints/check_if_citizenship_job_exists.hpl similarity index 70% rename from mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_job_citizen_spouse_exists.hpl rename to mappings/info_recruits/citizen_tables/citizenship/checkpoints/check_if_citizenship_job_exists.hpl index d1c2864..99157b0 100644 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_job_citizen_spouse_exists.hpl +++ b/mappings/info_recruits/citizen_tables/citizenship/checkpoints/check_if_citizenship_job_exists.hpl @@ -1,7 +1,7 @@ - check_if_job_citizen_spouse_exists + check_if_citizenship_job_exists Y @@ -13,23 +13,23 @@ 1000 100 - - 2025/06/11 15:20:18.267 + 2025/08/05 13:28:46.661 - - 2025/06/11 15:20:18.267 + 2025/08/05 13:28:46.661 - - Table input - Set variables - Y - Set variables Write to log N + + Table input + Set variables + Y + Set variables @@ -44,21 +44,16 @@ - job_name - PIPE - PARENT_WORKFLOW - - - status - STATUS + job_executed_flag + JOB_EXECUTED_FLAG PARENT_WORKFLOW Y - 688 - 352 + 672 + 336 @@ -75,29 +70,17 @@ ervu-dashboard N 0 - SELECT - COALESCE(job_name, 'job_citizen_spouse') AS job_name, - COALESCE(status, 'NEW') AS status, - current_timestamp::timestamp as record_created -FROM ( - SELECT job_name, status - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_spouse' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_citizen_spouse' - ) -) t + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'citizenship_job' + limit 1 + ) AS job_executed_flag; N - 400 - 352 + 384 + 336 @@ -120,8 +103,8 @@ FROM ( ${STATUS} - 960 - 240 + 944 + 224 diff --git a/mappings/info_recruits/citizen_tables/citizenship/citizenship_job.hwf b/mappings/info_recruits/citizen_tables/citizenship/citizenship_job.hwf new file mode 100644 index 0000000..f0195f9 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizenship/citizenship_job.hwf @@ -0,0 +1,358 @@ + + + citizenship_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 224 + 304 + + + + check_if_citizenship_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/checkpoints/check_if_citizenship_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 304 + + + + citizenship_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 688 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 928 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/recruitment_five_flow_on_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 928 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 688 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 688 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 688 + 800 + + + + + + Start + check_if_citizenship_job_exists.hpl + Y + Y + Y + + + check_if_citizenship_job_exists.hpl + citizenship_job_exists_check + Y + Y + N + + + citizenship_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + citizenship_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 800 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 800 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 608 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + citizenship_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 114 + + + + diff --git a/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl new file mode 100644 index 0000000..632f01c --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl @@ -0,0 +1,722 @@ + + + + citizenship_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table output + Change job status on error + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Table input + Table output + Y + + + Table output + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1328 + 496 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1328 + 320 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1856 + 176 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 288 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1536 + 176 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1536 + 304 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_property_raw + is_property + MAX + + + has_ground_transport_raw + is_ground_transport + MAX + + + has_air_transport_raw + is_air_transport + MAX + + + has_water_transport_raw + is_water_transport + MAX + + + N + + + recruit_id + + + N + grp + + + 688 + 176 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 880 + 176 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH +base as( + SELECT + ri.recruit_id, + ri.info + FROM ervu_dashboard.recruits_info ri + join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= ri.created_at +), +prop AS ( + SELECT + base.recruit_id, + 'realty' AS property_type, + ry.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + THEN base.info->'svedFL'->'svedON'->'on' + ELSE '[]'::jsonb + END + ) AS ry ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'ground_transportation' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + THEN base.info->'svedFL'->'svedNazTS'->'nazTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'air_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + THEN base.info->'svedFL'->'svedVozTS'->'vozTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'water_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' + THEN base.info->'svedFL'->'svedVodTS'->'vodTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' +), +all_data as( + -- Недвижимость + SELECT + base.recruit_id, + property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля + property_data->'adrObSob'->>'adrObSobTekst' AS address, + NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date, + 'realty' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'realty' + + UNION ALL + + -- Наземный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'vidTS' AS vehicle_type, + property_data->>'godVyp' AS issue_year, + property_data->>'markaTS' AS brand_model, + property_data->>'gosRegZn' AS reg_plate, + property_data->>'idenNom' AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'ground_transportation' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'ground_transportation' + + UNION ALL + + -- Воздушный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'air_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'air_vehicles' + + UNION ALL + + -- Водный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'water_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'water_vehicles' +) +select + *, + CASE + WHEN type_property = 'realty' THEN 1 + ELSE 0 + END AS is_property, -- недвиж//has_property + CASE + WHEN type_property = 'ground_transportation'THEN 1 + ELSE 0 + END AS is_ground_transport, -- наземный транспорт//has_ground_transport + CASE + WHEN type_property = 'air_vehicles' THEN 1 + ELSE 0 + END AS is_air_transport, -- воздушный транспорт//has_air_transport + CASE + WHEN type_property = 'water_vehicles' THEN 1 + ELSE 0 + END AS is_water_transport -- водный транспорт//has_water_transport +from all_data + Y + + + 496 + 320 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + kind_right + kind_right + + + address + address + + + vehicle_type + vehicle_type + + + issue_year + issue_year + + + brand_model + brand_model + + + reg_plate + reg_plate + + + vin + vin + + + vehicle_category + vehicle_category + + + start_date + start_date + + + close_date + close_date + + + type_property + type_property + + + N + N + N + N + Y + N + ervu_dashboard + Y + property
+ N + Y + N + Y + + + 688 + 320 + +
+ + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_property + has_property + + + has_ground_transport + has_ground_transport + + + has_air_transport + has_air_transport + + + has_water_transport + has_water_transport + +
+ N + Y + + + 1328 + 176 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_property + has_property_raw == 1 + Boolean + -1 + -1 + + + + has_ground_transport + has_ground_transport_raw == 1 + Boolean + -1 + -1 + + + + has_air_transport + has_air_transport_raw == 1 + Boolean + -1 + -1 + + + + has_water_transport + has_water_transport_raw == 1 + Boolean + -1 + -1 + + + + + 1104 + 176 + + + + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl new file mode 100644 index 0000000..08270bf --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl @@ -0,0 +1,743 @@ + + + + citizenship_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table input + Insert / update + Y + + + Insert / update + Change job status on error + Y + + + Insert / update + Group by + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + Update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1392 + 528 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1392 + 352 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1872 + 208 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 352 + 352 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1632 + 208 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1632 + 320 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_property_raw + is_property + MAX + + + has_ground_transport_raw + is_ground_transport + MAX + + + has_air_transport_raw + is_air_transport + MAX + + + has_water_transport_raw + is_water_transport + MAX + + + N + + + recruit_id + + + N + grp + + + 752 + 208 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 944 + 208 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + + = + start_date + start_date + + + = + type_property + type_property + + ervu_dashboard + property
+ + recruit_id + recruit_id + N + + + kind_right + kind_right + Y + + + address + address + Y + + + vehicle_type + vehicle_type + Y + + + issue_year + issue_year + Y + + + brand_model + brand_model + Y + + + reg_plate + reg_plate + Y + + + vin + vin + Y + + + vehicle_category + vehicle_category + Y + + + start_date + start_date + Y + + + close_date + close_date + Y + + + type_property + type_property + Y + +
+ N + + + 752 + 352 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH +base as( + SELECT + ri.recruit_id, + ri.info + FROM ervu_dashboard.recruits_info ri + join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + --AND '${M_R_CR_DATE}'::timestamp >= ri.created_at + AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp +), +prop AS ( + SELECT + base.recruit_id, + 'realty' AS property_type, + ry.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + THEN base.info->'svedFL'->'svedON'->'on' + ELSE '[]'::jsonb + END + ) AS ry ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'ground_transportation' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + THEN base.info->'svedFL'->'svedNazTS'->'nazTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'air_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + THEN base.info->'svedFL'->'svedVozTS'->'vozTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'water_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' + THEN base.info->'svedFL'->'svedVodTS'->'vodTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' +), +all_data as( + -- Недвижимость + SELECT + base.recruit_id, + property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля + property_data->'adrObSob'->>'adrObSobTekst' AS address, + NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date, + 'realty' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'realty' + + UNION ALL + + -- Наземный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'vidTS' AS vehicle_type, + property_data->>'godVyp' AS issue_year, + property_data->>'markaTS' AS brand_model, + property_data->>'gosRegZn' AS reg_plate, + property_data->>'idenNom' AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'ground_transportation' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'ground_transportation' + + UNION ALL + + -- Воздушный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'air_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'air_vehicles' + + UNION ALL + + -- Водный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'water_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'water_vehicles' +) +select + *, + CASE + WHEN type_property = 'realty' THEN 1 + ELSE 0 + END AS is_property, -- недвиж//has_property + CASE + WHEN type_property = 'ground_transportation' THEN 1 + ELSE 0 + END AS is_ground_transport, -- наземный транспорт//has_ground_transport + CASE + WHEN type_property = 'air_vehicles' THEN 1 + ELSE 0 + END AS is_air_transport, -- воздушный транспорт//has_air_transport + CASE + WHEN type_property = 'water_vehicles' THEN 1 + ELSE 0 + END AS is_water_transport -- водный транспорт//has_water_transport +from all_data + Y + + + 560 + 352 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_property + has_property + + + has_ground_transport + has_ground_transport + + + has_air_transport + has_air_transport + + + has_water_transport + has_water_transport + +
+ N + Y + + + 1392 + 208 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_property + has_property_raw == 1 + Boolean + -1 + -1 + + + + has_ground_transport + has_ground_transport_raw == 1 + Boolean + -1 + -1 + + + + has_air_transport + has_air_transport_raw == 1 + Boolean + -1 + -1 + + + + has_water_transport + has_water_transport_raw == 1 + Boolean + -1 + -1 + + + + + 1168 + 208 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl new file mode 100644 index 0000000..1fbed12 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl @@ -0,0 +1,757 @@ + + + + citizenship_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1312 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1312 + 208 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1776 + 64 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1568 + 64 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1568 + 176 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_property_raw + is_property + MAX + + + has_ground_transport_raw + is_ground_transport + MAX + + + has_air_transport_raw + is_air_transport + MAX + + + has_water_transport_raw + is_water_transport + MAX + + + N + + + recruit_id + + + N + grp + + + 672 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 864 + 64 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + + = + start_date + start_date + + + = + type_property + type_property + + ervu_dashboard + property
+ + recruit_id + recruit_id + N + + + kind_right + kind_right + Y + + + address + address + Y + + + vehicle_type + vehicle_type + Y + + + issue_year + issue_year + Y + + + brand_model + brand_model + Y + + + reg_plate + reg_plate + Y + + + vin + vin + Y + + + vehicle_category + vehicle_category + Y + + + start_date + start_date + Y + + + close_date + close_date + Y + + + type_property + type_property + Y + +
+ N + + + 672 + 208 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH +base as( + SELECT + ri.recruit_id, + ri.info + FROM ervu_dashboard.recruits_info ri + join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= ri.created_at +), +prop AS ( + SELECT + base.recruit_id, + 'realty' AS property_type, + ry.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + THEN base.info->'svedFL'->'svedON'->'on' + ELSE '[]'::jsonb + END + ) AS ry ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'ground_transportation' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + THEN base.info->'svedFL'->'svedNazTS'->'nazTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'air_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + THEN base.info->'svedFL'->'svedVozTS'->'vozTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'water_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' + THEN base.info->'svedFL'->'svedVodTS'->'vodTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' +), +all_data as( + -- Недвижимость + SELECT + base.recruit_id, + property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля + property_data->'adrObSob'->>'adrObSobTekst' AS address, + NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date, + 'realty' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'realty' + + UNION ALL + + -- Наземный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'vidTS' AS vehicle_type, + property_data->>'godVyp' AS issue_year, + property_data->>'markaTS' AS brand_model, + property_data->>'gosRegZn' AS reg_plate, + property_data->>'idenNom' AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'ground_transportation' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'ground_transportation' + + UNION ALL + + -- Воздушный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'air_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'air_vehicles' + + UNION ALL + + -- Водный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'water_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'water_vehicles' +) +select + *, + CASE + WHEN type_property = 'realty' THEN 1 + ELSE 0 + END AS is_property, -- недвиж//has_property + CASE + WHEN type_property = 'ground_transportation' THEN 1 + ELSE 0 + END AS is_ground_transport, -- наземный транспорт//has_ground_transport + CASE + WHEN type_property = 'air_vehicles' THEN 1 + ELSE 0 + END AS is_air_transport, -- воздушный транспорт//has_air_transport + CASE + WHEN type_property = 'water_vehicles' THEN 1 + ELSE 0 + END AS is_water_transport -- водный транспорт//has_water_transport +from all_data + Y + + + 480 + 208 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_property + has_property + + + has_ground_transport + has_ground_transport + + + has_air_transport + has_air_transport + + + has_water_transport + has_water_transport + +
+ N + Y + + + 1312 + 64 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_property + has_property_raw == 1 + Boolean + -1 + -1 + + + + has_ground_transport + has_ground_transport_raw == 1 + Boolean + -1 + -1 + + + + has_air_transport + has_air_transport_raw == 1 + Boolean + -1 + -1 + + + + has_water_transport + has_water_transport_raw == 1 + Boolean + -1 + -1 + + + + + 1088 + 64 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..be774d3 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + citizenship_flow_delta.hpl + Y + + + Table input + citizenship_flow_delta.hpl 2 + Y + + + Table input + citizenship_flow_delta.hpl 3 + Y + + + Table input + citizenship_flow_delta.hpl 4 + Y + + + Table input + citizenship_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizenship_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + citizenship_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 640 + 128 + + + + citizenship_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 208 + + + + citizenship_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 288 + + + + citizenship_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 368 + + + + citizenship_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..4001044 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + citizenship_flow_repeat.hpl + Y + + + Table input + citizenship_flow_repeat.hpl 2 + Y + + + Table input + citizenship_flow_repeat.hpl 3 + Y + + + Table input + citizenship_flow_repeat.hpl 4 + Y + + + Table input + citizenship_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'citizenship_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + citizenship_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 208 + + + + citizenship_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 560 + 288 + + + + citizenship_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 560 + 368 + + + + citizenship_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 560 + 448 + + + + citizenship_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 560 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizenship/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizenship/recruitments_five_flow.hpl new file mode 100644 index 0000000..31961c5 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizenship/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + citizenship_flow.hpl + Y + + + Get all recruitments ordered by created_date + citizenship_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + citizenship_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + citizenship_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + citizenship_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + citizenship_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 144 + + + + citizenship_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 240 + + + + citizenship_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 336 + + + + citizenship_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 432 + + + + citizenship_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + citizenship_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 512 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/property/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/property/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..b70250e --- /dev/null +++ b/mappings/info_recruits/citizen_tables/property/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'property_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/property/checkpoints/check_if_property_job_exists.hpl b/mappings/info_recruits/citizen_tables/property/checkpoints/check_if_property_job_exists.hpl new file mode 100644 index 0000000..09a5ca3 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/property/checkpoints/check_if_property_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_property_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'property_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/property/parallel/property_flow.hpl b/mappings/info_recruits/citizen_tables/property/parallel/property_flow.hpl new file mode 100644 index 0000000..a387b6a --- /dev/null +++ b/mappings/info_recruits/citizen_tables/property/parallel/property_flow.hpl @@ -0,0 +1,722 @@ + + + + property_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table output + Change job status on error + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Table input + Table output + Y + + + Table output + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1328 + 496 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1328 + 320 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1856 + 176 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 288 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1536 + 176 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1536 + 304 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_property_raw + is_property + MAX + + + has_ground_transport_raw + is_ground_transport + MAX + + + has_air_transport_raw + is_air_transport + MAX + + + has_water_transport_raw + is_water_transport + MAX + + + N + + + recruit_id + + + N + grp + + + 688 + 176 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 880 + 176 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH +base as( + SELECT + ri.recruit_id, + ri.info + FROM ervu_dashboard.recruits_info ri + join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= ri.created_at +), +prop AS ( + SELECT + base.recruit_id, + 'realty' AS property_type, + ry.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + THEN base.info->'svedFL'->'svedON'->'on' + ELSE '[]'::jsonb + END + ) AS ry ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'ground_transportation' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + THEN base.info->'svedFL'->'svedNazTS'->'nazTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'air_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + THEN base.info->'svedFL'->'svedVozTS'->'vozTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'water_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' + THEN base.info->'svedFL'->'svedVodTS'->'vodTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' +), +all_data as( + -- Недвижимость + SELECT + base.recruit_id, + property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля + property_data->'adrObSob'->>'adrObSobTekst' AS address, + NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date, + 'realty' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'realty' + + UNION ALL + + -- Наземный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'vidTS' AS vehicle_type, + property_data->>'godVyp' AS issue_year, + property_data->>'markaTS' AS brand_model, + property_data->>'gosRegZn' AS reg_plate, + property_data->>'idenNom' AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'ground_transportation' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'ground_transportation' + + UNION ALL + + -- Воздушный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'air_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'air_vehicles' + + UNION ALL + + -- Водный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'water_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'water_vehicles' +) +select + *, + CASE + WHEN type_property = 'realty' THEN 1 + ELSE 0 + END AS is_property, -- недвиж//has_property + CASE + WHEN type_property = 'ground_transportation'THEN 1 + ELSE 0 + END AS is_ground_transport, -- наземный транспорт//has_ground_transport + CASE + WHEN type_property = 'air_vehicles' THEN 1 + ELSE 0 + END AS is_air_transport, -- воздушный транспорт//has_air_transport + CASE + WHEN type_property = 'water_vehicles' THEN 1 + ELSE 0 + END AS is_water_transport -- водный транспорт//has_water_transport +from all_data + Y + + + 496 + 320 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + kind_right + kind_right + + + address + address + + + vehicle_type + vehicle_type + + + issue_year + issue_year + + + brand_model + brand_model + + + reg_plate + reg_plate + + + vin + vin + + + vehicle_category + vehicle_category + + + start_date + start_date + + + close_date + close_date + + + type_property + type_property + + + N + N + N + N + Y + N + ervu_dashboard + Y + property
+ N + Y + N + Y + + + 688 + 320 + +
+ + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_property + has_property + + + has_ground_transport + has_ground_transport + + + has_air_transport + has_air_transport + + + has_water_transport + has_water_transport + +
+ N + Y + + + 1328 + 176 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_property + has_property_raw == 1 + Boolean + -1 + -1 + + + + has_ground_transport + has_ground_transport_raw == 1 + Boolean + -1 + -1 + + + + has_air_transport + has_air_transport_raw == 1 + Boolean + -1 + -1 + + + + has_water_transport + has_water_transport_raw == 1 + Boolean + -1 + -1 + + + + + 1104 + 176 + + + + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl b/mappings/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl new file mode 100644 index 0000000..2499f87 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl @@ -0,0 +1,743 @@ + + + + property_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table input + Insert / update + Y + + + Insert / update + Change job status on error + Y + + + Insert / update + Group by + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + Update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1392 + 528 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1392 + 352 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1872 + 208 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 352 + 352 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1632 + 208 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1632 + 320 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_property_raw + is_property + MAX + + + has_ground_transport_raw + is_ground_transport + MAX + + + has_air_transport_raw + is_air_transport + MAX + + + has_water_transport_raw + is_water_transport + MAX + + + N + + + recruit_id + + + N + grp + + + 752 + 208 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 944 + 208 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + + = + start_date + start_date + + + = + type_property + type_property + + ervu_dashboard + property
+ + recruit_id + recruit_id + N + + + kind_right + kind_right + Y + + + address + address + Y + + + vehicle_type + vehicle_type + Y + + + issue_year + issue_year + Y + + + brand_model + brand_model + Y + + + reg_plate + reg_plate + Y + + + vin + vin + Y + + + vehicle_category + vehicle_category + Y + + + start_date + start_date + Y + + + close_date + close_date + Y + + + type_property + type_property + Y + +
+ N + + + 752 + 352 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH +base as( + SELECT + ri.recruit_id, + ri.info + FROM ervu_dashboard.recruits_info ri + join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + --AND '${M_R_CR_DATE}'::timestamp >= ri.created_at + AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp +), +prop AS ( + SELECT + base.recruit_id, + 'realty' AS property_type, + ry.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + THEN base.info->'svedFL'->'svedON'->'on' + ELSE '[]'::jsonb + END + ) AS ry ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'ground_transportation' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + THEN base.info->'svedFL'->'svedNazTS'->'nazTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'air_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + THEN base.info->'svedFL'->'svedVozTS'->'vozTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'water_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' + THEN base.info->'svedFL'->'svedVodTS'->'vodTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' +), +all_data as( + -- Недвижимость + SELECT + base.recruit_id, + property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля + property_data->'adrObSob'->>'adrObSobTekst' AS address, + NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date, + 'realty' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'realty' + + UNION ALL + + -- Наземный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'vidTS' AS vehicle_type, + property_data->>'godVyp' AS issue_year, + property_data->>'markaTS' AS brand_model, + property_data->>'gosRegZn' AS reg_plate, + property_data->>'idenNom' AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'ground_transportation' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'ground_transportation' + + UNION ALL + + -- Воздушный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'air_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'air_vehicles' + + UNION ALL + + -- Водный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'water_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'water_vehicles' +) +select + *, + CASE + WHEN type_property = 'realty' THEN 1 + ELSE 0 + END AS is_property, -- недвиж//has_property + CASE + WHEN type_property = 'ground_transportation' THEN 1 + ELSE 0 + END AS is_ground_transport, -- наземный транспорт//has_ground_transport + CASE + WHEN type_property = 'air_vehicles' THEN 1 + ELSE 0 + END AS is_air_transport, -- воздушный транспорт//has_air_transport + CASE + WHEN type_property = 'water_vehicles' THEN 1 + ELSE 0 + END AS is_water_transport -- водный транспорт//has_water_transport +from all_data + Y + + + 560 + 352 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_property + has_property + + + has_ground_transport + has_ground_transport + + + has_air_transport + has_air_transport + + + has_water_transport + has_water_transport + +
+ N + Y + + + 1392 + 208 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_property + has_property_raw == 1 + Boolean + -1 + -1 + + + + has_ground_transport + has_ground_transport_raw == 1 + Boolean + -1 + -1 + + + + has_air_transport + has_air_transport_raw == 1 + Boolean + -1 + -1 + + + + has_water_transport + has_water_transport_raw == 1 + Boolean + -1 + -1 + + + + + 1168 + 208 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl new file mode 100644 index 0000000..2aa2f33 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl @@ -0,0 +1,757 @@ + + + + property_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1312 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1312 + 208 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1776 + 64 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1568 + 64 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1568 + 176 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_property_raw + is_property + MAX + + + has_ground_transport_raw + is_ground_transport + MAX + + + has_air_transport_raw + is_air_transport + MAX + + + has_water_transport_raw + is_water_transport + MAX + + + N + + + recruit_id + + + N + grp + + + 672 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 864 + 64 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + + = + start_date + start_date + + + = + type_property + type_property + + ervu_dashboard + property
+ + recruit_id + recruit_id + N + + + kind_right + kind_right + Y + + + address + address + Y + + + vehicle_type + vehicle_type + Y + + + issue_year + issue_year + Y + + + brand_model + brand_model + Y + + + reg_plate + reg_plate + Y + + + vin + vin + Y + + + vehicle_category + vehicle_category + Y + + + start_date + start_date + Y + + + close_date + close_date + Y + + + type_property + type_property + Y + +
+ N + + + 672 + 208 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH +base as( + SELECT + ri.recruit_id, + ri.info + FROM ervu_dashboard.recruits_info ri + join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= ri.created_at +), +prop AS ( + SELECT + base.recruit_id, + 'realty' AS property_type, + ry.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + THEN base.info->'svedFL'->'svedON'->'on' + ELSE '[]'::jsonb + END + ) AS ry ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'ground_transportation' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + THEN base.info->'svedFL'->'svedNazTS'->'nazTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'air_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + THEN base.info->'svedFL'->'svedVozTS'->'vozTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' + + UNION ALL + + SELECT + base.recruit_id, + 'water_vehicles' AS property_type, + property_data.value AS property_data + FROM base + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' + THEN base.info->'svedFL'->'svedVodTS'->'vodTS' + ELSE '[]'::jsonb + END + ) AS property_data ON true + WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' +), +all_data as( + -- Недвижимость + SELECT + base.recruit_id, + property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля + property_data->'adrObSob'->>'adrObSobTekst' AS address, + NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date, + 'realty' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'realty' + + UNION ALL + + -- Наземный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'vidTS' AS vehicle_type, + property_data->>'godVyp' AS issue_year, + property_data->>'markaTS' AS brand_model, + property_data->>'gosRegZn' AS reg_plate, + property_data->>'idenNom' AS vin, + NULL AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'ground_transportation' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'ground_transportation' + + UNION ALL + + -- Воздушный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'air_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'air_vehicles' + + UNION ALL + + -- Водный транспорт + SELECT + base.recruit_id, + NULL AS kind_right, + NULL AS address, + property_data->>'naimVid' AS vehicle_type, + NULL AS issue_year, + NULL AS brand_model, + NULL AS reg_plate, + NULL AS vin, + property_data->>'naznKat' AS vehicle_category, + to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date, + to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date, + 'water_vehicles' AS type_property + FROM base + JOIN prop ON base.recruit_id = prop.recruit_id + WHERE prop.property_type = 'water_vehicles' +) +select + *, + CASE + WHEN type_property = 'realty' THEN 1 + ELSE 0 + END AS is_property, -- недвиж//has_property + CASE + WHEN type_property = 'ground_transportation' THEN 1 + ELSE 0 + END AS is_ground_transport, -- наземный транспорт//has_ground_transport + CASE + WHEN type_property = 'air_vehicles' THEN 1 + ELSE 0 + END AS is_air_transport, -- воздушный транспорт//has_air_transport + CASE + WHEN type_property = 'water_vehicles' THEN 1 + ELSE 0 + END AS is_water_transport -- водный транспорт//has_water_transport +from all_data + Y + + + 480 + 208 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_property + has_property + + + has_ground_transport + has_ground_transport + + + has_air_transport + has_air_transport + + + has_water_transport + has_water_transport + +
+ N + Y + + + 1312 + 64 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_property + has_property_raw == 1 + Boolean + -1 + -1 + + + + has_ground_transport + has_ground_transport_raw == 1 + Boolean + -1 + -1 + + + + has_air_transport + has_air_transport_raw == 1 + Boolean + -1 + -1 + + + + has_water_transport + has_water_transport_raw == 1 + Boolean + -1 + -1 + + + + + 1088 + 64 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/property/property_job.hwf b/mappings/info_recruits/citizen_tables/property/property_job.hwf new file mode 100644 index 0000000..1b74416 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/property/property_job.hwf @@ -0,0 +1,360 @@ + + + property_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 224 + 304 + + + + check_if_property_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/property/checkpoints/check_if_property_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 304 + + + + subpoena_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 688 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/property/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 928 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/property/recruitment_five_flow_on_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 928 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/property/check_if_need_to_repeat_job.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 688 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 688 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/property/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 688 + 800 + + + + + + Start + check_if_property_job_exists.hpl + Y + Y + Y + + + check_if_property_job_exists.hpl + subpoena_job_exists_check + Y + Y + N + + + subpoena_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + subpoena_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 800 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 800 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 608 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + subpoena_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 114 + + + + diff --git a/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..0ac96e5 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + property_flow_delta.hpl + Y + + + Table input + property_flow_delta.hpl 2 + Y + + + Table input + property_flow_delta.hpl 3 + Y + + + Table input + property_flow_delta.hpl 4 + Y + + + Table input + property_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'property_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + property_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 640 + 128 + + + + property_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 640 + 208 + + + + property_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 640 + 288 + + + + property_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 640 + 368 + + + + property_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 640 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..b7c2cde --- /dev/null +++ b/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + property_flow_repeat.hpl + Y + + + Table input + property_flow_repeat.hpl 2 + Y + + + Table input + property_flow_repeat.hpl 3 + Y + + + Table input + property_flow_repeat.hpl 4 + Y + + + Table input + property_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'property_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + property_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 208 + + + + property_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 288 + + + + property_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 368 + + + + property_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 448 + + + + property_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/property/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/property/recruitments_five_flow.hpl new file mode 100644 index 0000000..14c764d --- /dev/null +++ b/mappings/info_recruits/citizen_tables/property/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + property_flow.hpl + Y + + + Get all recruitments ordered by created_date + property_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + property_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + property_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + property_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + property_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 144 + + + + property_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 224 + + + + property_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 304 + + + + property_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 384 + + + + property_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + property_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/prosecution/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/prosecution/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..4c54578 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/prosecution/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'prosecution_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_delta_prosecution_error.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_delta_prosecution_error.hpl deleted file mode 100644 index c48e595..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_delta_prosecution_error.hpl +++ /dev/null @@ -1,110 +0,0 @@ - - - - change_status_delta_prosecution_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_prosecution' as job_name, - 'ERROR' as status, - current_timestamp as record_created - -union all - - SELECT - 'job_prosecution' as job_name, - 'ERROR' as status, - current_timestamp as record_created - - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_delta_prosecution_success.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_delta_prosecution_success.hpl deleted file mode 100644 index cce1fed..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_delta_prosecution_success.hpl +++ /dev/null @@ -1,110 +0,0 @@ - - - - change_status_delta_prosecution_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_prosecution' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - -union all - - SELECT - 'job_prosecution' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow1_error.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow1_error.hpl deleted file mode 100644 index 0169754..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow1_error.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_prosecution_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.prosecution ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'prosecution_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow1_success.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow1_success.hpl deleted file mode 100644 index b7da38b..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow1_success.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_prosecution_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.prosecution ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'prosecution_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow2_error.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow2_error.hpl deleted file mode 100644 index 7e19275..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow2_error.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_prosecution_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.prosecution ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'prosecution_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow2_success.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow2_success.hpl deleted file mode 100644 index 31210c2..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow2_success.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_prosecution_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.prosecution ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'prosecution_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow3_error.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow3_error.hpl deleted file mode 100644 index fadd007..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow3_error.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_prosecution_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.prosecution ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'prosecution_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow3_success.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow3_success.hpl deleted file mode 100644 index b359b96..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow3_success.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_prosecution_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.prosecution ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'prosecution_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow4_error.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow4_error.hpl deleted file mode 100644 index 999578d..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow4_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_prosecution_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.prosecution ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'prosecution_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow4_success.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow4_success.hpl deleted file mode 100644 index a171b65..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow4_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_prosecution_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.prosecution ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'prosecution_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow5_error.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow5_error.hpl deleted file mode 100644 index 3ddd2e7..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow5_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_prosecution_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.prosecution ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'prosecution_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow5_success.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow5_success.hpl deleted file mode 100644 index bebb11a..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow5_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_prosecution_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.prosecution ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'prosecution_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_to_processing.hpl deleted file mode 100644 index 86aba83..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_to_processing.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - change_status_to_processing - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 16:14:31.162 - - - 2025/06/11 16:14:31.162 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 784 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'job_prosecution' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'prosecution_flow1' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'prosecution_flow2' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'prosecution_flow3' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'prosecution_flow4' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'prosecution_flow5' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 368 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_to_processing_delta.hpl deleted file mode 100644 index 5be41e9..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/change_status_to_processing_delta.hpl +++ /dev/null @@ -1,102 +0,0 @@ - - - - change_status_to_processing_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 13:42:26.494 - - - 2025/06/16 13:42:26.494 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1248 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'delta_prosecution' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 832 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/check_if_prosecution_job_exists.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/check_if_prosecution_job_exists.hpl new file mode 100644 index 0000000..d898c29 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/check_if_prosecution_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_prosecution_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'prosecution_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/checkpoint_job_prosecution.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/checkpoint_job_prosecution.hpl deleted file mode 100644 index b56b2e5..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/checkpoint_job_prosecution.hpl +++ /dev/null @@ -1,869 +0,0 @@ - - - - checkpoint_job_prosecution - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 14:19:02.590 - - - 2025/06/03 14:19:02.590 - - - - - - Filter rows - Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update - Y - - - Dummy (do nothing) - JSON input state_child_flow1.json - N - - - Dummy (do nothing) - JSON input state_child_flow2.json - N - - - Dummy (do nothing) - JSON input state_child_flow3.json - N - - - Dummy (do nothing) - JSON input state_child_flow4.json - N - - - Dummy (do nothing) - JSON input state_child_flow5.json - N - - - - Abort - Abort - - Y - - 1 - - none - - - ABORT_WITH_ERROR - Y - 0 - - - 1264 - 592 - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - - - Filter rows - FilterRows - - Y - - 1 - - none - - - - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow1 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow2 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow3 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow4 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow5 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - Abort - - - 944 - 592 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 432 - - - - JSON input state_child_flow2.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 512 - - - - JSON input state_child_flow3.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 592 - - - - JSON input state_child_flow4.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 672 - - - - JSON input state_child_flow5.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 752 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'prosecution_flow1', - 'prosecution_flow2', - 'prosecution_flow3', - 'prosecution_flow4', - 'prosecution_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'prosecution_flow1', - 'prosecution_flow2', - 'prosecution_flow3', - 'prosecution_flow4', - 'prosecution_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_prosecution' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/checkpoint_prosecution_error.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/checkpoint_prosecution_error.hpl deleted file mode 100644 index 06ffe21..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/checkpoint_prosecution_error.hpl +++ /dev/null @@ -1,273 +0,0 @@ - - - - checkpoint_prosecution_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 10:01:04.895 - - - 2025/06/09 10:01:04.895 - - - - - - Select values - Table output - N - - - Table input - Select values - N - - - Table input - Table output - Y - - - - Select values - SelectValues - - Y - - 1 - - none - - - - N - - idm_id - idm_id - String - -2 - -2 - - false - - - false - - - - - - - - - - 1008 - 608 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - FROM result_ma -), -for_checkpoints as ( - SELECT - 'job_child_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -) -select * from for_checkpoints - N - - - 736 - 448 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - public - N - etl_checkpoints
- N - Y - N - Y - - - 1248 - 448 - -
- - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/delta_prosecution.hpl b/mappings/info_recruits/citizen_tables/prosecution/delta_prosecution.hpl deleted file mode 100644 index bc20c7a..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/delta_prosecution.hpl +++ /dev/null @@ -1,180 +0,0 @@ - - - - delta_prosecution - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -ugolov_presl AS ( - SELECT - jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS up, - ri.recruit_id - --'prOtsSvedUgolovPresl' - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку - --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp - WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -) -SELECT - r.recruit_id AS recruit_id, - --up->'sledSud'->>'uk', -- уголовный кодекс? - up->'sledSud'->'extend'->>'nomerUDPredv' AS case_number, -- номер уголовного дела (предварительный) - up->'sledSud'->'extend'->>'svedPerekvalif' AS reclassification, -- сведения о переквалификации деяния - --up->'sledSud'->'extend'->>'kodVidUgolovPresl', -- - up->'sledSud'->'extend'->>'naimVidUgolovPresl' AS kind, -- наименование вида уголовного преследования - CASE - WHEN up->'sledSud'->'extend'->>'priznakPeredachSud' = '1' THEN true -- передано в суд - ELSE false -- нет или нет инфы - END AS transfer_to_court, -- признак передачи в суд уголовного дела в отношении гражданина? - - --up->'sledSud'->>'naimSud', -- Наименование суда??? - up->'sledSud'->>'nomerUD' AS case_number_court, -- номер уголовного дела??? номер уголовного дела (судебный) - STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, -- статьи уголовного кодекса - up->'sledSud'->>'naimOrgan' AS authority_name, -- наименование органа принявшего решение - --up->'sledSud'->'svedSnyat'->>'osnSnyatSud', -- основание прекращения уголовного преследования??? - --up->'sledSud'->'svedSnyat'->>'dataSnyatSud', -- дата прекращения уголовного преследования - --up->'sledSud'->'svedSnyat'->>'dataOsuzhd', -- дата осуждения??? = - up->'sledSud'->'svedSnyat'->>'dataVozbUD' AS create_date, -- дата возбуждения уголовного дела - up->'sledSud'->'svedSnyat'->>'osnPrekrUD' AS termination_basis, -- основания прекращения уголовного дела = основания прекращения уголовного преследования? - --up->'sledSud'->'svedSnyat'->>'statusNaim' , -- ???? - up->'sledSud'->'svedSnyat'->>'dataPrekrUD' AS close_date--, -- дата прекращения уголовного дела - --up->>'sledSudTekst', -- ??? - --up->>'sledSudPriznak' -- ??? - --'UG_PRESL' AS info_type -FROM ervu_dashboard.citizen r -JOIN ugolov_presl up ON r.recruit_id = up.recruit_id -LEFT JOIN LATERAL jsonb_array_elements_text(up->'sledSud'->'statiUK') AS law(f) ON true -GROUP BY r.recruit_id, up - Y - - - 624 - 352 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - prosecution
- - recruit_id - recruit_id - N - - - authority_name - authority_name - Y - - - case_number - case_number - Y - - - case_number_court - case_number_court - Y - - - close_date - close_date - Y - - - create_date - create_date - Y - - - kind - kind - Y - - - law_point - law_point - Y - - - reclassification - reclassification - Y - - - termination_basis - termination_basis - Y - - - transfer_to_court - transfer_to_court - Y - -
- N - - - 1040 - 352 - -
- - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/job_prosecution.hwf b/mappings/info_recruits/citizen_tables/prosecution/job_prosecution.hwf deleted file mode 100644 index 4ec227f..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/job_prosecution.hwf +++ /dev/null @@ -1,1843 +0,0 @@ - - - job_prosecution - Y - - - - 0 - - - 2025/06/05 14:27:15.055 - - - 2025/06/05 14:27:15.055 - - - M_R_CR_DATE - 3001-01-01 00:00:00 - - - - M_R_UP_DATE - - - - - - - Start - - SPECIAL - - 1 - 12 - 60 - 0 - 0 - N - 0 - 1 - N - 368 - 400 - - - - checkpoint_job_prosecution.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/checkpoint_job_prosecution.hpl - Basic - - Y - - N - local - N - N - Y - N - 1136 - 1280 - - - - recruitment_rows_five_flow_prosecution.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_prosecution.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2352 - 400 - - - - prosecution_flow1.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2672 - 80 - - - - prosecution_flow2.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2672 - 240 - - - - prosecution_flow3.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2672 - 400 - - - - prosecution_flow4.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2672 - 560 - - - - prosecution_flow5.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2672 - 720 - - - - Abort workflow - - ABORT - - N - N - 2336 - 208 - - - - Success new prosecution - - SUCCESS - - N - 3728 - 432 - - - - branching_prosecution.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/branching_prosecution.hpl - Basic - - Y - - N - local - N - N - Y - N - 1584 - 1280 - - - - Simple prosecution WHERE SUCCESS - - SIMPLE_EVAL - - SUCCESS - string - true - equal - equal - N - variable - STATUS - N - 1840 - 1792 - - - - Simple prosecution WHERE ERROR - - SIMPLE_EVAL - - ERROR - string - true - equal - equal - N - variable - STATUS - N - 1840 - 1280 - - - - recruitment_rows_five_flow_if_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/recruitment_rows_five_flow_if_error.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2384 - 1280 - - - - Abort workflow 2 - - ABORT - - N - N - 2288 - 1040 - - - - delta_prosecution.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/delta_prosecution.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - Y - - N - local - N - N - Y - N - 2640 - 1792 - - - - Success delta_prosecution - - SUCCESS - - N - 3280 - 1792 - - - - error delta_prosecution - - SUCCESS - - N - 3280 - 1872 - - - - check_if_job_prosecution_exists.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/check_if_job_prosecution_exists.hpl - Basic - - Y - - N - local - N - N - Y - N - 576 - 400 - - - - Simple job_prosecution_exists check NEW - - SIMPLE_EVAL - - NEW - string - true - equal - equal - N - variable - STATUS - N - 896 - 400 - - - - change_status_to_processing.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 1264 - 400 - - - - change_status_prosecution_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 80 - - - - change_status_prosecution_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 160 - - - - change_status_prosecution_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 240 - - - - change_status_prosecution_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 320 - - - - change_status_prosecution_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 400 - - - - change_status_prosecution_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 480 - - - - change_status_prosecution_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 560 - - - - change_status_prosecution_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 640 - - - - change_status_prosecution_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 720 - - - - change_status_prosecution_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 800 - - - - checkpoint_job_prosecution.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/checkpoint_job_prosecution.hpl - Basic - - Y - - N - local - N - N - Y - N - 3456 - 432 - - - - change_status_to_processing.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 2112 - 1280 - - - - change_status_to_processing_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_to_processing_delta.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 2144 - 1792 - - - - change_status_delta_prosecution_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_delta_prosecution_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1792 - - - - change_status_delta_prosecution_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_delta_prosecution_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1872 - - - - prosecution_flow1.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2672 - 960 - - - - prosecution_flow2.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2672 - 1120 - - - - prosecution_flow3.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2672 - 1280 - - - - prosecution_flow4.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2672 - 1440 - - - - prosecution_flow5.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2672 - 1600 - - - - Success new prosecution 2 - - SUCCESS - - N - 3728 - 1312 - - - - change_status_prosecution_flow1_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 960 - - - - change_status_prosecution_flow1_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1040 - - - - change_status_prosecution_flow2_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1120 - - - - change_status_prosecution_flow2_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1200 - - - - change_status_prosecution_flow3_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1280 - - - - change_status_prosecution_flow3_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1360 - - - - change_status_prosecution_flow4_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1440 - - - - change_status_prosecution_flow4_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1520 - - - - change_status_prosecution_flow5_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1600 - - - - change_status_prosecution_flow5_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/change_status_prosecution_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1680 - - - - checkpoint_job_prosecution.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/checkpoint_job_prosecution.hpl - Basic - - Y - - N - local - N - N - Y - N - 3456 - 1312 - - - - - - recruitment_rows_five_flow_prosecution.hpl - prosecution_flow1.hpl - Y - Y - N - - - recruitment_rows_five_flow_prosecution.hpl - prosecution_flow2.hpl - Y - Y - N - - - recruitment_rows_five_flow_prosecution.hpl - prosecution_flow3.hpl - Y - Y - N - - - recruitment_rows_five_flow_prosecution.hpl - prosecution_flow4.hpl - Y - Y - N - - - recruitment_rows_five_flow_prosecution.hpl - prosecution_flow5.hpl - Y - Y - N - - - recruitment_rows_five_flow_prosecution.hpl - Abort workflow - Y - N - N - - - branching_prosecution.hpl - Simple prosecution WHERE ERROR - Y - N - Y - - - branching_prosecution.hpl - Simple prosecution WHERE SUCCESS - Y - N - Y - - - recruitment_rows_five_flow_if_error.hpl - Abort workflow 2 - Y - N - N - - - Start - check_if_job_prosecution_exists.hpl - Y - Y - Y - - - check_if_job_prosecution_exists.hpl - Simple job_prosecution_exists check NEW - Y - Y - N - - - Simple job_prosecution_exists check NEW - change_status_to_processing.hpl - Y - Y - N - - - change_status_to_processing.hpl - recruitment_rows_five_flow_prosecution.hpl - Y - Y - N - - - prosecution_flow1.hpl - change_status_prosecution_flow1_success.hpl - Y - Y - N - - - prosecution_flow1.hpl - change_status_prosecution_flow1_error.hpl - Y - N - N - - - prosecution_flow2.hpl - change_status_prosecution_flow2_success.hpl - Y - Y - N - - - prosecution_flow2.hpl - change_status_prosecution_flow2_error.hpl - Y - N - N - - - prosecution_flow3.hpl - change_status_prosecution_flow3_success.hpl - Y - Y - N - - - prosecution_flow3.hpl - change_status_prosecution_flow3_error.hpl - Y - N - N - - - prosecution_flow4.hpl - change_status_prosecution_flow4_success.hpl - Y - Y - N - - - prosecution_flow4.hpl - change_status_prosecution_flow4_error.hpl - Y - N - N - - - prosecution_flow5.hpl - change_status_prosecution_flow5_success.hpl - Y - Y - N - - - prosecution_flow5.hpl - change_status_prosecution_flow5_error.hpl - Y - N - N - - - change_status_prosecution_flow5_error.hpl - checkpoint_job_prosecution.hpl - Y - N - Y - - - change_status_prosecution_flow5_success.hpl - checkpoint_job_prosecution.hpl - Y - N - Y - - - change_status_prosecution_flow4_error.hpl - checkpoint_job_prosecution.hpl - Y - N - Y - - - change_status_prosecution_flow4_success.hpl - checkpoint_job_prosecution.hpl - Y - N - Y - - - change_status_prosecution_flow3_error.hpl - checkpoint_job_prosecution.hpl - Y - N - Y - - - change_status_prosecution_flow3_success.hpl - checkpoint_job_prosecution.hpl - Y - N - Y - - - change_status_prosecution_flow2_error.hpl - checkpoint_job_prosecution.hpl - Y - N - Y - - - change_status_prosecution_flow2_success.hpl - checkpoint_job_prosecution.hpl - Y - N - Y - - - change_status_prosecution_flow1_error.hpl - checkpoint_job_prosecution.hpl - Y - N - Y - - - change_status_prosecution_flow1_success.hpl - checkpoint_job_prosecution.hpl - Y - N - Y - - - checkpoint_job_prosecution.hpl - Success new prosecution - Y - Y - N - - - checkpoint_job_prosecution.hpl (2) - branching_prosecution.hpl - Y - N - Y - - - Simple job_prosecution_exists check NEW - checkpoint_job_prosecution.hpl (2) - Y - N - N - - - Simple prosecution WHERE ERROR - change_status_to_processing.hpl (2) - Y - Y - N - - - change_status_to_processing.hpl (2) - recruitment_rows_five_flow_if_error.hpl - Y - Y - N - - - Simple prosecution WHERE SUCCESS - change_status_to_processing_delta.hpl - Y - Y - N - - - delta_prosecution.hpl - change_status_delta_prosecution_success.hpl - Y - Y - N - - - change_status_delta_prosecution_success.hpl - Success delta_prosecution - Y - Y - N - - - delta_prosecution.hpl - change_status_delta_prosecution_error.hpl - Y - N - N - - - change_status_delta_prosecution_error.hpl - error delta_prosecution - Y - Y - N - - - change_status_to_processing_delta.hpl - delta_prosecution.hpl - Y - Y - N - - - prosecution_flow1.hpl 2 - change_status_prosecution_flow1_success.hpl 2 - Y - Y - N - - - prosecution_flow1.hpl 2 - change_status_prosecution_flow1_error.hpl 2 - Y - N - N - - - prosecution_flow2.hpl 2 - change_status_prosecution_flow2_success.hpl 2 - Y - Y - N - - - prosecution_flow2.hpl 2 - change_status_prosecution_flow2_error.hpl 2 - Y - N - N - - - prosecution_flow3.hpl 2 - change_status_prosecution_flow3_success.hpl 2 - Y - Y - N - - - prosecution_flow3.hpl 2 - change_status_prosecution_flow3_error.hpl 2 - Y - N - N - - - prosecution_flow4.hpl 2 - change_status_prosecution_flow4_success.hpl 2 - Y - Y - N - - - prosecution_flow4.hpl 2 - change_status_prosecution_flow4_error.hpl 2 - Y - N - N - - - prosecution_flow5.hpl 2 - change_status_prosecution_flow5_success.hpl 2 - Y - Y - N - - - prosecution_flow5.hpl 2 - change_status_prosecution_flow5_error.hpl 2 - Y - N - N - - - change_status_prosecution_flow1_success.hpl 2 - checkpoint_job_prosecution.hpl 2 - Y - N - Y - - - change_status_prosecution_flow1_error.hpl 2 - checkpoint_job_prosecution.hpl 2 - Y - N - Y - - - change_status_prosecution_flow2_success.hpl 2 - checkpoint_job_prosecution.hpl 2 - Y - N - Y - - - change_status_prosecution_flow2_error.hpl 2 - checkpoint_job_prosecution.hpl 2 - Y - N - Y - - - change_status_prosecution_flow3_success.hpl 2 - checkpoint_job_prosecution.hpl 2 - Y - N - Y - - - change_status_prosecution_flow3_error.hpl 2 - checkpoint_job_prosecution.hpl 2 - Y - N - Y - - - change_status_prosecution_flow4_success.hpl 2 - checkpoint_job_prosecution.hpl 2 - Y - N - Y - - - change_status_prosecution_flow4_error.hpl 2 - checkpoint_job_prosecution.hpl 2 - Y - N - Y - - - change_status_prosecution_flow5_success.hpl 2 - checkpoint_job_prosecution.hpl 2 - Y - N - Y - - - change_status_prosecution_flow5_error.hpl 2 - checkpoint_job_prosecution.hpl 2 - Y - N - Y - - - checkpoint_job_prosecution.hpl 2 - Success new prosecution 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - prosecution_flow3.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - prosecution_flow2.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - prosecution_flow1.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - prosecution_flow4.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - prosecution_flow5.hpl 2 - Y - Y - N - - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 72 - 1088 - 176 - 0001-01-01 00:00:00 - -3001-01-01 00:00:00 - - 114 - - - - diff --git a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow.hpl b/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow.hpl new file mode 100644 index 0000000..1009170 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow.hpl @@ -0,0 +1,579 @@ + + + + prosecution_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Table output + Change job status on error + Y + + + Change job status on error + Abort + Y + + + Filter rows + Change job status on success + Y + + + Table output + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Table input + Table output + Y + + + Table output + Group by + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + Add constants + Y + + + Add constants + Update + Y + + + Update + Filter rows + Y + + + Update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1216 + 224 + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + has_criminal_prosecution + true + -1 + N + Boolean + + + + + 832 + 32 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1056 + 224 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}' +and status = 'PROCESSING'; + + + + + 1456 + 32 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 272 + 464 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1456 + 464 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1200 + 32 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 832 + 320 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 832 + 176 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH +ugolov_presl AS ( + SELECT + jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS up, + ri.recruit_id + FROM ervu_dashboard.recruits_info ri + JOIN ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id + AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= ri.created_at + WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' +) +SELECT + r.recruit_id AS recruit_id, + (up->>'id')::uuid AS prosecution_external_id, + NULLIF(up->'sledSud'->>'uk', '') AS uk_name, + NULLIF(up->'sledSud'->'extend'->>'nomerUDPredv', '') AS case_number, + NULLIF(up->'sledSud'->'extend'->>'svedPerekvalif', '') AS reclassification, + NULLIF(up->'sledSud'->'extend'->>'naimVidUgolovPresl', '') AS kind, + CASE + WHEN up->'sledSud'->'extend'->>'priznakPeredachSud' = '1' THEN true + ELSE false -- нет или нет инфы + END AS transfer_to_court, + NULLIF(up->'sledSud'->>'naimSud','') AS court_name, + NULLIF(up->'sledSud'->>'nomerUD','') AS case_number_court, + STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, + NULLIF(up->'sledSud'->>'naimOrgan', '') AS authority_name, + NULLIF(up->'sledSud'->'svedSnyat'->>'osnSnyatSud', '') AS conviction_removal_basis, + TO_DATE(up->'sledSud'->'svedSnyat'->>'dataSnyatSud', 'YYYY-MM-DD') AS conviction_removal_date, + TO_DATE(up->'sledSud'->>'dataOsuzhd', 'YYYY-MM-DD') AS conviction_date, + TO_DATE(up->'sledSud'->>'dataVozbUD', 'YYYY-MM-DD') AS create_date, + NULLIF(up->'sledSud'->>'osnPrekrUD', '') AS termination_basis, + NULLIF(up->'sledSud'->>'statusNaim', '') AS conviction_status, + TO_DATE(up->'sledSud'->>'dataPrekrUD', 'YYYY-MM-DD') AS close_date, + NULLIF(up->'sledSudTekst'->>'svedTekst' , '') AS sled_sud_tekst_sved_tekst, + NULLIF(up->'sledSudTekst'->>'statusNaim', '') AS sled_sud_tekst_status_naim, + CASE + WHEN (up->>'sledSud') IS NOT NULL AND up->>'sledSud' != 'null' THEN 'Сведения о фактах уголовного преследования или судимости в структурированном формате' + WHEN (up->>'sledSudTekst') IS NOT NULL AND up->>'sledSudTekst' != 'null' THEN 'Сведения о фактах уголовного преследования или судимости в текстовом виде' + ELSE 'Есть сведения о фактах уголовного преследования или судимости без указания подробностей' + END AS type_info +FROM ervu_dashboard.citizen r + JOIN ugolov_presl up ON r.recruit_id = up.recruit_id + LEFT JOIN LATERAL jsonb_array_elements_text(up->'sledSud'->'statiUK') AS law(f) ON true +GROUP BY r.recruit_id, up; + Y + + + 480 + 464 + + + + Table output + TableOutput + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + prosecution_external_id + prosecution_external_id + + + uk_name + uk_name + + + case_number + case_number + + + reclassification + reclassification + + + kind + kind + + + transfer_to_court + transfer_to_court + + + court_name + court_name + + + case_number_court + case_number_court + + + law_point + law_point + + + authority_name + authority_name + + + conviction_removal_basis + conviction_removal_basis + + + conviction_removal_date + conviction_removal_date + + + conviction_date + conviction_date + + + create_date + create_date + + + termination_basis + termination_basis + + + conviction_status + conviction_status + + + close_date + close_date + + + sled_sud_tekst_sved_tekst + sled_sud_tekst_sved_tekst + + + sled_sud_tekst_status_naim + sled_sud_tekst_status_naim + + + type_info + type_info + + + N + N + N + N + Y + N + ervu_dashboard + Y + prosecution
+ N + Y + N + Y + + + 832 + 464 + +
+ + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + N + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_criminal_prosecution + has_criminal_prosecution + +
+ N + Y + + + 1056 + 32 + +
+ + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow1.hpl b/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow1.hpl deleted file mode 100644 index 4443790..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow1.hpl +++ /dev/null @@ -1,266 +0,0 @@ - - - - prosecution_flow1 - Y - - - - Normal - 0 - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Select values 4 2 - N - - - Select values 4 2 - Get variables - N - - - Table input - Insert / update - Y - - - - Get variables - GetVariable - - Y - - 1 - - none - - - - - -1 - recruitment_id - -1 - none - String - ID_F1 - - - - - 976 - 400 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - prosecution
- - recruit_id - recruit_id - N - - - authority_name - authority_name - Y - - - case_number - case_number - Y - - - case_number_court - case_number_court - Y - - - close_date - close_date - Y - - - create_date - create_date - Y - - - kind - kind - Y - - - law_point - law_point - Y - - - reclassification - reclassification - Y - - - termination_basis - termination_basis - Y - - - transfer_to_court - transfer_to_court - Y - -
- N - - - 960 - 288 - -
- - Select values 4 2 - SelectValues - - Y - - 1 - - none - - - - N - - ID_F1 - ID_F1 - String - -2 - -2 - - false - - - false - - - - - - - - - - 720 - 400 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -ugolov_presl AS ( - SELECT - jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS up, - ri.recruit_id - --'prOtsSvedUgolovPresl' - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -) -SELECT - r.recruit_id AS recruit_id, - --up->'sledSud'->>'uk', -- уголовный кодекс? - up->'sledSud'->'extend'->>'nomerUDPredv' AS case_number, -- номер уголовного дела (предварительный) - up->'sledSud'->'extend'->>'svedPerekvalif' AS reclassification, -- сведения о переквалификации деяния - --up->'sledSud'->'extend'->>'kodVidUgolovPresl', -- - up->'sledSud'->'extend'->>'naimVidUgolovPresl' AS kind, -- наименование вида уголовного преследования - CASE - WHEN up->'sledSud'->'extend'->>'priznakPeredachSud' = '1' THEN true -- передано в суд - ELSE false -- нет или нет инфы - END AS transfer_to_court, -- признак передачи в суд уголовного дела в отношении гражданина? - - --up->'sledSud'->>'naimSud', -- Наименование суда??? - up->'sledSud'->>'nomerUD' AS case_number_court, -- номер уголовного дела??? номер уголовного дела (судебный) - STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, -- статьи уголовного кодекса - up->'sledSud'->>'naimOrgan' AS authority_name, -- наименование органа принявшего решение - --up->'sledSud'->'svedSnyat'->>'osnSnyatSud', -- основание прекращения уголовного преследования??? - --up->'sledSud'->'svedSnyat'->>'dataSnyatSud', -- дата прекращения уголовного преследования - --up->'sledSud'->'svedSnyat'->>'dataOsuzhd', -- дата осуждения??? = - up->'sledSud'->'svedSnyat'->>'dataVozbUD' AS create_date, -- дата возбуждения уголовного дела - up->'sledSud'->'svedSnyat'->>'osnPrekrUD' AS termination_basis, -- основания прекращения уголовного дела = основания прекращения уголовного преследования? - --up->'sledSud'->'svedSnyat'->>'statusNaim' , -- ???? - up->'sledSud'->'svedSnyat'->>'dataPrekrUD' AS close_date--, -- дата прекращения уголовного дела - --up->>'sledSudTekst', -- ??? - --up->>'sledSudPriznak' -- ??? - --'UG_PRESL' AS info_type -FROM ervu_dashboard.citizen r -JOIN ugolov_presl up ON r.recruit_id = up.recruit_id -LEFT JOIN LATERAL jsonb_array_elements_text(up->'sledSud'->'statiUK') AS law(f) ON true -GROUP BY r.recruit_id, up - Y - - - 448 - 288 - - - - - Select values 4 2 - Get variables - Y - - - - - - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow2.hpl b/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow2.hpl deleted file mode 100644 index 2ae10e8..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow2.hpl +++ /dev/null @@ -1,179 +0,0 @@ - - - - prosecution_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - prosecution
- - recruit_id - recruit_id - N - - - authority_name - authority_name - Y - - - case_number - case_number - Y - - - case_number_court - case_number_court - Y - - - close_date - close_date - Y - - - create_date - create_date - Y - - - kind - kind - Y - - - law_point - law_point - Y - - - reclassification - reclassification - Y - - - termination_basis - termination_basis - Y - - - transfer_to_court - transfer_to_court - Y - -
- N - - - 1232 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -ugolov_presl AS ( - SELECT - jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS up, - ri.recruit_id - --'prOtsSvedUgolovPresl' - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -) -SELECT - r.recruit_id AS recruit_id, - --up->'sledSud'->>'uk', -- уголовный кодекс? - up->'sledSud'->'extend'->>'nomerUDPredv' AS case_number, -- номер уголовного дела (предварительный) - up->'sledSud'->'extend'->>'svedPerekvalif' AS reclassification, -- сведения о переквалификации деяния - --up->'sledSud'->'extend'->>'kodVidUgolovPresl', -- - up->'sledSud'->'extend'->>'naimVidUgolovPresl' AS kind, -- наименование вида уголовного преследования - CASE - WHEN up->'sledSud'->'extend'->>'priznakPeredachSud' = '1' THEN true -- передано в суд - ELSE false -- нет или нет инфы - END AS transfer_to_court, -- признак передачи в суд уголовного дела в отношении гражданина? - - --up->'sledSud'->>'naimSud', -- Наименование суда??? - up->'sledSud'->>'nomerUD' AS case_number_court, -- номер уголовного дела??? номер уголовного дела (судебный) - STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, -- статьи уголовного кодекса - up->'sledSud'->>'naimOrgan' AS authority_name, -- наименование органа принявшего решение - --up->'sledSud'->'svedSnyat'->>'osnSnyatSud', -- основание прекращения уголовного преследования??? - --up->'sledSud'->'svedSnyat'->>'dataSnyatSud', -- дата прекращения уголовного преследования - --up->'sledSud'->'svedSnyat'->>'dataOsuzhd', -- дата осуждения??? = - up->'sledSud'->'svedSnyat'->>'dataVozbUD' AS create_date, -- дата возбуждения уголовного дела - up->'sledSud'->'svedSnyat'->>'osnPrekrUD' AS termination_basis, -- основания прекращения уголовного дела = основания прекращения уголовного преследования? - --up->'sledSud'->'svedSnyat'->>'statusNaim' , -- ???? - up->'sledSud'->'svedSnyat'->>'dataPrekrUD' AS close_date--, -- дата прекращения уголовного дела - --up->>'sledSudTekst', -- ??? - --up->>'sledSudPriznak' -- ??? - --'UG_PRESL' AS info_type -FROM ervu_dashboard.citizen r -JOIN ugolov_presl up ON r.recruit_id = up.recruit_id -LEFT JOIN LATERAL jsonb_array_elements_text(up->'sledSud'->'statiUK') AS law(f) ON true -GROUP BY r.recruit_id, up - Y - - - 736 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow3.hpl b/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow3.hpl deleted file mode 100644 index edc58d3..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow3.hpl +++ /dev/null @@ -1,179 +0,0 @@ - - - - prosecution_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - prosecution
- - recruit_id - recruit_id - N - - - authority_name - authority_name - Y - - - case_number - case_number - Y - - - case_number_court - case_number_court - Y - - - close_date - close_date - Y - - - create_date - create_date - Y - - - kind - kind - Y - - - law_point - law_point - Y - - - reclassification - reclassification - Y - - - termination_basis - termination_basis - Y - - - transfer_to_court - transfer_to_court - Y - -
- N - - - 1216 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -ugolov_presl AS ( - SELECT - jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS up, - ri.recruit_id - --'prOtsSvedUgolovPresl' - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -) -SELECT - r.recruit_id AS recruit_id, - --up->'sledSud'->>'uk', -- уголовный кодекс? - up->'sledSud'->'extend'->>'nomerUDPredv' AS case_number, -- номер уголовного дела (предварительный) - up->'sledSud'->'extend'->>'svedPerekvalif' AS reclassification, -- сведения о переквалификации деяния - --up->'sledSud'->'extend'->>'kodVidUgolovPresl', -- - up->'sledSud'->'extend'->>'naimVidUgolovPresl' AS kind, -- наименование вида уголовного преследования - CASE - WHEN up->'sledSud'->'extend'->>'priznakPeredachSud' = '1' THEN true -- передано в суд - ELSE false -- нет или нет инфы - END AS transfer_to_court, -- признак передачи в суд уголовного дела в отношении гражданина? - - --up->'sledSud'->>'naimSud', -- Наименование суда??? - up->'sledSud'->>'nomerUD' AS case_number_court, -- номер уголовного дела??? номер уголовного дела (судебный) - STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, -- статьи уголовного кодекса - up->'sledSud'->>'naimOrgan' AS authority_name, -- наименование органа принявшего решение - --up->'sledSud'->'svedSnyat'->>'osnSnyatSud', -- основание прекращения уголовного преследования??? - --up->'sledSud'->'svedSnyat'->>'dataSnyatSud', -- дата прекращения уголовного преследования - --up->'sledSud'->'svedSnyat'->>'dataOsuzhd', -- дата осуждения??? = - up->'sledSud'->'svedSnyat'->>'dataVozbUD' AS create_date, -- дата возбуждения уголовного дела - up->'sledSud'->'svedSnyat'->>'osnPrekrUD' AS termination_basis, -- основания прекращения уголовного дела = основания прекращения уголовного преследования? - --up->'sledSud'->'svedSnyat'->>'statusNaim' , -- ???? - up->'sledSud'->'svedSnyat'->>'dataPrekrUD' AS close_date--, -- дата прекращения уголовного дела - --up->>'sledSudTekst', -- ??? - --up->>'sledSudPriznak' -- ??? - --'UG_PRESL' AS info_type -FROM ervu_dashboard.citizen r -JOIN ugolov_presl up ON r.recruit_id = up.recruit_id -LEFT JOIN LATERAL jsonb_array_elements_text(up->'sledSud'->'statiUK') AS law(f) ON true -GROUP BY r.recruit_id, up - Y - - - 720 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow4.hpl b/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow4.hpl deleted file mode 100644 index 165c016..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow4.hpl +++ /dev/null @@ -1,179 +0,0 @@ - - - - prosecution_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - prosecution
- - recruit_id - recruit_id - N - - - authority_name - authority_name - Y - - - case_number - case_number - Y - - - case_number_court - case_number_court - Y - - - close_date - close_date - Y - - - create_date - create_date - Y - - - kind - kind - Y - - - law_point - law_point - Y - - - reclassification - reclassification - Y - - - termination_basis - termination_basis - Y - - - transfer_to_court - transfer_to_court - Y - -
- N - - - 1184 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -ugolov_presl AS ( - SELECT - jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS up, - ri.recruit_id - --'prOtsSvedUgolovPresl' - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -) -SELECT - r.recruit_id AS recruit_id, - --up->'sledSud'->>'uk', -- уголовный кодекс? - up->'sledSud'->'extend'->>'nomerUDPredv' AS case_number, -- номер уголовного дела (предварительный) - up->'sledSud'->'extend'->>'svedPerekvalif' AS reclassification, -- сведения о переквалификации деяния - --up->'sledSud'->'extend'->>'kodVidUgolovPresl', -- - up->'sledSud'->'extend'->>'naimVidUgolovPresl' AS kind, -- наименование вида уголовного преследования - CASE - WHEN up->'sledSud'->'extend'->>'priznakPeredachSud' = '1' THEN true -- передано в суд - ELSE false -- нет или нет инфы - END AS transfer_to_court, -- признак передачи в суд уголовного дела в отношении гражданина? - - --up->'sledSud'->>'naimSud', -- Наименование суда??? - up->'sledSud'->>'nomerUD' AS case_number_court, -- номер уголовного дела??? номер уголовного дела (судебный) - STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, -- статьи уголовного кодекса - up->'sledSud'->>'naimOrgan' AS authority_name, -- наименование органа принявшего решение - --up->'sledSud'->'svedSnyat'->>'osnSnyatSud', -- основание прекращения уголовного преследования??? - --up->'sledSud'->'svedSnyat'->>'dataSnyatSud', -- дата прекращения уголовного преследования - --up->'sledSud'->'svedSnyat'->>'dataOsuzhd', -- дата осуждения??? = - up->'sledSud'->'svedSnyat'->>'dataVozbUD' AS create_date, -- дата возбуждения уголовного дела - up->'sledSud'->'svedSnyat'->>'osnPrekrUD' AS termination_basis, -- основания прекращения уголовного дела = основания прекращения уголовного преследования? - --up->'sledSud'->'svedSnyat'->>'statusNaim' , -- ???? - up->'sledSud'->'svedSnyat'->>'dataPrekrUD' AS close_date--, -- дата прекращения уголовного дела - --up->>'sledSudTekst', -- ??? - --up->>'sledSudPriznak' -- ??? - --'UG_PRESL' AS info_type -FROM ervu_dashboard.citizen r -JOIN ugolov_presl up ON r.recruit_id = up.recruit_id -LEFT JOIN LATERAL jsonb_array_elements_text(up->'sledSud'->'statiUK') AS law(f) ON true -GROUP BY r.recruit_id, up - Y - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow5.hpl b/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow5.hpl deleted file mode 100644 index b74189b..0000000 --- a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow5.hpl +++ /dev/null @@ -1,179 +0,0 @@ - - - - prosecution_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - prosecution
- - recruit_id - recruit_id - N - - - authority_name - authority_name - Y - - - case_number - case_number - Y - - - case_number_court - case_number_court - Y - - - close_date - close_date - Y - - - create_date - create_date - Y - - - kind - kind - Y - - - law_point - law_point - Y - - - reclassification - reclassification - Y - - - termination_basis - termination_basis - Y - - - transfer_to_court - transfer_to_court - Y - -
- N - - - 1216 - 368 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -ugolov_presl AS ( - SELECT - jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS up, - ri.recruit_id - --'prOtsSvedUgolovPresl' - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -) -SELECT - r.recruit_id AS recruit_id, - --up->'sledSud'->>'uk', -- уголовный кодекс? - up->'sledSud'->'extend'->>'nomerUDPredv' AS case_number, -- номер уголовного дела (предварительный) - up->'sledSud'->'extend'->>'svedPerekvalif' AS reclassification, -- сведения о переквалификации деяния - --up->'sledSud'->'extend'->>'kodVidUgolovPresl', -- - up->'sledSud'->'extend'->>'naimVidUgolovPresl' AS kind, -- наименование вида уголовного преследования - CASE - WHEN up->'sledSud'->'extend'->>'priznakPeredachSud' = '1' THEN true -- передано в суд - ELSE false -- нет или нет инфы - END AS transfer_to_court, -- признак передачи в суд уголовного дела в отношении гражданина? - - --up->'sledSud'->>'naimSud', -- Наименование суда??? - up->'sledSud'->>'nomerUD' AS case_number_court, -- номер уголовного дела??? номер уголовного дела (судебный) - STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, -- статьи уголовного кодекса - up->'sledSud'->>'naimOrgan' AS authority_name, -- наименование органа принявшего решение - --up->'sledSud'->'svedSnyat'->>'osnSnyatSud', -- основание прекращения уголовного преследования??? - --up->'sledSud'->'svedSnyat'->>'dataSnyatSud', -- дата прекращения уголовного преследования - --up->'sledSud'->'svedSnyat'->>'dataOsuzhd', -- дата осуждения??? = - up->'sledSud'->'svedSnyat'->>'dataVozbUD' AS create_date, -- дата возбуждения уголовного дела - up->'sledSud'->'svedSnyat'->>'osnPrekrUD' AS termination_basis, -- основания прекращения уголовного дела = основания прекращения уголовного преследования? - --up->'sledSud'->'svedSnyat'->>'statusNaim' , -- ???? - up->'sledSud'->'svedSnyat'->>'dataPrekrUD' AS close_date--, -- дата прекращения уголовного дела - --up->>'sledSudTekst', -- ??? - --up->>'sledSudPriznak' -- ??? - --'UG_PRESL' AS info_type -FROM ervu_dashboard.citizen r -JOIN ugolov_presl up ON r.recruit_id = up.recruit_id -LEFT JOIN LATERAL jsonb_array_elements_text(up->'sledSud'->'statiUK') AS law(f) ON true -GROUP BY r.recruit_id, up - Y - - - 720 - 368 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_delta.hpl b/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_delta.hpl new file mode 100644 index 0000000..ed6e89d --- /dev/null +++ b/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_delta.hpl @@ -0,0 +1,605 @@ + + + + prosecution_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Insert / update + Change job status on error + Y + + + Insert / update + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Identify last row in a stream 2 + Add constants + Y + + + Group by + Identify last row in a stream 2 + Y + + + Insert / update + Group by + Y + + + Add constants + Update + Y + + + Update + Filter rows + Y + + + Update + Change job status on error + Y + + + Table input + Insert / update + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 992 + 592 + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + has_criminal_prosecution + true + -1 + N + Boolean + + + + + 736 + 416 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 880 + 592 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}' +and status = 'DELTA_PROCESSING'; + + + + + 1152 + 416 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 112 + 768 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1152 + 768 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1024 + 416 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 736 + 640 + + + + Identify last row in a stream 2 + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 736 + 528 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + prosecution_external_id + prosecution_external_id + + ervu_dashboard + prosecution
+ + recruit_id + recruit_id + N + + + prosecution_external_id + prosecution_external_id + N + + + uk_name + uk_name + Y + + + case_number + case_number + Y + + + reclassification + reclassification + Y + + + kind + kind + Y + + + transfer_to_court + transfer_to_court + Y + + + court_name + court_name + Y + + + case_number_court + case_number_court + Y + + + law_point + law_point + Y + + + authority_name + authority_name + Y + + + conviction_removal_basis + conviction_removal_basis + Y + + + conviction_removal_date + conviction_removal_date + Y + + + conviction_date + conviction_date + Y + + + create_date + create_date + Y + + + termination_basis + termination_basis + Y + + + conviction_status + conviction_status + Y + + + close_date + close_date + Y + + + sled_sud_tekst_sved_tekst + sled_sud_tekst_sved_tekst + Y + + + sled_sud_tekst_status_naim + sled_sud_tekst_status_naim + Y + + + type_info + type_info + Y + +
+ N + + + 736 + 768 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH +ugolov_presl AS ( + SELECT + jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS up, + ri.recruit_id + --'prOtsSvedUgolovPresl' + FROM ervu_dashboard.recruits_info ri + join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id + AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= ri.created_at + AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp + WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' +) +SELECT + r.recruit_id AS recruit_id, + (up->>'id')::uuid AS prosecution_external_id, + NULLIF(up->'sledSud'->>'uk', '') AS uk_name, -- УК осуждения + NULLIF(up->'sledSud'->'extend'->>'nomerUDPredv', '') AS case_number, -- номер уголовного дела (предварительный) + NULLIF(up->'sledSud'->'extend'->>'svedPerekvalif', '') AS reclassification, -- сведения о переквалификации деяния + NULLIF(up->'sledSud'->'extend'->>'naimVidUgolovPresl', '') AS kind, -- наименование вида уголовного преследования + CASE + WHEN up->'sledSud'->'extend'->>'priznakPeredachSud' = '1' THEN true -- передано в суд + ELSE false -- нет или нет инфы + END AS transfer_to_court, -- признак передачи в суд уголовного дела в отношении гражданина + NULLIF(up->'sledSud'->>'naimSud','') AS court_name, -- Наименование суда, вынесшего приговор + NULLIF(up->'sledSud'->>'nomerUD','') AS case_number_court, -- номер уголовного дела (судебный) + STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, -- статьи уголовного кодекса + NULLIF(up->'sledSud'->>'naimOrgan', '') AS authority_name, -- наименование органа, принявшего решение о возбуждении уголовного дела + NULLIF(up->'sledSud'->'svedSnyat'->>'osnSnyatSud', '') AS conviction_removal_basis, -- основание снятия судимости + TO_DATE(up->'sledSud'->'svedSnyat'->>'dataSnyatSud', 'YYYY-MM-DD') AS conviction_removal_date, -- дата снятия судимости + TO_DATE(up->'sledSud'->>'dataOsuzhd', 'YYYY-MM-DD') AS conviction_date, -- дата осуждения + TO_DATE(up->'sledSud'->>'dataVozbUD', 'YYYY-MM-DD') AS create_date, -- дата возбуждения уголовного дела + NULLIF(up->'sledSud'->>'osnPrekrUD', '') AS termination_basis, -- основания прекращения уголовного дела + NULLIF(up->'sledSud'->>'statusNaim', '') AS conviction_status, -- статус судимости + TO_DATE(up->'sledSud'->>'dataPrekrUD', 'YYYY-MM-DD') AS close_date, -- дата прекращения уголовного дела + NULLIF(up->'sledSudTekst'->>'svedTekst' , '') AS sled_sud_tekst_sved_tekst, -- текст судимости в текстовом формате + NULLIF(up->'sledSudTekst'->>'statusNaim', '') AS sled_sud_tekst_status_naim, -- статус судимости в текстовом формате + CASE + WHEN (up->>'sledSud') IS NOT NULL AND up->>'sledSud' != 'null' THEN 'Сведения о фактах уголовного преследования или судимости в структурированном формате' + WHEN (up->>'sledSudTekst') IS NOT NULL AND up->>'sledSudTekst' != 'null' THEN 'Сведения о фактах уголовного преследования или судимости в текстовом виде' + ELSE 'Есть сведения о фактах уголовного преследования или судимости без указания подробностей' + END AS type_info +FROM ervu_dashboard.citizen r + JOIN ugolov_presl up ON r.recruit_id = up.recruit_id + LEFT JOIN LATERAL jsonb_array_elements_text(up->'sledSud'->'statiUK') AS law(f) ON true +GROUP BY r.recruit_id, up; + Y + + + 384 + 768 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + N + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_criminal_prosecution + has_criminal_prosecution + +
+ N + Y + + + 880 + 416 + +
+ + + Insert / update + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_repeat.hpl new file mode 100644 index 0000000..f597b73 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_repeat.hpl @@ -0,0 +1,617 @@ + + + + prosecution_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Insert / update + Change job status on error + Y + + + Insert / update + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + Add constants + Y + + + Insert / update + Group by + Y + + + Add constants + Update + Y + + + Update + Filter rows + Y + + + Update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1120 + 736 + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + has_criminal_prosecution + true + -1 + N + Boolean + + + + + 768 + 576 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 944 + 736 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}' +and status = 'PROCESSING'; + + + + + 1296 + 576 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL; + + + 176 + 944 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1296 + 944 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1088 + 576 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 768 + 800 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 768 + 704 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + prosecution_external_id + prosecution_external_id + + ervu_dashboard + prosecution
+ + recruit_id + recruit_id + N + + + prosecution_external_id + prosecution_external_id + N + + + uk_name + uk_name + Y + + + case_number + case_number + Y + + + reclassification + reclassification + Y + + + kind + kind + Y + + + transfer_to_court + transfer_to_court + Y + + + court_name + court_name + Y + + + case_number_court + case_number_court + Y + + + law_point + law_point + Y + + + authority_name + authority_name + Y + + + conviction_removal_basis + conviction_removal_basis + Y + + + conviction_removal_date + conviction_removal_date + Y + + + conviction_date + conviction_date + Y + + + create_date + create_date + Y + + + termination_basis + termination_basis + Y + + + conviction_status + conviction_status + Y + + + close_date + close_date + Y + + + sled_sud_tekst_sved_tekst + sled_sud_tekst_sved_tekst + Y + + + sled_sud_tekst_status_naim + sled_sud_tekst_status_naim + Y + + + type_info + type_info + Y + +
+ N + + + 768 + 944 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH +ugolov_presl AS ( + SELECT + jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS up, + ri.recruit_id + FROM ervu_dashboard.recruits_info ri + JOIN ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id + AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= ri.created_at + WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' +) +SELECT + r.recruit_id AS recruit_id, + (up->>'id')::uuid AS prosecution_external_id, + NULLIF(up->'sledSud'->>'uk', '') AS uk_name, + NULLIF(up->'sledSud'->'extend'->>'nomerUDPredv', '') AS case_number, + NULLIF(up->'sledSud'->'extend'->>'svedPerekvalif', '') AS reclassification, + NULLIF(up->'sledSud'->'extend'->>'naimVidUgolovPresl', '') AS kind, + CASE + WHEN up->'sledSud'->'extend'->>'priznakPeredachSud' = '1' THEN true + ELSE false -- нет или нет инфы + END AS transfer_to_court, + NULLIF(up->'sledSud'->>'naimSud','') AS court_name, + NULLIF(up->'sledSud'->>'nomerUD','') AS case_number_court, + STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, + NULLIF(up->'sledSud'->>'naimOrgan', '') AS authority_name, + NULLIF(up->'sledSud'->'svedSnyat'->>'osnSnyatSud', '') AS conviction_removal_basis, + TO_DATE(up->'sledSud'->'svedSnyat'->>'dataSnyatSud', 'YYYY-MM-DD') AS conviction_removal_date, + TO_DATE(up->'sledSud'->>'dataOsuzhd', 'YYYY-MM-DD') AS conviction_date, + TO_DATE(up->'sledSud'->>'dataVozbUD', 'YYYY-MM-DD') AS create_date, + NULLIF(up->'sledSud'->>'osnPrekrUD', '') AS termination_basis, + NULLIF(up->'sledSud'->>'statusNaim', '') AS conviction_status, + TO_DATE(up->'sledSud'->>'dataPrekrUD', 'YYYY-MM-DD') AS close_date, + NULLIF(up->'sledSudTekst'->>'svedTekst' , '') AS sled_sud_tekst_sved_tekst, + NULLIF(up->'sledSudTekst'->>'statusNaim', '') AS sled_sud_tekst_status_naim, + CASE + WHEN (up->>'sledSud') IS NOT NULL AND up->>'sledSud' != 'null' THEN 'Сведения о фактах уголовного преследования или судимости в структурированном формате' + WHEN (up->>'sledSudTekst') IS NOT NULL AND up->>'sledSudTekst' != 'null' THEN 'Сведения о фактах уголовного преследования или судимости в текстовом виде' + ELSE 'Есть сведения о фактах уголовного преследования или судимости без указания подробностей' + END AS type_info +FROM ervu_dashboard.citizen r + JOIN ugolov_presl up ON r.recruit_id = up.recruit_id + LEFT JOIN LATERAL jsonb_array_elements_text(up->'sledSud'->'statiUK') AS law(f) ON true +GROUP BY r.recruit_id, up; + Y + + + 416 + 944 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + N + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_criminal_prosecution + has_criminal_prosecution + +
+ N + Y + + + 976 + 576 + +
+ + + Insert / update + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/prosecution/prosecution_job.hwf b/mappings/info_recruits/citizen_tables/prosecution/prosecution_job.hwf new file mode 100644 index 0000000..1471460 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/prosecution/prosecution_job.hwf @@ -0,0 +1,364 @@ + + + prosecution_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 224 + 304 + + + + check_if_prosecution_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/checkpoints/check_if_prosecution_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 304 + + + + prosecution_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 688 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 928 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/recruitment_five_flow_on_error.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 928 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/check_if_need_to_repeat_job.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 688 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 688 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/recruitment_five_flow_delta.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 688 + 800 + + + + + + Start + check_if_prosecution_job_exists.hpl + Y + Y + Y + + + check_if_prosecution_job_exists.hpl + prosecution_job_exists_check + Y + Y + N + + + prosecution_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + prosecution_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 800 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 800 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 608 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + prosecution_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 114 + + + + diff --git a/mappings/info_recruits/citizen_tables/prosecution/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/prosecution/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..6585d53 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/prosecution/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + prosecution_flow_delta.hpl + Y + + + Table input + prosecution_flow_delta.hpl 2 + Y + + + Table input + prosecution_flow_delta.hpl 3 + Y + + + Table input + prosecution_flow_delta.hpl 4 + Y + + + Table input + prosecution_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'prosecution_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + prosecution_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 128 + + + + prosecution_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 208 + + + + prosecution_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 288 + + + + prosecution_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 368 + + + + prosecution_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/prosecution/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/prosecution/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..633bf36 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/prosecution/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + prosecution_flow_repeat.hpl + Y + + + Table input + prosecution_flow_repeat.hpl 3 + Y + + + Table input + prosecution_flow_repeat.hpl 2 + Y + + + Table input + prosecution_flow_repeat.hpl 4 + Y + + + Table input + prosecution_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'prosecution_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + prosecution_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 208 + + + + prosecution_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 288 + + + + prosecution_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 368 + + + + prosecution_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 448 + + + + prosecution_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 464 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/prosecution/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/prosecution/recruitments_five_flow.hpl new file mode 100644 index 0000000..2d2c4ac --- /dev/null +++ b/mappings/info_recruits/citizen_tables/prosecution/recruitments_five_flow.hpl @@ -0,0 +1,356 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + prosecution_flow.hpl + Y + + + Get all recruitments ordered by created_date + prosecution_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + prosecution_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + prosecution_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + prosecution_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment; + N + + + 432 + 304 + + + + prosecution_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 144 + + + + prosecution_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 224 + + + + prosecution_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 304 + + + + prosecution_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 384 + + + + prosecution_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/prosecution/parallel/prosecution_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + prosecution_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn_delta.hpl b/mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn_delta.hpl deleted file mode 100644 index 0415b07..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn_delta.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - branching_snils_inn_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 09:54:43.724 - - - 2025/06/09 09:54:43.724 - - - - - - Set variables 2 - Write to log 2 - N - - - Table input - Set variables 2 - Y - - - - Set variables 2 - SetVariable - - Y - - 1 - - none - - - - - pipeline - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW - - - Y - - - 1056 - 256 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - COALESCE(job_name, 'job_snils_inn_delta') AS PIPELINE, - COALESCE(status, 'ERROR') AS STATUS, - current_timestamp::timestamp as record_created -FROM ( - select - CASE - WHEN status = 'PROCESSING' THEN 'ERROR' - ELSE status - END AS status, - job_name - from public.etl_checkpoints - where job_name = 'job_snils_inn_delta' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_snils_inn_delta' - ) -) t - N - - - 816 - 256 - - - - Write to log 2 - WriteToLog - - Y - - 1 - - none - - - Y - - - pipeline - - - status - - - N - 0 - Basic - ${PIPE} -${STATUS} - - - 1280 - 256 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/snils_inn/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/snils_inn/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..406fb97 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/snils_inn/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'recruits_info_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_error.hpl deleted file mode 100644 index 272ccc9..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_snils_inn_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow1' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_success.hpl deleted file mode 100644 index 60a3e53..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_snils_inn_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow1' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_error.hpl deleted file mode 100644 index c2dbe25..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_error.hpl +++ /dev/null @@ -1,102 +0,0 @@ - - - - change_status_delta_snils_inn_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow2' as job_name, - 'ERROR' as status, - current_timestamp as record_created - - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_success.hpl deleted file mode 100644 index 549321d..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_snils_inn_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow2' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_error.hpl deleted file mode 100644 index 681da71..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_snils_inn_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow3' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_success.hpl deleted file mode 100644 index 2f7cad3..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_snils_inn_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow3' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_error.hpl deleted file mode 100644 index 13ffe89..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_snils_inn_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow4' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_success.hpl deleted file mode 100644 index 552dbf7..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_snils_inn_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow4' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_error.hpl deleted file mode 100644 index 93465e3..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_error.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_snils_inn_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow5' as job_name, - 'ERROR' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_success.hpl deleted file mode 100644 index c961ab0..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_success.hpl +++ /dev/null @@ -1,101 +0,0 @@ - - - - change_status_delta_snils_inn_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 12:20:06.191 - - - 2025/06/16 12:20:06.191 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'delta_snils_inn_flow5' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - N - - - 784 - 304 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_error.hpl deleted file mode 100644 index 5bfe2fe..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_error.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_snils_inn_flow1_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'snils_inn_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_success.hpl deleted file mode 100644 index f6b19c4..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_success.hpl +++ /dev/null @@ -1,250 +0,0 @@ - - - - change_status_snils_inn_flow1_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--, -/* - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, -/* - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( - SELECT - 'snils_inn_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_error.hpl deleted file mode 100644 index 1c08c6d..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_error.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_snils_inn_flow2_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'snils_inn_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_success.hpl deleted file mode 100644 index 5a31299..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_success.hpl +++ /dev/null @@ -1,254 +0,0 @@ - - - - change_status_snils_inn_flow2_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--, -/* - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, -*/ - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2--, -/* - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'snils_inn_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_error.hpl deleted file mode 100644 index 8955f9a..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_error.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_snils_inn_flow3_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'snils_inn_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_success.hpl deleted file mode 100644 index 1784e80..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_success.hpl +++ /dev/null @@ -1,255 +0,0 @@ - - - - change_status_snils_inn_flow3_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, -*/ - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--, -/* - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, -*/ - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3--, -/* - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'snils_inn_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_error.hpl deleted file mode 100644 index 164d123..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_snils_inn_flow4_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'snils_inn_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_success.hpl deleted file mode 100644 index d5f76cd..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_snils_inn_flow4_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, -*/ - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -/* - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 -*/ - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1--, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, -*/ - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4--, -/* - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 -*/ - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'snils_inn_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -/* - union all - - SELECT - 'job_citizen_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max -*/ -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_error.hpl deleted file mode 100644 index 9763f85..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_error.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_snils_inn_flow5_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'snils_inn_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_success.hpl deleted file mode 100644 index 72af375..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_success.hpl +++ /dev/null @@ -1,256 +0,0 @@ - - - - change_status_snils_inn_flow5_success - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 09:14:18.787 - - - 2025/06/16 09:14:18.787 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - last_recruitment_id - last_recruitment_id - Y - - - record_created - record_created - Y - - - recruitment_created_date - recruitment_created_date - Y - - - status - status - Y - -
- N - - - 1056 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT -/* - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--, -*/ - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - - FROM flow_data -), -result_max as ( --костыль - SELECT -/* - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, -*/ - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - - FROM result_ma -), -for_checkpoints as ( -/* - SELECT - 'job_citizen_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_citizen_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - - union all -*/ - SELECT - 'snils_inn_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'SUCCESS' as status, - current_timestamp as record_created - from result_max - -) -select * from for_checkpoints - N - - - 688 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing.hpl deleted file mode 100644 index d0e503c..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - change_status_to_processing - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/11 16:14:31.162 - - - 2025/06/11 16:14:31.162 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 784 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'job_snils_inn' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'snils_inn_flow1' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'snils_inn_flow2' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'snils_inn_flow3' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'snils_inn_flow4' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - -UNION ALL - -SELECT - 'PROCESSING' AS status, - 'snils_inn_flow5' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 368 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing_delta.hpl deleted file mode 100644 index 6ace1f9..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing_delta.hpl +++ /dev/null @@ -1,102 +0,0 @@ - - - - change_status_to_processing_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/16 13:42:26.494 - - - 2025/06/16 13:42:26.494 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1248 - 352 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - 'PROCESSING' AS status, - 'delta_snils_inn' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints - N - - - 832 - 352 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_snils_inn_job_exists.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_snils_inn_job_exists.hpl new file mode 100644 index 0000000..de2d8fd --- /dev/null +++ b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_snils_inn_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_snils_inn_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'snils_inn_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl deleted file mode 100644 index 1403bee..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl +++ /dev/null @@ -1,869 +0,0 @@ - - - - checkpoint_job_snils_inn - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 14:19:02.590 - - - 2025/06/03 14:19:02.590 - - - - - - Filter rows - Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update - Y - - - Dummy (do nothing) - JSON input state_child_flow1.json - N - - - Dummy (do nothing) - JSON input state_child_flow2.json - N - - - Dummy (do nothing) - JSON input state_child_flow3.json - N - - - Dummy (do nothing) - JSON input state_child_flow4.json - N - - - Dummy (do nothing) - JSON input state_child_flow5.json - N - - - - Abort - Abort - - Y - - 1 - - none - - - ABORT_WITH_ERROR - Y - 0 - - - 1264 - 592 - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - - - Filter rows - FilterRows - - Y - - 1 - - none - - - - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow1 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow2 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow3 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow4 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow5 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - Abort - - - 944 - 592 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 432 - - - - JSON input state_child_flow2.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 512 - - - - JSON input state_child_flow3.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 592 - - - - JSON input state_child_flow4.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 672 - - - - JSON input state_child_flow5.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 752 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'snils_inn_flow1', - 'snils_inn_flow2', - 'snils_inn_flow3', - 'snils_inn_flow4', - 'snils_inn_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'snils_inn_flow1', - 'snils_inn_flow2', - 'snils_inn_flow3', - 'snils_inn_flow4', - 'snils_inn_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_snils_inn' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn_delta.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn_delta.hpl deleted file mode 100644 index 100f8e1..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn_delta.hpl +++ /dev/null @@ -1,869 +0,0 @@ - - - - checkpoint_job_snils_inn_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 14:19:02.590 - - - 2025/06/03 14:19:02.590 - - - - - - Filter rows - Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update - Y - - - Dummy (do nothing) - JSON input state_child_flow1.json - N - - - Dummy (do nothing) - JSON input state_child_flow2.json - N - - - Dummy (do nothing) - JSON input state_child_flow3.json - N - - - Dummy (do nothing) - JSON input state_child_flow4.json - N - - - Dummy (do nothing) - JSON input state_child_flow5.json - N - - - - Abort - Abort - - Y - - 1 - - none - - - ABORT_WITH_ERROR - Y - 0 - - - 1264 - 592 - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - - - Filter rows - FilterRows - - Y - - 1 - - none - - - - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow1 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow2 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow3 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow4 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - - - - - = - pipeline - N - - - - N - -1 - constant - -1 - child_flow5 - String - - - - - - = - status - N - AND - - N - -1 - constant - -1 - ERROR - String - - - - = - pipeline - N - OR - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - = - pipeline - N - - - - N - -1 - constant - -1 - recruits_info_flow1 - String - - - - Abort - - - 944 - 592 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 432 - - - - JSON input state_child_flow2.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 512 - - - - JSON input state_child_flow3.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 592 - - - - JSON input state_child_flow4.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 672 - - - - JSON input state_child_flow5.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 640 - 752 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'delta_snils_inn_flow1', - 'delta_snils_inn_flow2', - 'delta_snils_inn_flow3', - 'delta_snils_inn_flow4', - 'delta_snils_inn_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'delta_snils_inn_flow1', - 'delta_snils_inn_flow2', - 'delta_snils_inn_flow3', - 'delta_snils_inn_flow4', - 'delta_snils_inn_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_snils_inn_delta' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_snils_inn_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_snils_inn_error.hpl deleted file mode 100644 index 0d9cb80..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_snils_inn_error.hpl +++ /dev/null @@ -1,273 +0,0 @@ - - - - checkpoint_snils_inn_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/09 10:01:04.895 - - - 2025/06/09 10:01:04.895 - - - - - - Select values - Table output - N - - - Table input - Select values - N - - - Table input - Table output - Y - - - - Select values - SelectValues - - Y - - 1 - - none - - - - N - - idm_id - idm_id - String - -2 - -2 - - false - - - false - - - - - - - - - - 1008 - 608 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num - FROM ordered -), -flow_ranges AS ( - SELECT - flow_num, - MIN(created_at) AS min_date, - MAX(created_at) AS max_date - FROM splitted - GROUP BY flow_num -), -recr_inf AS ( - SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id - FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id -), -flow_data AS ( - SELECT - fr.flow_num, - ri.idm_id, - (SELECT r.created_at FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - AND r.created_at BETWEEN fr.min_date AND fr.max_date - LIMIT 1) AS created_at - FROM recr_inf ri - CROSS JOIN flow_ranges fr - WHERE EXISTS ( - SELECT 1 FROM ervu_dashboard.recruitment r - WHERE r.idm_id = ri.idm_id - ) -), -result_ma as ( - SELECT - MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, - (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, - - MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, - (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, - - MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, - (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, - - MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, - (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, - - MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, - (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 - FROM flow_data -), -result_max as ( --костыль - SELECT - CASE - WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow1 - END AS cr_flow1, - idm_flow1, - CASE - WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow2 - END AS cr_flow2, - idm_flow2, - CASE - WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow3 - END AS cr_flow3, - idm_flow3, - CASE - WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow4 - END AS cr_flow4, - idm_flow4, - CASE - WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp - ELSE cr_flow5 - END AS cr_flow5, - idm_flow5 - FROM result_ma -), -for_checkpoints as ( - SELECT - 'job_child_flow1' as job_name, - idm_flow1 as last_recruitment_id, - cr_flow1 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow2' as job_name, - idm_flow2 as last_recruitment_id, - cr_flow2 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow3' as job_name, - idm_flow3 as last_recruitment_id, - cr_flow3 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow4' as job_name, - idm_flow4 as last_recruitment_id, - cr_flow4 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max - - union all - - SELECT - 'job_child_flow5' as job_name, - idm_flow5 as last_recruitment_id, - cr_flow5 as recruitment_created_date, - 'ERROR' as status, - current_timestamp as record_created - from result_max -) -select * from for_checkpoints - N - - - 736 - 448 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - public - N - etl_checkpoints
- N - Y - N - Y - - - 1248 - 448 - -
- - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/job_snils_inn.hwf b/mappings/info_recruits/citizen_tables/snils_inn/job_snils_inn.hwf deleted file mode 100644 index c94e531..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/job_snils_inn.hwf +++ /dev/null @@ -1,2516 +0,0 @@ - - - job_snils_inn - Y - - - - 0 - - - 2025/06/05 14:27:15.055 - - - 2025/06/05 14:27:15.055 - - - M_R_CR_DATE - 3001-01-01 00:00:00 - - - - M_R_UP_DATE - - - - - - - Start - - SPECIAL - - 1 - 12 - 60 - 0 - 0 - N - 0 - 1 - N - 368 - 400 - - - - checkpoint_job_snils_inn.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl - Basic - - Y - - N - local - N - N - Y - N - 1136 - 1280 - - - - recruitment_rows_five_flow_snils_inn.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_snils_inn.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2352 - 400 - - - - snils_inn_flow1.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2672 - 80 - - - - snils_inn_flow2.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2672 - 240 - - - - snils_inn_flow3.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2672 - 400 - - - - snils_inn_flow4.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2672 - 560 - - - - snils_inn_flow5.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2672 - 720 - - - - Abort workflow - - ABORT - - N - N - 2336 - 208 - - - - Success new snils_inn - - SUCCESS - - N - 3728 - 432 - - - - branching_snils_inn.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/branching_snils_inn.hpl - Basic - - Y - - N - local - N - N - Y - N - 1584 - 1280 - - - - Simple snils_inn WHERE SUCCESS - - SIMPLE_EVAL - - SUCCESS - string - true - equal - equal - N - variable - STATUS - N - 1696 - 1680 - - - - Simple snils_inn WHERE ERROR - - SIMPLE_EVAL - - ERROR - string - true - equal - equal - N - variable - STATUS - N - 1840 - 1280 - - - - recruitment_rows_five_flow_if_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/recruitment_rows_five_flow_if_error.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2384 - 1280 - - - - Abort workflow 2 - - ABORT - - N - N - 2288 - 1040 - - - - delta_snils_inn_flow1.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow1.hpl - - - Basic - - - M_R_UP_DATE - - ${M_R_UP_DATE} - - - ID_F1 - IDM_FLOW1 - - - Y - - Y - local - N - N - Y - N - 2640 - 1792 - - - - check_if_job_snils_inn_exists.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_job_snils_inn_exists.hpl - Basic - - Y - - N - local - N - N - Y - N - 576 - 400 - - - - Simple job_snils_inn_exists check NEW - - SIMPLE_EVAL - - NEW - string - true - equal - equal - N - variable - STATUS - N - 896 - 400 - - - - change_status_to_processing.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 2368 - 560 - - - - change_status_snils_inn_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 80 - - - - change_status_snils_inn_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 160 - - - - change_status_snils_inn_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 240 - - - - change_status_snils_inn_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 320 - - - - change_status_snils_inn_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 400 - - - - change_status_snils_inn_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 480 - - - - change_status_snils_inn_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 560 - - - - change_status_snils_inn_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 640 - - - - change_status_snils_inn_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 720 - - - - change_status_snils_inn_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 800 - - - - checkpoint_job_snils_inn.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl - Basic - - Y - - N - local - N - N - Y - N - 3456 - 432 - - - - change_status_to_processing.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 2368 - 1424 - - - - change_status_to_processing_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 2384 - 2304 - - - - change_status_delta_snils_inn_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_success.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1792 - - - - change_status_delta_snils_inn_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1872 - - - - snils_inn_flow1.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2672 - 960 - - - - snils_inn_flow2.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2672 - 1120 - - - - snils_inn_flow3.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2672 - 1280 - - - - snils_inn_flow4.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2672 - 1440 - - - - snils_inn_flow5.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2672 - 1600 - - - - Success snils_inn after error - - SUCCESS - - N - 3728 - 1312 - - - - change_status_snils_inn_flow1_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 960 - - - - change_status_snils_inn_flow1_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1040 - - - - change_status_snils_inn_flow2_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1120 - - - - change_status_snils_inn_flow2_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1200 - - - - change_status_snils_inn_flow3_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1280 - - - - change_status_snils_inn_flow3_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1360 - - - - change_status_snils_inn_flow4_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1440 - - - - change_status_snils_inn_flow4_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1520 - - - - change_status_snils_inn_flow5_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1600 - - - - change_status_snils_inn_flow5_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1680 - - - - checkpoint_job_snils_inn.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl - Basic - - Y - - N - local - N - N - Y - N - 3456 - 1312 - - - - recruitment_rows_five_flow_snils_inn.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_snils_inn.hpl - Basic - - Y - - N - local - N - N - Y - Y - 2352 - 2112 - - - - Abort workflow 2 2 - - ABORT - - N - N - 2336 - 1952 - - - - delta_snils_inn_flow2.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow2.hpl - - - Basic - - - M_R_UP_DATE - - ${M_R_UP_DATE} - - - ID_F2 - IDM_FLOW2 - - - Y - - Y - local - N - N - Y - N - 2640 - 1952 - - - - change_status_delta_snils_inn_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_success.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1952 - - - - change_status_delta_snils_inn_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_error.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2032 - - - - delta_snils_inn_flow3.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow3.hpl - - - Basic - - - M_R_UP_DATE - - ${M_R_UP_DATE} - - - ID_F3 - IDM_FLOW3 - - - Y - - Y - local - N - N - Y - N - 2640 - 2112 - - - - change_status_delta_snils_inn_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_success.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2112 - - - - change_status_delta_snils_inn_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_error.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2192 - - - - delta_snils_inn_flow4.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow4.hpl - - - Basic - - - M_R_UP_DATE - - ${M_R_UP_DATE} - - - ID_F4 - IDM_FLOW4 - - - Y - - Y - local - N - N - Y - N - 2640 - 2272 - - - - change_status_delta_snils_inn_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_success.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2272 - - - - change_status_delta_snils_inn_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_error.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2352 - - - - delta_snils_inn_flow5.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow5.hpl - - - Basic - - - M_R_UP_DATE - - ${M_R_UP_DATE} - - - ID_F5 - IDM_FLOW5 - - - Y - - Y - local - N - N - Y - N - 2640 - 2432 - - - - change_status_delta_snils_inn_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_success.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2432 - - - - change_status_delta_snils_inn_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_error.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 2992 - 2512 - - - - branching_snils_inn_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/branching_snils_inn_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 1824 - 2112 - - - - Simple delta_snils_inn WHERE ERROR - - SIMPLE_EVAL - - ERROR - string - true - equal - equal - N - variable - STATUS - N - 2064 - 2112 - - - - delta_snils_inn success - - SUCCESS - - N - 2160 - 1952 - - - - checkpoint_job_snils_inn_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 3440 - 2112 - - - - Success delta_snils_inn - - SUCCESS - - N - 3728 - 2112 - - - - - - recruitment_rows_five_flow_snils_inn.hpl - snils_inn_flow1.hpl - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl - snils_inn_flow2.hpl - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl - snils_inn_flow3.hpl - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl - snils_inn_flow4.hpl - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl - snils_inn_flow5.hpl - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl - Abort workflow - Y - N - N - - - branching_snils_inn.hpl - Simple snils_inn WHERE ERROR - Y - N - Y - - - branching_snils_inn.hpl - Simple snils_inn WHERE SUCCESS - Y - N - Y - - - recruitment_rows_five_flow_if_error.hpl - Abort workflow 2 - Y - N - N - - - Start - check_if_job_snils_inn_exists.hpl - Y - Y - Y - - - check_if_job_snils_inn_exists.hpl - Simple job_snils_inn_exists check NEW - Y - Y - N - - - snils_inn_flow1.hpl - change_status_snils_inn_flow1_success.hpl - Y - Y - N - - - snils_inn_flow1.hpl - change_status_snils_inn_flow1_error.hpl - Y - N - N - - - snils_inn_flow2.hpl - change_status_snils_inn_flow2_success.hpl - Y - Y - N - - - snils_inn_flow2.hpl - change_status_snils_inn_flow2_error.hpl - Y - N - N - - - snils_inn_flow3.hpl - change_status_snils_inn_flow3_success.hpl - Y - Y - N - - - snils_inn_flow3.hpl - change_status_snils_inn_flow3_error.hpl - Y - N - N - - - snils_inn_flow4.hpl - change_status_snils_inn_flow4_success.hpl - Y - Y - N - - - snils_inn_flow4.hpl - change_status_snils_inn_flow4_error.hpl - Y - N - N - - - snils_inn_flow5.hpl - change_status_snils_inn_flow5_success.hpl - Y - Y - N - - - snils_inn_flow5.hpl - change_status_snils_inn_flow5_error.hpl - Y - N - N - - - change_status_snils_inn_flow5_error.hpl - checkpoint_job_snils_inn.hpl - Y - N - Y - - - change_status_snils_inn_flow5_success.hpl - checkpoint_job_snils_inn.hpl - Y - N - Y - - - change_status_snils_inn_flow4_error.hpl - checkpoint_job_snils_inn.hpl - Y - N - Y - - - change_status_snils_inn_flow4_success.hpl - checkpoint_job_snils_inn.hpl - Y - N - Y - - - change_status_snils_inn_flow3_error.hpl - checkpoint_job_snils_inn.hpl - Y - N - Y - - - change_status_snils_inn_flow3_success.hpl - checkpoint_job_snils_inn.hpl - Y - N - Y - - - change_status_snils_inn_flow2_error.hpl - checkpoint_job_snils_inn.hpl - Y - N - Y - - - change_status_snils_inn_flow2_success.hpl - checkpoint_job_snils_inn.hpl - Y - N - Y - - - change_status_snils_inn_flow1_error.hpl - checkpoint_job_snils_inn.hpl - Y - N - Y - - - change_status_snils_inn_flow1_success.hpl - checkpoint_job_snils_inn.hpl - Y - N - Y - - - checkpoint_job_snils_inn.hpl - Success new snils_inn - Y - Y - N - - - checkpoint_job_snils_inn.hpl (2) - branching_snils_inn.hpl - Y - N - Y - - - Simple job_snils_inn_exists check NEW - checkpoint_job_snils_inn.hpl (2) - Y - N - N - - - delta_snils_inn_flow1.hpl - change_status_delta_snils_inn_flow1_success.hpl - Y - Y - N - - - delta_snils_inn_flow1.hpl - change_status_delta_snils_inn_flow1_error.hpl - Y - N - N - - - snils_inn_flow1.hpl 2 - change_status_snils_inn_flow1_success.hpl 2 - Y - Y - N - - - snils_inn_flow1.hpl 2 - change_status_snils_inn_flow1_error.hpl 2 - Y - N - N - - - snils_inn_flow2.hpl 2 - change_status_snils_inn_flow2_success.hpl 2 - Y - Y - N - - - snils_inn_flow2.hpl 2 - change_status_snils_inn_flow2_error.hpl 2 - Y - N - N - - - snils_inn_flow3.hpl 2 - change_status_snils_inn_flow3_success.hpl 2 - Y - Y - N - - - snils_inn_flow3.hpl 2 - change_status_snils_inn_flow3_error.hpl 2 - Y - N - N - - - snils_inn_flow4.hpl 2 - change_status_snils_inn_flow4_success.hpl 2 - Y - Y - N - - - snils_inn_flow4.hpl 2 - change_status_snils_inn_flow4_error.hpl 2 - Y - N - N - - - snils_inn_flow5.hpl 2 - change_status_snils_inn_flow5_success.hpl 2 - Y - Y - N - - - snils_inn_flow5.hpl 2 - change_status_snils_inn_flow5_error.hpl 2 - Y - N - N - - - change_status_snils_inn_flow1_success.hpl 2 - checkpoint_job_snils_inn.hpl 2 - Y - N - Y - - - change_status_snils_inn_flow1_error.hpl 2 - checkpoint_job_snils_inn.hpl 2 - Y - N - Y - - - change_status_snils_inn_flow2_success.hpl 2 - checkpoint_job_snils_inn.hpl 2 - Y - N - Y - - - change_status_snils_inn_flow2_error.hpl 2 - checkpoint_job_snils_inn.hpl 2 - Y - N - Y - - - change_status_snils_inn_flow3_success.hpl 2 - checkpoint_job_snils_inn.hpl 2 - Y - N - Y - - - change_status_snils_inn_flow3_error.hpl 2 - checkpoint_job_snils_inn.hpl 2 - Y - N - Y - - - change_status_snils_inn_flow4_success.hpl 2 - checkpoint_job_snils_inn.hpl 2 - Y - N - Y - - - change_status_snils_inn_flow4_error.hpl 2 - checkpoint_job_snils_inn.hpl 2 - Y - N - Y - - - change_status_snils_inn_flow5_success.hpl 2 - checkpoint_job_snils_inn.hpl 2 - Y - N - Y - - - change_status_snils_inn_flow5_error.hpl 2 - checkpoint_job_snils_inn.hpl 2 - Y - N - Y - - - checkpoint_job_snils_inn.hpl 2 - Success snils_inn after error - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - snils_inn_flow3.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - snils_inn_flow2.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - snils_inn_flow1.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - snils_inn_flow4.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - snils_inn_flow5.hpl 2 - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl - change_status_to_processing.hpl - Y - Y - N - - - Simple job_snils_inn_exists check NEW - recruitment_rows_five_flow_snils_inn.hpl - Y - Y - N - - - recruitment_rows_five_flow_if_error.hpl - change_status_to_processing.hpl (2) - Y - Y - N - - - Simple snils_inn WHERE ERROR - recruitment_rows_five_flow_if_error.hpl - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl 2 - delta_snils_inn_flow1.hpl - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl 2 - change_status_to_processing_delta.hpl - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl 2 - Abort workflow 2 2 - Y - N - N - - - delta_snils_inn_flow2.hpl - change_status_delta_snils_inn_flow2_success.hpl - Y - Y - N - - - delta_snils_inn_flow2.hpl - change_status_delta_snils_inn_flow2_error.hpl - Y - N - N - - - delta_snils_inn_flow3.hpl - change_status_delta_snils_inn_flow3_success.hpl - Y - Y - N - - - delta_snils_inn_flow3.hpl - change_status_delta_snils_inn_flow3_error.hpl - Y - N - N - - - delta_snils_inn_flow4.hpl - change_status_delta_snils_inn_flow4_success.hpl - Y - Y - N - - - delta_snils_inn_flow4.hpl - change_status_delta_snils_inn_flow4_error.hpl - Y - N - N - - - delta_snils_inn_flow5.hpl - change_status_delta_snils_inn_flow5_success.hpl - Y - Y - N - - - delta_snils_inn_flow5.hpl - change_status_delta_snils_inn_flow5_error.hpl - Y - N - N - - - recruitment_rows_five_flow_snils_inn.hpl 2 - delta_snils_inn_flow3.hpl - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl 2 - delta_snils_inn_flow2.hpl - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl 2 - delta_snils_inn_flow4.hpl - Y - Y - N - - - recruitment_rows_five_flow_snils_inn.hpl 2 - delta_snils_inn_flow5.hpl - Y - Y - N - - - Simple snils_inn WHERE SUCCESS - branching_snils_inn_delta.hpl - Y - Y - N - - - Simple delta_snils_inn WHERE ERROR - delta_snils_inn success - Y - N - N - - - branching_snils_inn_delta.hpl - Simple delta_snils_inn WHERE ERROR - Y - Y - N - - - Simple delta_snils_inn WHERE ERROR - recruitment_rows_five_flow_snils_inn.hpl 2 - Y - Y - N - - - change_status_delta_snils_inn_flow1_success.hpl - checkpoint_job_snils_inn_delta.hpl - Y - Y - N - - - change_status_delta_snils_inn_flow3_success.hpl - checkpoint_job_snils_inn_delta.hpl - Y - Y - N - - - change_status_delta_snils_inn_flow2_error.hpl - checkpoint_job_snils_inn_delta.hpl - Y - Y - N - - - change_status_delta_snils_inn_flow2_success.hpl - checkpoint_job_snils_inn_delta.hpl - Y - Y - N - - - change_status_delta_snils_inn_flow1_error.hpl - checkpoint_job_snils_inn_delta.hpl - Y - Y - N - - - change_status_delta_snils_inn_flow3_error.hpl - checkpoint_job_snils_inn_delta.hpl - Y - Y - N - - - change_status_delta_snils_inn_flow4_success.hpl - checkpoint_job_snils_inn_delta.hpl - Y - Y - N - - - change_status_delta_snils_inn_flow4_error.hpl - checkpoint_job_snils_inn_delta.hpl - Y - Y - N - - - change_status_delta_snils_inn_flow5_success.hpl - checkpoint_job_snils_inn_delta.hpl - Y - Y - N - - - change_status_delta_snils_inn_flow5_error.hpl - checkpoint_job_snils_inn_delta.hpl - Y - Y - N - - - checkpoint_job_snils_inn_delta.hpl - Success delta_snils_inn - Y - Y - N - - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 72 - 1088 - 176 - 0001-01-01 00:00:00 - -3001-01-01 00:00:00 - - 114 - - - - diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow1.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow1.hpl deleted file mode 100644 index fc9877b..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow1.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - delta_snils_inn_flow1 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update inn - Y - - - Table input - Insert / update snils - Y - - - - Insert / update inn - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - inn - - ervu_dashboard - inn
- - recruit_id - recruit_id - N - - - inn - inn - Y - - - actual - actual - Y - -
- N - - - 1184 - 320 - -
- - Insert / update snils - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - snils - - ervu_dashboard - snils
- - recruit_id - recruit_id - N - - - snils - snils - Y - - - actual - actual - Y - -
- N - - - 1184 - 480 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -base as ( - SELECT - ri.recruit_id, - ri.info - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку - --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp -) -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - true AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - false AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - true as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - false as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 - Y - - - 704 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow2.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow2.hpl deleted file mode 100644 index dc170be..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow2.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - delta_snils_inn_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update inn - Y - - - Table input - Insert / update snils - Y - - - - Insert / update inn - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - inn - - ervu_dashboard - inn
- - recruit_id - recruit_id - N - - - inn - inn - Y - - - actual - actual - Y - -
- N - - - 1184 - 320 - -
- - Insert / update snils - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - snils - - ervu_dashboard - snils
- - recruit_id - recruit_id - N - - - snils - snils - Y - - - actual - actual - Y - -
- N - - - 1184 - 480 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -base as ( - SELECT - ri.recruit_id, - ri.info - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку - --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp -) -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - true AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - false AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - true as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - false as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 - Y - - - 704 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow3.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow3.hpl deleted file mode 100644 index 9042d44..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow3.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - delta_snils_inn_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update inn - Y - - - Table input - Insert / update snils - Y - - - - Insert / update inn - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - inn - - ervu_dashboard - inn
- - recruit_id - recruit_id - N - - - inn - inn - Y - - - actual - actual - Y - -
- N - - - 1184 - 320 - -
- - Insert / update snils - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - snils - - ervu_dashboard - snils
- - recruit_id - recruit_id - N - - - snils - snils - Y - - - actual - actual - Y - -
- N - - - 1184 - 480 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -base as ( - SELECT - ri.recruit_id, - ri.info - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку - --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp -) -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - true AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - false AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - true as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - false as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 - Y - - - 704 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow4.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow4.hpl deleted file mode 100644 index 655073f..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow4.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - delta_snils_inn_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update inn - Y - - - Table input - Insert / update snils - Y - - - - Insert / update inn - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - inn - - ervu_dashboard - inn
- - recruit_id - recruit_id - N - - - inn - inn - Y - - - actual - actual - Y - -
- N - - - 1184 - 320 - -
- - Insert / update snils - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - snils - - ervu_dashboard - snils
- - recruit_id - recruit_id - N - - - snils - snils - Y - - - actual - actual - Y - -
- N - - - 1184 - 480 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -base as ( - SELECT - ri.recruit_id, - ri.info - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку - --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp -) -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - true AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - false AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - true as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - false as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 - Y - - - 704 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow5.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow5.hpl deleted file mode 100644 index f2ffc7a..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow5.hpl +++ /dev/null @@ -1,202 +0,0 @@ - - - - delta_snils_inn_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/06/03 16:10:48.509 - - - 2025/06/03 16:10:48.509 - - - - - - Table input - Insert / update inn - Y - - - Table input - Insert / update snils - Y - - - - Insert / update inn - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - inn - - ervu_dashboard - inn
- - recruit_id - recruit_id - N - - - inn - inn - Y - - - actual - actual - Y - -
- N - - - 1184 - 320 - -
- - Insert / update snils - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - snils - - ervu_dashboard - snils
- - recruit_id - recruit_id - N - - - snils - snils - Y - - - actual - actual - Y - -
- N - - - 1184 - 480 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -base as ( - SELECT - ri.recruit_id, - ri.info - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку - --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp -) -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - true AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - false AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - true as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - false as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 - Y - - - 704 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl new file mode 100644 index 0000000..b49a69f --- /dev/null +++ b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl @@ -0,0 +1,440 @@ + + + + snils_inn_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table input + Identify last row in a stream + Y + + + Insert / update snils + Filter rows + Y + + + Insert / update snils + Detect empty stream + Y + + + Insert / update snils + Change job status on error + Y + + + Identify last row in a stream + Insert / update inn + Y + + + Insert / update inn + Insert / update snils + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1376 + 512 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1024 + 512 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1632 + 160 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 288 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1632 + 320 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1024 + 160 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 672 + 320 + + + + Insert / update inn + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + IS NOT NULL + inn + + ervu_dashboard + inn
+ + recruit_id + recruit_id + N + + + inn + inn + Y + + + actual + actual + Y + +
+ N + + + 864 + 320 + +
+ + Insert / update snils + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + IS NOT NULL + snils + + ervu_dashboard + snils
+ + recruit_id + recruit_id + N + + + snils + snils + Y + + + actual + actual + Y + +
+ N + + + 1024 + 320 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + WITH +base as ( + SELECT + ri.recruit_id, + ri.info + FROM ervu_dashboard.recruits_info ri + join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= ri.created_at +) +SELECT + recruit_id, + null as inn, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, + true AS actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 + +UNION ALL + +SELECT + recruit_id, + null as inn, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, + false AS actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 + +UNION ALL + +SELECT + recruit_id, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, + null as snils, + true as actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 + +UNION ALL + +SELECT + recruit_id, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, + null as snils, + false as actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 + +${LIMIT_FW} + Y + + + 496 + 320 + + + + + Insert / update snils + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow1.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow1.hpl deleted file mode 100644 index 4515f7c..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow1.hpl +++ /dev/null @@ -1,208 +0,0 @@ - - - - snils_inn_flow1 - Y - - - - Normal - 0 - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update inn - Y - - - Table input - Insert / update snils - Y - - - - Insert / update inn - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - IS NOT NULL - inn - - - - ervu_dashboard - inn
- - recruit_id - recruit_id - N - - - inn - inn - Y - - - actual - actual - Y - -
- N - - - 928 - 208 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -base as ( - SELECT - ri.recruit_id, - ri.info - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -) -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - true AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - false AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - true as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - false as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 - Y - - - 448 - 288 - - - - Insert / update snils - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - IS NOT NULL - snils - - - - ervu_dashboard - snils
- - recruit_id - recruit_id - N - - - snils - snils - Y - - - actual - actual - Y - -
- N - - - 928 - 368 - -
- - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow2.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow2.hpl deleted file mode 100644 index 12d0170..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow2.hpl +++ /dev/null @@ -1,201 +0,0 @@ - - - - snils_inn_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update inn - Y - - - Table input - Insert / update snils - Y - - - - Insert / update inn - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - inn - - ervu_dashboard - inn
- - recruit_id - recruit_id - N - - - inn - inn - Y - - - actual - actual - Y - -
- N - - - 1152 - 320 - -
- - Insert / update snils - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - snils - - ervu_dashboard - snils
- - recruit_id - recruit_id - N - - - snils - snils - Y - - - actual - actual - Y - -
- N - - - 1152 - 480 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -base as ( - SELECT - ri.recruit_id, - ri.info - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -) -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - true AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - false AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - true as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - false as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 - Y - - - 672 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow3.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow3.hpl deleted file mode 100644 index d2fc08b..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow3.hpl +++ /dev/null @@ -1,201 +0,0 @@ - - - - snils_inn_flow3 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update inn - Y - - - Table input - Insert / update snils - Y - - - - Insert / update inn - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - inn - - ervu_dashboard - inn
- - recruit_id - recruit_id - N - - - inn - inn - Y - - - actual - actual - Y - -
- N - - - 1120 - 336 - -
- - Insert / update snils - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - snils - - ervu_dashboard - snils
- - recruit_id - recruit_id - N - - - snils - snils - Y - - - actual - actual - Y - -
- N - - - 1120 - 496 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -base as ( - SELECT - ri.recruit_id, - ri.info - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -) -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - true AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - false AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - true as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - false as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 - Y - - - 640 - 416 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow4.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow4.hpl deleted file mode 100644 index cbdc121..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow4.hpl +++ /dev/null @@ -1,201 +0,0 @@ - - - - snils_inn_flow4 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update inn - Y - - - Table input - Insert / update snils - Y - - - - Insert / update inn - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - inn - - ervu_dashboard - inn
- - recruit_id - recruit_id - N - - - inn - inn - Y - - - actual - actual - Y - -
- N - - - 1216 - 384 - -
- - Insert / update snils - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - snils - - ervu_dashboard - snils
- - recruit_id - recruit_id - N - - - snils - snils - Y - - - actual - actual - Y - -
- N - - - 1216 - 544 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -base as ( - SELECT - ri.recruit_id, - ri.info - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -) -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - true AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - false AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - true as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - false as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 - Y - - - 736 - 464 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow5.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow5.hpl deleted file mode 100644 index 6f1cadb..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow5.hpl +++ /dev/null @@ -1,201 +0,0 @@ - - - - snils_inn_flow5 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update inn - Y - - - Table input - Insert / update snils - Y - - - - Insert / update inn - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - inn - - ervu_dashboard - inn
- - recruit_id - recruit_id - N - - - inn - inn - Y - - - actual - actual - Y - -
- N - - - 1200 - 320 - -
- - Insert / update snils - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - IS NOT NULL - snils - - ervu_dashboard - snils
- - recruit_id - recruit_id - N - - - snils - snils - Y - - - actual - actual - Y - -
- N - - - 1200 - 480 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -base as ( - SELECT - ri.recruit_id, - ri.info - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at -) -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - true AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - null as inn, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, - false AS actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - true as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 - -UNION ALL - -SELECT - recruit_id, - REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, - null as snils, - false as actual -FROM base -WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 - Y - - - 720 - 400 - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl new file mode 100644 index 0000000..2b60dda --- /dev/null +++ b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl @@ -0,0 +1,445 @@ + + + + snils_inn_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Table input + Identify last row in a stream + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Identify last row in a stream + Insert / update inn + Y + + + Insert / update inn + Insert / update snils + Y + + + Insert / update snils + Filter rows + Y + + + Insert / update snils + Detect empty stream + Y + + + Insert / update snils + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1328 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1104 + 400 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1408 + 64 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 336 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1408 + 224 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1104 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 736 + 224 + + + + Insert / update inn + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + IS NOT NULL + inn + + ervu_dashboard + inn
+ + recruit_id + recruit_id + N + + + inn + inn + Y + + + actual + actual + Y + +
+ N + + + 928 + 224 + +
+ + Insert / update snils + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + IS NOT NULL + snils + + ervu_dashboard + snils
+ + recruit_id + recruit_id + N + + + snils + snils + Y + + + actual + actual + Y + +
+ N + + + 1104 + 224 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + + WITH +base as ( + SELECT + ri.recruit_id, + ri.info + FROM ervu_dashboard.recruits_info ri + join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + --AND '${M_R_CR_DATE}'::timestamp >= ri.created_at + AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp +) +SELECT + recruit_id, + null as inn, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, + true AS actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 + +UNION ALL + +SELECT + recruit_id, + null as inn, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, + false AS actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 + +UNION ALL + +SELECT + recruit_id, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, + null as snils, + true as actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 + +UNION ALL + +SELECT + recruit_id, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, + null as snils, + false as actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 + +${LIMIT_FW} + Y + + + 544 + 224 + + + + + Insert / update snils + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl new file mode 100644 index 0000000..fbfd0c3 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl @@ -0,0 +1,458 @@ + + + + snils_inn_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Table input + Identify last row in a stream + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update snils + Filter rows + Y + + + Insert / update snils + Detect empty stream + Y + + + Insert / update snils + Change job status on error + Y + + + Identify last row in a stream + Insert / update inn + Y + + + Insert / update inn + Insert / update snils + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1296 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1008 + 400 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1440 + 48 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1440 + 208 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1008 + 48 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 672 + 208 + + + + Insert / update inn + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + IS NOT NULL + inn + + ervu_dashboard + inn
+ + recruit_id + recruit_id + N + + + inn + inn + Y + + + actual + actual + Y + +
+ N + + + 848 + 208 + +
+ + Insert / update snils + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + IS NOT NULL + snils + + ervu_dashboard + snils
+ + recruit_id + recruit_id + N + + + snils + snils + Y + + + actual + actual + Y + +
+ N + + + 1008 + 208 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + WITH +base as ( + SELECT + ri.recruit_id, + ri.info + FROM ervu_dashboard.recruits_info ri + join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}'::timestamp >= ri.created_at +) +SELECT + recruit_id, + null as inn, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, + true AS actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 + +UNION ALL + +SELECT + recruit_id, + null as inn, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils, + false AS actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11 + +UNION ALL + +SELECT + recruit_id, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn, + null as snils, + true as actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12 + +UNION ALL + +SELECT + recruit_id, + REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn, + null as snils, + false as actual +FROM base +WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12 + +${LIMIT_FW} + Y + + + 480 + 208 + + + + + Insert / update snils + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..0183676 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + snils_inn_flow_delta.hpl + Y + + + Table input + snils_inn_flow_delta.hpl 2 + Y + + + Table input + snils_inn_flow_delta.hpl 3 + Y + + + Table input + snils_inn_flow_delta.hpl 4 + Y + + + Table input + snils_inn_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'snils_inn_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + snils_inn_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 128 + + + + snils_inn_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 208 + + + + snils_inn_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 288 + + + + snils_inn_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 368 + + + + snils_inn_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..e82e27f --- /dev/null +++ b/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + snils_inn_flow_repeat.hpl + Y + + + Table input + snils_inn_flow_repeat.hpl 2 + Y + + + Table input + snils_inn_flow_repeat.hpl 3 + Y + + + Table input + snils_inn_flow_repeat.hpl 4 + Y + + + Table input + snils_inn_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'snils_inn_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + snils_inn_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 480 + 208 + + + + snils_inn_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 480 + 288 + + + + snils_inn_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 480 + 368 + + + + snils_inn_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 480 + 448 + + + + snils_inn_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 480 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/snils_inn/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/recruitment_rows_five_flow_if_error.hpl deleted file mode 100644 index a4a5b8a..0000000 --- a/mappings/info_recruits/citizen_tables/snils_inn/recruitment_rows_five_flow_if_error.hpl +++ /dev/null @@ -1,185 +0,0 @@ - - - - recruitment_rows_five_flow_if_error - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/23 14:28:22.572 - - - 2025/05/23 14:28:22.572 - - - - - - Table input - Copy rows to result - Y - - - - Copy rows to result - RowsToResult - - Y - - 1 - - none - - - - - 880 - 288 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -fr_check AS ( - SELECT - last_recruitment_id AS recruitment_id, - recruitment_created_date, - status, - job_name - FROM public.etl_checkpoints - WHERE status = 'ERROR' AND job_name IN ('snils_inn_flow1', 'snils_inn_flow2', 'snils_inn_flow3', 'snils_inn_flow4', 'snils_inn_flow5') -), -ordered AS ( - SELECT - idm_id, - created_at, - ROW_NUMBER() OVER (ORDER BY created_at) AS rn, - COUNT(*) OVER () AS total_rows - FROM ervu_dashboard.recruitment -), -splitted AS ( - SELECT *, - CEIL(total_rows / 5.0) AS part_size, - FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, - ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position - FROM ordered -), -pivoted AS ( - SELECT - position, - MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow1') THEN created_at END) AS cr_flow1, - MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow1') THEN idm_id::text END) AS idm_flow1, - MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow2') THEN created_at END) AS cr_flow2, - MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow2') THEN idm_id::text END) AS idm_flow2, - MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow3') THEN created_at END) AS cr_flow3, - MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow3') THEN idm_id::text END) AS idm_flow3, - MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow4') THEN created_at END) AS cr_flow4, - MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow4') THEN idm_id::text END) AS idm_flow4, - MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow5') THEN created_at END) AS cr_flow5, - MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow5') THEN idm_id::text END) AS idm_flow5 - FROM splitted - GROUP BY position -), -remains as ( - SELECT - position, - cr_flow1, - idm_flow1::uuid, - cr_flow2, - idm_flow2::uuid, - cr_flow3, - idm_flow3::uuid, - cr_flow4, - idm_flow4::uuid, - cr_flow5, - idm_flow5::uuid - FROM pivoted - WHERE (cr_flow1 IS NOT NULL AND idm_flow1 IS NOT NULL) - OR (cr_flow2 IS NOT NULL AND idm_flow2 IS NOT NULL) - OR (cr_flow3 IS NOT NULL AND idm_flow3 IS NOT NULL) - OR (cr_flow4 IS NOT NULL AND idm_flow4 IS NOT NULL) - OR (cr_flow5 IS NOT NULL AND idm_flow5 IS NOT NULL) - order by position -), -idm1 as ( - select - cr_flow1, - idm_flow1 - from remains - where cr_flow1 is not null and idm_flow1 is not null -), -idm2 as ( - select - cr_flow2, - idm_flow2 - from remains - where cr_flow2 is not null and idm_flow2 is not null -), -idm3 as ( - select - cr_flow3, - idm_flow3 - from remains - where cr_flow3 is not null and idm_flow3 is not null -), -idm4 as ( - select - cr_flow4, - idm_flow4 - from remains - where cr_flow4 is not null and idm_flow4 is not null -), -idm5 as ( - select - cr_flow5, - idm_flow5 - from remains - where cr_flow5 is not null and idm_flow5 is not null -) -select - i1.*, - i2.*, - i3.*, - i4.*, - i5.* -FROM - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1 -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn -FULL OUTER JOIN - (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn -ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn) -limit 2 - N - - - 512 - 288 - - - - - - diff --git a/mappings/info_recruits/citizen_tables/snils_inn/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/snils_inn/recruitments_five_flow.hpl new file mode 100644 index 0000000..7f2a3b1 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/snils_inn/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + snils_inn_flow.hpl + Y + + + Get all recruitments ordered by created_date + snils_inn_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + snils_inn_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + snils_inn_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + snils_inn_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + snils_inn_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 144 + + + + snils_inn_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 224 + + + + snils_inn_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 304 + + + + snils_inn_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 384 + + + + snils_inn_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + snils_inn_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/snils_inn/snils_inn_job.hwf b/mappings/info_recruits/citizen_tables/snils_inn/snils_inn_job.hwf new file mode 100644 index 0000000..cbcdc63 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/snils_inn/snils_inn_job.hwf @@ -0,0 +1,366 @@ + + + snils_inn_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 224 + 304 + + + + check_if_snils_inn_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_snils_inn_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 304 + + + + snils_inn_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 688 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/recruitments_five_flow.hpl + + + Basic + + Y + + N + local + N + N + Y + Y + 928 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_on_error.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 928 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/check_if_need_to_repeat_job.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 688 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 688 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_delta.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 688 + 800 + + + + + + Start + check_if_snils_inn_job_exists.hpl + Y + Y + Y + + + check_if_snils_inn_job_exists.hpl + snils_inn_job_exists_check + Y + Y + N + + + snils_inn_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + snils_inn_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 800 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 800 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 608 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + snils_inn_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 114 + + + + diff --git a/mappings/info_recruits/citizen_tables/subpoena/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/subpoena/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..f15ccdf --- /dev/null +++ b/mappings/info_recruits/citizen_tables/subpoena/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'subpoena_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/subpoena/checkpoints/check_if_subpoena_job_exists.hpl b/mappings/info_recruits/citizen_tables/subpoena/checkpoints/check_if_subpoena_job_exists.hpl new file mode 100644 index 0000000..e5f59bb --- /dev/null +++ b/mappings/info_recruits/citizen_tables/subpoena/checkpoints/check_if_subpoena_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_subpoena_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'subpoena_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl new file mode 100644 index 0000000..90b4e7c --- /dev/null +++ b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl @@ -0,0 +1,603 @@ + + + + subpoena_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table output + Change job status on error + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Table input + Table output + Y + + + Table output + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1328 + 496 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1328 + 320 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1856 + 176 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 288 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1536 + 176 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1536 + 304 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_sent_summons_raw + is_sent_summons + MAX + + + has_served_summons_raw + is_served_summons + MAX + + + has_appeared_to_recruitment_center_raw + is_appeared_to_recruitment_center + MAX + + + has_not_appeared_by_valid_excuse_raw + is_not_appeared_by_valid_excuse + MAX + + + N + + + recruit_id + + + N + grp + + + 688 + 176 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 880 + 176 + + + + Table input + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + + SELECT + s.id, --id повестки + CASE + WHEN s.send_date is not null THEN 1 + ELSE 0 + END AS is_sent_summons, --факт направления повестки///Признак наличия направленной повестки + CASE + WHEN s.system_stages->'subpoenaAwarded' != 'true' THEN 1 + ELSE 0 + END AS is_served_summons, --has_served_summons//Признак наличия врученной повестки + CASE + WHEN s.system_stages->'recruitAttendanceConfirm' != 'true' THEN 1 + ELSE 0 + END AS is_appeared_to_recruitment_center, -- appeared_to_recruitment_center//Признак явки в военный комиссариат + CASE + WHEN ss.code = '5.1' THEN 1 + ELSE 0 + END AS is_not_appeared_by_valid_excuse, -- not_appeared_by_valid_excuse//Признак неявки в военкомат по уважительной причине + s.recruit_id, + s.send_date, --дата направления повестки + s.series, --серия повестки + s.number, --новер повестки + s.reason_id AS subpoena_reason, --причина вызова по повестке /// код передавать или сразу наименование? + s.full_name_responsible_user, --фио военного комиссара(фио пользователя сформировавшео повестку) + s.sig_info, --сертификат ключа проверки ЭП + s.recruitment_name, --наименование ВК + s.recruitment_address, --адрес, по которому необходимо явиться + s.visit_date, --дата и время явки + --, --способ направления // искать в subpoena_send_info + --, --УН заказного почтового отправления // искать в subpoena_send_info + s.status_id, --статус // ссылка на справочник subpoena_status/// AS subpoena_status + s.create_date, --дата создания // для загрузки данных + s.status_change_date --дата обновления // для загрузки данных (timestamp without time zone) + +-- поля для карточки, раздел "Сведения о направлении повестки военного комиссариата" + +FROM public.subpoena s +join public.subpoena_status ss on s.status_id = ss.id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND s.department_id = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= s.create_date + +${LIMIT_FW} + Y + + + 496 + 320 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + id + id + + + recruit_id + recruit_id + + + send_date + send_date + + + series + series + + + number + number + + + reason_id + reason_id + + + full_name_responsible_user + full_name_responsible_user + + + sig_info + sig_info + + + recruitment_name + recruitment_name + + + recruitment_address + recruitment_address + + + visit_date + visit_date + + + status_id + status_id + + + create_date + create_date + + + status_change_date + status_change_date + + + N + N + N + N + Y + N + ervu_dashboard + Y + recruits_info
+ N + Y + N + Y + + + 688 + 320 + +
+ + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_sent_summons + has_sent_summons + + + has_served_summons + has_served_summons + + + appeared_to_recruitment_center + appeared_to_recruitment_center + + + not_appeared_by_valid_excuse + not_appeared_by_valid_excuse + +
+ N + Y + + + 1328 + 176 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_sent_summons + has_sent_summons_raw == 1 + Boolean + -1 + -1 + + + + has_served_summons + has_served_summons_raw == 1 + Boolean + -1 + -1 + + + + appeared_to_recruitment_center + has_appeared_to_recruitment_center_raw == 1 + Boolean + -1 + -1 + + + + not_appeared_by_valid_excuse + has_not_appeared_by_valid_excuse_raw == 1 + Boolean + -1 + -1 + + + + + 1104 + 176 + + + + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl new file mode 100644 index 0000000..824f5e6 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl @@ -0,0 +1,615 @@ + + + + subpoena_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table input + Insert / update + Y + + + Insert / update + Change job status on error + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1392 + 528 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1392 + 352 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1872 + 208 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 352 + 352 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1632 + 208 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1632 + 320 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_sent_summons_raw + is_sent_summons + MAX + + + has_served_summons_raw + is_served_summons + MAX + + + has_appeared_to_recruitment_center_raw + is_appeared_to_recruitment_center + MAX + + + has_not_appeared_by_valid_excuse_raw + is_not_appeared_by_valid_excuse + MAX + + + N + + + recruit_id + + + N + grp + + + 752 + 208 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 944 + 208 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + ervu_dashboard + subpoena
+ + id + id + N + + + recruit_id + recruit_id + Y + + + send_date + send_date + Y + + + series + series + Y + + + number + number + Y + + + reason_id + reason_id + Y + + + full_name_responsible_user + full_name_responsible_user + Y + + + sig_info + sig_info + Y + + + recruitment_name + recruitment_name + Y + + + recruitment_address + recruitment_address + Y + + + visit_date + visit_date + Y + + + status_id + status_id + Y + + + create_date + create_date + Y + + + status_change_date + status_change_date + Y + +
+ N + + + 752 + 352 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + + SELECT + s.id, --id повестки + CASE + WHEN s.send_date is not null THEN 1 + ELSE 0 + END AS is_sent_summons, --факт направления повестки///Признак наличия направленной повестки + CASE + WHEN s.system_stages->'subpoenaAwarded' != 'true' THEN 1 + ELSE 0 + END AS is_served_summons, --has_served_summons//Признак наличия врученной повестки + CASE + WHEN s.system_stages->'recruitAttendanceConfirm' != 'true' THEN 1 + ELSE 0 + END AS is_appeared_to_recruitment_center, -- appeared_to_recruitment_center//Признак явки в военный комиссариат + CASE + WHEN ss.code = '5.1' THEN 1 + ELSE 0 + END AS is_not_appeared_by_valid_excuse, -- not_appeared_by_valid_excuse//Признак неявки в военкомат по уважительной причине + s.recruit_id, + s.send_date, --дата направления повестки + s.series, --серия повестки + s.number, --новер повестки + s.reason_id AS subpoena_reason, --причина вызова по повестке /// код передавать или сразу наименование? + s.full_name_responsible_user, --фио военного комиссара(фио пользователя сформировавшео повестку) + s.sig_info, --сертификат ключа проверки ЭП + s.recruitment_name, --наименование ВК + s.recruitment_address, --адрес, по которому необходимо явиться + s.visit_date, --дата и время явки + --, --способ направления // искать в subpoena_send_info + --, --УН заказного почтового отправления // искать в subpoena_send_info + s.status_id, --статус // ссылка на справочник subpoena_status/// AS subpoena_status + s.create_date, --дата создания // для загрузки данных + s.status_change_date --дата обновления // для загрузки данных (timestamp without time zone) + +-- поля для карточки, раздел "Сведения о направлении повестки военного комиссариата" + +FROM public.subpoena s +join public.subpoena_status ss on s.status_id = ss.id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND s.department_id = '${IDM_ID}' + AND s.status_change_date >= '${M_R_UP_DATE}'::timestamp + +${LIMIT_FW} + Y + + + 560 + 352 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_sent_summons + has_sent_summons + + + has_served_summons + has_served_summons + + + appeared_to_recruitment_center + appeared_to_recruitment_center + + + not_appeared_by_valid_excuse + not_appeared_by_valid_excuse + +
+ N + Y + + + 1392 + 208 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_sent_summons + has_sent_summons_raw == 1 + Boolean + -1 + -1 + + + + has_served_summons + has_served_summons_raw == 1 + Boolean + -1 + -1 + + + + appeared_to_recruitment_center + has_appeared_to_recruitment_center_raw == 1 + Boolean + -1 + -1 + + + + not_appeared_by_valid_excuse + has_not_appeared_by_valid_excuse_raw == 1 + Boolean + -1 + -1 + + + + + 1168 + 208 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl new file mode 100644 index 0000000..7a050d5 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl @@ -0,0 +1,630 @@ + + + + subpoena_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1312 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1312 + 208 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1776 + 64 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1568 + 64 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1568 + 176 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_sent_summons_raw + is_sent_summons + MAX + + + has_served_summons_raw + is_served_summons + MAX + + + has_appeared_to_recruitment_center_raw + is_appeared_to_recruitment_center + MAX + + + has_not_appeared_by_valid_excuse_raw + is_not_appeared_by_valid_excuse + MAX + + + N + + + recruit_id + + + N + grp + + + 672 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 864 + 64 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + ervu_dashboard + subpoena
+ + id + id + N + + + recruit_id + recruit_id + Y + + + send_date + send_date + Y + + + series + series + Y + + + number + number + Y + + + reason_id + reason_id + Y + + + full_name_responsible_user + full_name_responsible_user + Y + + + sig_info + sig_info + Y + + + recruitment_name + recruitment_name + Y + + + recruitment_address + recruitment_address + Y + + + visit_date + visit_date + Y + + + status_id + status_id + Y + + + create_date + create_date + Y + + + status_change_date + status_change_date + Y + +
+ N + + + 672 + 208 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + + SELECT + s.id, --id повестки + CASE + WHEN s.send_date is not null THEN 1 + ELSE 0 + END AS is_sent_summons, --факт направления повестки///Признак наличия направленной повестки + CASE + WHEN s.system_stages->'subpoenaAwarded' != 'true' THEN 1 + ELSE 0 + END AS is_served_summons, --has_served_summons//Признак наличия врученной повестки + CASE + WHEN s.system_stages->'recruitAttendanceConfirm' != 'true' THEN 1 + ELSE 0 + END AS is_appeared_to_recruitment_center, -- appeared_to_recruitment_center//Признак явки в военный комиссариат + CASE + WHEN ss.code = '5.1' THEN 1 + ELSE 0 + END AS is_not_appeared_by_valid_excuse, -- not_appeared_by_valid_excuse//Признак неявки в военкомат по уважительной причине + s.recruit_id, + s.send_date, --дата направления повестки + s.series, --серия повестки + s.number, --новер повестки + s.reason_id AS subpoena_reason, --причина вызова по повестке /// код передавать или сразу наименование? + s.full_name_responsible_user, --фио военного комиссара(фио пользователя сформировавшео повестку) + s.sig_info, --сертификат ключа проверки ЭП + s.recruitment_name, --наименование ВК + s.recruitment_address, --адрес, по которому необходимо явиться + s.visit_date, --дата и время явки + --, --способ направления // искать в subpoena_send_info + --, --УН заказного почтового отправления // искать в subpoena_send_info + s.status_id, --статус // ссылка на справочник subpoena_status/// AS subpoena_status + s.create_date, --дата создания // для загрузки данных + s.status_change_date --дата обновления // для загрузки данных (timestamp without time zone) + +-- поля для карточки, раздел "Сведения о направлении повестки военного комиссариата" + +FROM public.subpoena s +join public.subpoena_status ss on s.status_id = ss.id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND s.department_id = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= s.create_date + +${LIMIT_FW} + Y + + + 480 + 208 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_sent_summons + has_sent_summons + + + has_served_summons + has_served_summons + + + appeared_to_recruitment_center + appeared_to_recruitment_center + + + not_appeared_by_valid_excuse + not_appeared_by_valid_excuse + +
+ N + Y + + + 1312 + 64 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_sent_summons + has_sent_summons_raw == 1 + Boolean + -1 + -1 + + + + has_served_summons + has_served_summons_raw == 1 + Boolean + -1 + -1 + + + + appeared_to_recruitment_center + has_appeared_to_recruitment_center_raw == 1 + Boolean + -1 + -1 + + + + not_appeared_by_valid_excuse + has_not_appeared_by_valid_excuse_raw == 1 + Boolean + -1 + -1 + + + + + 1088 + 64 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..e69b190 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + subpoena_flow_delta.hpl + Y + + + Table input + subpoena_flow_delta.hpl 2 + Y + + + Table input + subpoena_flow_delta.hpl 3 + Y + + + Table input + subpoena_flow_delta.hpl 4 + Y + + + Table input + subpoena_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'subpoena_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + subpoena_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 640 + 128 + + + + subpoena_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 640 + 208 + + + + subpoena_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 640 + 288 + + + + subpoena_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 640 + 368 + + + + subpoena_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 640 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..b6fa112 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + subpoena_flow_repeat.hpl + Y + + + Table input + subpoena_flow_repeat.hpl 2 + Y + + + Table input + subpoena_flow_repeat.hpl 3 + Y + + + Table input + subpoena_flow_repeat.hpl 4 + Y + + + Table input + subpoena_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'subpoena_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + subpoena_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 208 + + + + subpoena_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 288 + + + + subpoena_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 368 + + + + subpoena_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 448 + + + + subpoena_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/subpoena/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/subpoena/recruitments_five_flow.hpl new file mode 100644 index 0000000..6bd1738 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/subpoena/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + subpoena_flow.hpl + Y + + + Get all recruitments ordered by created_date + subpoena_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + subpoena_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + subpoena_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + subpoena_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + subpoena_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 144 + + + + subpoena_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 224 + + + + subpoena_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 304 + + + + subpoena_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 384 + + + + subpoena_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/subpoena/subpoena_job.hwf b/mappings/info_recruits/citizen_tables/subpoena/subpoena_job.hwf new file mode 100644 index 0000000..4773d5e --- /dev/null +++ b/mappings/info_recruits/citizen_tables/subpoena/subpoena_job.hwf @@ -0,0 +1,366 @@ + + + subpoena_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 224 + 304 + + + + check_if_subpoena_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/checkpoints/check_if_subpoena_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 304 + + + + subpoena_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 688 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/recruitments_five_flow.hpl + + + Basic + + Y + + N + local + N + N + Y + Y + 928 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/recruitment_five_flow_on_error.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 928 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/check_if_need_to_repeat_job.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 688 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 688 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/recruitment_five_flow_delta.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 688 + 800 + + + + + + Start + check_if_subpoena_job_exists.hpl + Y + Y + Y + + + check_if_subpoena_job_exists.hpl + subpoena_job_exists_check + Y + Y + N + + + subpoena_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + subpoena_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 800 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 800 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 608 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + subpoena_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 114 + + + + diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..fa60b99 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/temporary_measures/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'temporary_measures_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/checkpoints/check_if_temporary_measures_job_exists.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/checkpoints/check_if_temporary_measures_job_exists.hpl new file mode 100644 index 0000000..acb1487 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/temporary_measures/checkpoints/check_if_temporary_measures_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_temporary_measures_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'recruits_info_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl new file mode 100644 index 0000000..8592bb1 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl @@ -0,0 +1,380 @@ + + + + temporary_measures_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table input + Identify last row in a stream + Y + + + Identify last row in a stream + Table output + Y + + + Table output + Filter rows + Y + + + Table output + Change job status on error + Y + + + Table output + Detect empty stream + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1376 + 512 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1024 + 512 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1632 + 160 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 288 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1632 + 320 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1024 + 160 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 752 + 320 + + + + Table input + TableInput + + N + + 1 + + none + + + ervu_person_registry + N + SELECT + r.system_create_date AS created_at, + r.system_update_date AS updated_at, + ri.recruit_id, + ri.info, + ri.gir_import_data_version_id, + r.current_recruitment_id, + r.target_recruitment_id, + r.full_name, + r.addresses +FROM recruits_info ri +JOIN recruits r ON r.id = ri.recruit_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id, target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= r.system_create_date + --AND '${CR_DATE}' < ri.created_at +--ORDER BY ri.created_at ASC; + +${LIMIT_FW} + Y + + + 496 + 320 + + + + Table output + TableOutput + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + created_at + created_at + + + updated_at + updated_at + + + info + info + + + gir_import_data_version_id + gir_import_data_version_id + + + current_recruitment_id + current_recruitment_id + + + target_recruitment_id + target_recruitment_id + + + full_name + full_name + + + addresses + addresses + + + N + N + N + N + Y + N + ervu_dashboard + Y + recruits_info
+ N + Y + N + Y + + + 1024 + 320 + +
+ + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl new file mode 100644 index 0000000..bf8cff6 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl @@ -0,0 +1,389 @@ + + + + temporary_measures_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Table input + Identify last row in a stream + Y + + + Identify last row in a stream + Insert / update + Y + + + Insert / update + Filter rows + Y + + + Insert / update + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Insert / update + Change job status on error + Y + + + Change job status on error + Abort + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1168 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 944 + 400 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1248 + 64 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 336 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1248 + 224 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 944 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 736 + 224 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + recruits_info
+ + recruit_id + recruit_id + N + + + created_at + created_at + Y + + + updated_at + updated_at + Y + + + info + info + Y + + + gir_import_data_version_id + gir_import_data_version_id + Y + + + current_recruitment_id + current_recruitment_id + Y + + + target_recruitment_id + target_recruitment_id + Y + + + full_name + full_name + Y + + + addresses + addresses + Y + +
+ N + + + 944 + 224 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu_person_registry + N + + SELECT + r.system_create_date AS created_at, + r.system_update_date AS updated_at, + ri.recruit_id, + ri.info, + ri.gir_import_data_version_id, + r.current_recruitment_id, + r.target_recruitment_id, + r.full_name, + r.addresses +FROM recruits_info ri +JOIN recruits r ON r.id = ri.recruit_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id, target_recruitment_id) = '${IDM_ID}' + --AND '${M_R_CR_DATE}' >= r.system_create_date + AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp + --AND '${CR_DATE}' < ri.created_at +--ORDER BY ri.created_at ASC; + +${LIMIT_FW} + Y + + + 544 + 224 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl new file mode 100644 index 0000000..d4041f8 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl @@ -0,0 +1,402 @@ + + + + temporary_measures_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Table input + Identify last row in a stream + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Identify last row in a stream + Insert / update + Y + + + Insert / update + Filter rows + Y + + + Insert / update + Detect empty stream + Y + + + Insert / update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1248 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 960 + 400 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1440 + 48 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1440 + 208 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 960 + 48 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 720 + 208 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + recruits_info
+ + recruit_id + recruit_id + N + + + created_at + created_at + Y + + + updated_at + updated_at + Y + + + info + info + Y + + + gir_import_data_version_id + gir_import_data_version_id + Y + + + current_recruitment_id + current_recruitment_id + Y + + + target_recruitment_id + target_recruitment_id + Y + + + full_name + full_name + Y + + + addresses + addresses + Y + +
+ N + + + 960 + 208 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu_person_registry + N + SELECT + r.system_create_date AS created_at, + r.system_update_date AS updated_at, + ri.recruit_id, + ri.info, + ri.gir_import_data_version_id, + r.current_recruitment_id, + r.target_recruitment_id, + r.full_name, + r.addresses +FROM recruits_info ri +JOIN recruits r ON r.id = ri.recruit_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id, target_recruitment_id) = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= r.system_create_date + --AND '${CR_DATE}' < ri.created_at +--ORDER BY ri.created_at ASC; + +${LIMIT_FW} + Y + + + 480 + 208 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..2679e8a --- /dev/null +++ b/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + temporary_measures_flow_delta.hpl + Y + + + Table input + temporary_measures_flow_delta.hpl 2 + Y + + + Table input + temporary_measures_flow_delta.hpl 3 + Y + + + Table input + temporary_measures_flow_delta.hpl 4 + Y + + + Table input + temporary_measures_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'recruits_info_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + temporary_measures_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 128 + + + + temporary_measures_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 208 + + + + temporary_measures_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 288 + + + + temporary_measures_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 368 + + + + temporary_measures_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..f5c77e6 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + temporary_measures_flow_repeat.hpl + Y + + + Table input + temporary_measures_flow_repeat.hpl 2 + Y + + + Table input + temporary_measures_flow_repeat.hpl 3 + Y + + + Table input + temporary_measures_flow_repeat.hpl 4 + Y + + + Table input + temporary_measures_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'temporary_measures_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + temporary_measures_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 208 + + + + temporary_measures_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 288 + + + + temporary_measures_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 368 + + + + temporary_measures_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 448 + + + + temporary_measures_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 528 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/recruitments_five_flow.hpl new file mode 100644 index 0000000..d6e1612 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/temporary_measures/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + temporary_measures_flow.hpl + Y + + + Get all recruitments ordered by created_date + temporary_measures_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + temporary_measures_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + temporary_measures_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + temporary_measures_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + temporary_measures_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 144 + + + + temporary_measures_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 224 + + + + temporary_measures_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 304 + + + + temporary_measures_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 384 + + + + temporary_measures_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + temporary_measures_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 704 + 464 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/temporary_measures_job.hwf b/mappings/info_recruits/citizen_tables/temporary_measures/temporary_measures_job.hwf new file mode 100644 index 0000000..65fc996 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/temporary_measures/temporary_measures_job.hwf @@ -0,0 +1,358 @@ + + + temporary_measures_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 224 + 304 + + + + check_if_temporary_measures_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/checkpoints/check_if_temporary_measures_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 304 + + + + temporary_measures_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 768 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1088 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_on_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 1088 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 768 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 768 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 768 + 800 + + + + + + Start + check_if_temporary_measures_job_exists.hpl + N + Y + Y + + + check_if_temporary_measures_job_exists.hpl + temporary_measures_job_exists_check + Y + Y + N + + + temporary_measures_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + temporary_measures_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 880 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 880 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 688 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + temporary_measures_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 143 + + + + diff --git a/mappings/info_recruits/citizen_tables/work/employer/employer_job.hwf b/mappings/info_recruits/citizen_tables/work/employer/employer_job.hwf new file mode 100644 index 0000000..8c0ba80 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/employer/employer_job.hwf @@ -0,0 +1,252 @@ + + + employer_job + Y + + + + - + 2025/08/18 20:08:04.495 + - + 2025/08/18 20:08:04.495 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 48 + 48 + + + + check_if_employer_job_execution_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/support/check_if_employer_job_execution_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 272 + 48 + + + + employer_job_execution_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 576 + 48 + + + + recruitment_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/recruitment_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 896 + 48 + + + + recruitment_five_flow_repeat.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/recruitment_five_flow_repeat.hpl + Basic + + Y + + N + local + N + N + Y + N + 816 + 352 + + + + check_if_need_to_repeat.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/support/check_if_need_to_repeat.hpl + Basic + + Y + + N + local + N + N + Y + N + 576 + 192 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 576 + 352 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 576 + 544 + + + + + + check_if_employer_job_execution_exists.hpl + employer_job_execution_exists_check + Y + Y + N + + + employer_job_execution_exists_check + recruitment_five_flow.hpl + Y + Y + N + + + employer_job_execution_exists_check + check_if_need_to_repeat.hpl + Y + N + N + + + check_if_need_to_repeat.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_repeat.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + Start + check_if_employer_job_execution_exists.hpl + Y + Y + Y + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl new file mode 100644 index 0000000..e519d93 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl @@ -0,0 +1,432 @@ + + + + employer_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 18:28:13.561 + - + 2025/08/18 18:28:13.561 + + + + + + Create job execution record + employer_input + Y + + + Change job status on error + Abort + Y + + + employer_input + Identify last row in a stream + Y + + + Identify last row in a stream + employer_output + Y + + + employer_output + Change job status on error + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + employer_output + Filter rows + Y + + + Identify last row in a stream + Detect empty stream + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT + Y + 0 + + + 944 + 448 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 720 + 448 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 944 + 112 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 176 + 288 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 528 + 112 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + String + + + + Change job status on success + + + 944 + 288 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 528 + 288 + + + + employer_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with filteredData as (select ri.recruit_id, + (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id, + ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'aktRabotodat' as rabotodat, + true as actual_employer + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'aktRabotodat' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + + union all + + select ri.recruit_id, + (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id, + ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'predRabotodat' as rabotodat, + false as actual_employer + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'predRabotodat' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}') +select fd.source_id, + fd.recruit_id, + to_date(rabotodat ->> 'dataSved', 'YYYY-MM-DD') as source_update_date, + COALESCE(rabotodat -> 'extend' ->> 'status', '0') = '1' AS status, + rabotodat -> 'extend' ->> 'adresRabotodat' as address, + rabotodat -> 'extend' ->> 'tipPodrazdRabotodat' as separate_unit_type, + rabotodat -> 'extend' ->> 'adresPodrazdRabotodat' as separate_unit_address, + case + when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null' + then 'Индивидуальный предприниматель' + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' then 'Юридическое лицо' + when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null' then 'Глава КФХ' + when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null' then 'Физическое лицо' + end as employer_category_name, + rabotodat -> 'svedYUL' -> 'naimOrg' as name, + case + when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null' + then rabotodat -> 'svedIP' ->> 'innfl' + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' + then rabotodat -> 'svedYUL' ->> 'innyul' + when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null' + then rabotodat -> 'svedGlKFH' ->> 'innfl' + when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null' + then rabotodat -> 'svedPlatFL' ->> 'innfl' + end as inn, + case + when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null' + then rabotodat -> 'extend' -> 'svedYUL' ->> 'ogrn' + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' + then rabotodat -> 'svedIP' ->> 'ogrnip' + end as ogrn, + case + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' + then rabotodat -> 'extend' -> 'svedYUL' ->> 'kpp' + end as kpp, + coalesce(rabotodat -> 'svedYUL' -> 'extend' ->> 'priznakOpk', '0') = '1' as is_opk_org, + actual_employer +from filteredData fd; + Y + + + 352 + 288 + + + + employer_output + TableOutput + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + recruit_id + recruit_id + + + source_id + source_id + + + source_update_date + source_update_date + + + address + address + + + separate_unit_type_code + separate_unit_type + + + separate_unit_address + separate_unit_address + + + employer_category_name + employer_category_name + + + name + name + + + inn + inn + + + ogrn + ogrn + + + kpp + kpp + + + actual_employer + actual_employer + + + is_opk_org + is_opk_org + + + N + N + N + N + Y + N + ervu_dashboard + Y + employer
+ N + Y + N + Y + + + 720 + 288 + +
+ + + employer_output + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl new file mode 100644 index 0000000..79fcd74 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl @@ -0,0 +1,452 @@ + + + + employer_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 19:01:58.918 + - + 2025/08/18 19:01:58.918 + + + + + + Change job status on error + Abort + Y + + + Create job execution record + employer_input + Y + + + employer_upsert + Filter rows + Y + + + Identify last row in a stream + employer_upsert + Y + + + employer_upsert + Change job status on error + Y + + + employer_input + Identify last row in a stream + Y + + + Detect empty stream + Change job status on success + Y + + + Identify last row in a stream + Detect empty stream + Y + + + Filter rows + Change job status on success + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT + Y + 0 + + + 1040 + 544 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 864 + 544 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1040 + 240 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = current_timestamp, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 320 + 384 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 672 + 240 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1040 + 384 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 672 + 384 + + + + employer_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with filteredData as (select ri.recruit_id, + (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id, + ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'aktRabotodat' as rabotodat, + true as actual_employer + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'aktRabotodat' != 'null' + and to_date(ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'aktRabotodat' ->> + 'dataSved', 'YYYY-MM-DD') > '${MAX_SOURCE_UPDATE_DATE}' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + + union all + + select ri.recruit_id, + (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id, + ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'predRabotodat' as rabotodat, + false as actual_employer + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'predRabotodat' != 'null' + and to_date(ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'predRabotodat' ->> + 'dataSved', 'YYYY-MM-DD') > '${MAX_SOURCE_UPDATE_DATE}' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}') +select fd.source_id, + fd.recruit_id, + to_date(rabotodat ->> 'dataSved', 'YYYY-MM-DD') as source_update_date, + COALESCE(rabotodat -> 'extend' ->> 'status', '0') = '1' AS status, + rabotodat -> 'extend' ->> 'adresRabotodat' as address, + rabotodat -> 'extend' ->> 'tipPodrazdRabotodat' as separate_unit_type, + rabotodat -> 'extend' ->> 'adresPodrazdRabotodat' as separate_unit_address, + case + when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null' + then 'Индивидуальный предприниматель' + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' then 'Юридическое лицо' + when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null' then 'Глава КФХ' + when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null' then 'Физическое лицо' + end as employer_category_name, + rabotodat -> 'svedYUL' -> 'naimOrg' as name, + case + when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null' + then rabotodat -> 'svedIP' ->> 'innfl' + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' + then rabotodat -> 'svedYUL' ->> 'innyul' + when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null' + then rabotodat -> 'svedGlKFH' ->> 'innfl' + when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null' + then rabotodat -> 'svedPlatFL' ->> 'innfl' + end as inn, + case + when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null' + then rabotodat -> 'extend' -> 'svedYUL' ->> 'ogrn' + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' + then rabotodat -> 'svedIP' ->> 'ogrnip' + end as ogrn, + case + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' + then rabotodat -> 'extend' -> 'svedYUL' ->> 'kpp' + end as kpp, + coalesce(rabotodat -> 'svedYUL' -> 'extend' ->> 'priznakOpk', '0') = '1' as is_opk_org, + actual_employer +from filteredData fd; + Y + + + 496 + 384 + + + + employer_upsert + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + source_id + source_id + + + = + actual_employer + actual_employer + + ervu_dashboard + employer
+ + source_id + source_id + N + + + recruit_id + recruit_id + N + + + source_update_date + source_update_date + Y + + + address + address + Y + + + separate_unit_type_code + separate_unit_type + Y + + + separate_unit_address + separate_unit_address + Y + + + employer_category_name + employer_category_name + Y + + + name + name + Y + + + inn + inn + Y + + + ogrn + ogrn + Y + + + kpp + kpp + Y + + + actual_employer + actual_employer + Y + + + is_opk_org + is_opk_org + Y + +
+ N + + + 864 + 384 + +
+ + + employer_upsert + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl new file mode 100644 index 0000000..24d9cec --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl @@ -0,0 +1,453 @@ + + + + employer_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 18:47:26.553 + - + 2025/08/18 18:47:26.553 + + + + + + Change job status on error + Abort + Y + + + Create job execution record + employer_input + Y + + + employer_input + Identify last row in a stream + Y + + + Identify last row in a stream + employer_upsert + Y + + + employer_upsert + Filter rows + Y + + + employer_upsert + Change job status on error + Y + + + Detect empty stream + Change job status on success + Y + + + Identify last row in a stream + Detect empty stream + Y + + + Filter rows + Change job status on success + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT + Y + 0 + + + 1072 + 560 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 896 + 560 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1072 + 256 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + + N + + N + + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}') +ON CONFLICT (job_name, recruitment_id) +DO UPDATE +SET status = 'PROCESSING', + error_description = null, + execution_datetime = current_timestamp; + + + + 352 + 400 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 704 + 256 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + Change job status on success + + + 1072 + 400 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 704 + 400 + + + + employer_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with filteredData as (select ri.recruit_id, + (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id, + ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'aktRabotodat' as rabotodat, + true as actual_employer + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'aktRabotodat' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + + union all + + select ri.recruit_id, + (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id, + ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'predRabotodat' as rabotodat, + false as actual_employer + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'predRabotodat' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}') +select fd.source_id, + fd.recruit_id, + to_date(rabotodat ->> 'dataSved', 'YYYY-MM-DD') as source_update_date, + COALESCE(rabotodat -> 'extend' ->> 'status', '0') = '1' AS status, + rabotodat -> 'extend' ->> 'adresRabotodat' as address, + rabotodat -> 'extend' ->> 'tipPodrazdRabotodat' as separate_unit_type, + rabotodat -> 'extend' ->> 'adresPodrazdRabotodat' as separate_unit_address, + case + when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null' + then 'Индивидуальный предприниматель' + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' then 'Юридическое лицо' + when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null' then 'Глава КФХ' + when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null' then 'Физическое лицо' + end as employer_category_name, + rabotodat -> 'svedYUL' -> 'naimOrg' as name, + case + when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null' + then rabotodat -> 'svedIP' ->> 'innfl' + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' + then rabotodat -> 'svedYUL' ->> 'innyul' + when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null' + then rabotodat -> 'svedGlKFH' ->> 'innfl' + when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null' + then rabotodat -> 'svedPlatFL' ->> 'innfl' + end as inn, + case + when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null' + then rabotodat -> 'extend' -> 'svedYUL' ->> 'ogrn' + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' + then rabotodat -> 'svedIP' ->> 'ogrnip' + end as ogrn, + case + when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' + then rabotodat -> 'extend' -> 'svedYUL' ->> 'kpp' + end as kpp, + coalesce(rabotodat -> 'svedYUL' -> 'extend' ->> 'priznakOpk', '0') = '1' as is_opk_org, + actual_employer +from filteredData fd; + Y + + + 544 + 400 + + + + employer_upsert + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard-test + + + = + source_id + source_id + + + = + actual_employer + actual_employer + + ervu_dashboard + employer
+ + source_id + source_id + N + + + recruit_id + recruit_id + N + + + source_update_date + source_update_date + Y + + + address + address + Y + + + separate_unit_type_code + separate_unit_type + Y + + + separate_unit_address + separate_unit_address + Y + + + employer_category_name + employer_category_name + Y + + + name + name + Y + + + inn + inn + Y + + + ogrn + ogrn + Y + + + kpp + kpp + Y + + + actual_employer + actual_employer + Y + + + is_opk_org + is_opk_org + Y + +
+ N + + + 896 + 400 + +
+ + + employer_upsert + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow.hpl b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow.hpl new file mode 100644 index 0000000..15d97f9 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow.hpl @@ -0,0 +1,355 @@ + + + + recruitment_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 20:11:33.772 + - + 2025/08/18 20:11:33.772 + + + + + + Get all recruitments ordered by created_date + employer_flow.hpl + Y + + + Get all recruitments ordered by created_date + employer_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + employer_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + employer_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + employer_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard-test + N + SELECT +idm_id +FROM ervu_dashboard.recruitment; + N + + + 416 + 416 + + + + employer_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl + N + + 1 + + + + + IDM_ID + idm_id + + + + JOB_NAME + + employer_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 688 + 256 + + + + employer_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl + N + + 1 + + + + + IDM_ID + idm_id + + + + JOB_NAME + + employer_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 688 + 336 + + + + employer_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl + N + + 1 + + + + + IDM_ID + idm_id + + + + JOB_NAME + + employer_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 688 + 416 + + + + employer_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl + N + + 1 + + + + + IDM_ID + idm_id + + + + JOB_NAME + + employer_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 688 + 496 + + + + employer_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl + N + + 1 + + + + + IDM_ID + idm_id + + + + JOB_NAME + + employer_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 688 + 576 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..cbf15f2 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_delta.hpl @@ -0,0 +1,423 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 20:19:19.424 + - + 2025/08/18 20:19:19.424 + + + + + + Table input + employer_flow_delta.hpl + Y + + + get_max_source_update_date + Table input + Y + + + Table input + employer_flow_delta.hpl 2 + Y + + + Table input + employer_flow_delta.hpl 3 + Y + + + Table input + employer_flow_delta.hpl 4 + Y + + + Table input + employer_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard-test + N + 0 + get_max_source_update_date + SELECT + r.idm_id, + ? max_source_update_date +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'employer_job' + JOIN recruits_info ri + ON COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = r.idm_id + AND ri.updated_at > ( + SELECT MAX(execution_datetime) + FROM etl.job_execution + WHERE job_name = 'employer_job' + AND recruitment_id = r.idm_id + ) +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 576 + 336 + + + + get_max_source_update_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select max(source_update_date) +from employer; + N + + + 400 + 336 + + + + employer_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl + N + + 1 + + + + + IDM_ID + idm_id + + + + JOB_NAME + + employer_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 768 + 176 + + + + employer_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl + N + + 1 + + + + + IDM_ID + idm_id + + + + JOB_NAME + + employer_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 768 + 256 + + + + employer_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl + N + + 1 + + + + + IDM_ID + idm_id + + + + JOB_NAME + + employer_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 768 + 336 + + + + employer_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl + N + + 1 + + + + + IDM_ID + idm_id + + + + JOB_NAME + + employer_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 768 + 416 + + + + employer_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl + N + + 1 + + + + + IDM_ID + idm_id + + + + JOB_NAME + + employer_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 768 + 496 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_repeat.hpl new file mode 100644 index 0000000..fd60da1 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_repeat.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 20:16:58.135 + - + 2025/08/18 20:16:58.135 + + + + + + Table input + employer_flow_repeat.hpl + Y + + + Table input + employer_flow_repeat.hpl 2 + Y + + + Table input + employer_flow_repeat.hpl 3 + Y + + + Table input + employer_flow_repeat.hpl 4 + Y + + + Table input + employer_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard-test + N + 0 + SELECT r.idm_id AS recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + AND je.job_name = 'employer_job' +WHERE je.id IS NULL + OR je.status IN ('ERROR', 'PROCESSING'); + N + + + 528 + 432 + + + + employer_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + employer_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 272 + + + + employer_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + employer_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 352 + + + + employer_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + employer_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 432 + + + + employer_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + employer_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 512 + + + + employer_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + employer_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 592 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/employer/support/check_if_employer_job_execution_exists.hpl b/mappings/info_recruits/citizen_tables/work/employer/support/check_if_employer_job_execution_exists.hpl new file mode 100644 index 0000000..548f683 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/employer/support/check_if_employer_job_execution_exists.hpl @@ -0,0 +1,83 @@ + + + + check_if_employer_job_execution_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 20:08:41.981 + - + 2025/08/18 20:08:41.981 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 816 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'employer_job' +) AS job_executed_flag; + N + + + 528 + 336 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/employer/support/check_if_need_to_repeat.hpl b/mappings/info_recruits/citizen_tables/work/employer/support/check_if_need_to_repeat.hpl new file mode 100644 index 0000000..9e14dda --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/employer/support/check_if_need_to_repeat.hpl @@ -0,0 +1,85 @@ + + + + check_if_need_to_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 20:14:41.794 + - + 2025/08/18 20:14:41.794 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 816 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'employer_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +) as need_to_repeat_job; + N + + + 528 + 336 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/individual_entrepreneur_job.hwf b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/individual_entrepreneur_job.hwf new file mode 100644 index 0000000..e230637 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/individual_entrepreneur_job.hwf @@ -0,0 +1,262 @@ + + + individual_entrepreneur_job + Y + + + + - + 2025/08/19 08:47:49.108 + - + 2025/08/19 08:47:49.108 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 0 + 224 + + + + check_if_individual_entrepreneur_execution_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/support/check_if_individual_entrepreneur_execution_exists.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 256 + 224 + + + + employer_job_execution_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 592 + 224 + + + + recruitment_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow.hpl + + + Basic + + Y + + N + local + N + N + Y + Y + 912 + 224 + + + + recruitment_five_flow_repeat.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow_repeat.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 832 + 528 + + + + check_if_need_to_repeat.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/support/check_if_need_to_repeat.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 592 + 384 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 592 + 528 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow_delta.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 592 + 720 + + + + + + Start + check_if_individual_entrepreneur_execution_exists.hpl + Y + Y + Y + + + check_if_individual_entrepreneur_execution_exists.hpl + employer_job_execution_exists_check + Y + Y + N + + + employer_job_execution_exists_check + recruitment_five_flow.hpl + Y + Y + N + + + employer_job_execution_exists_check + check_if_need_to_repeat.hpl + Y + N + N + + + check_if_need_to_repeat.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_repeat.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow.hpl b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow.hpl new file mode 100644 index 0000000..a34334f --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow.hpl @@ -0,0 +1,522 @@ + + + + individual_entrepreneur_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/19 08:50:19.851 + - + 2025/08/19 08:50:19.851 + + + + + + Change job status on error + Abort + Y + + + Create job execution record + individual_entrepreneur_input + Y + + + Filter rows + Change job status on success + Y + + + Identify last row in a stream + individual_entrepreneur_output + Y + + + individual_entrepreneur_output + Filter rows + Y + + + individual_entrepreneur_input + Identify last row in a stream + Y + + + Identify last row in a stream + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + filter_null_npd_dates + unique_by_rec_id + Y + + + unique_by_rec_id + individual_entrepreneur_npd_output + Y + + + individual_entrepreneur_npd_output + Change job status on error + Y + + + individual_entrepreneur_output + Change job status on error + Y + + + Identify last row in a stream + filter_null_npd_dates + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT + Y + 0 + + + 1648 + 576 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1440 + 576 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1440 + 288 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 384 + 448 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 800 + 288 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1440 + 448 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 800 + 448 + + + + filter_null_npd_dates + FilterRows + + Y + + 1 + + none + + + + + + + IS NOT NULL + reg_npd_date + N + - + + + unique_by_rec_id + + + 800 + 576 + + + + individual_entrepreneur_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with filtered_data as (select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'id' as source_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP' -> 0 as ip_elem, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataUchNPD', + 'YYYY-MM-DD') as reg_npd_date, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataSnUchNPD', + 'YYYY-MM-DD') as dereg_npd_date, + true as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRegIP' ->> 'regIP' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + + union all + select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'id' as source_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'predRegIP' as ip_elem, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataUchNPD', + 'YYYY-MM-DD') as reg_npd_date, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataSnUchNPD', + 'YYYY-MM-DD') as dereg_npd_date, + false as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'predRegIP' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}') +select fd.recruit_id, + fd.source_id, + ip_elem ->> 'ogrnip' as ogrnip, + to_date(ip_elem ->> 'dataSved', 'YYYY-MM-DD') as source_update_date, + to_date(ip_elem ->> 'dataRegIP', 'YYYY-MM-DD') as registration_date, + to_date(ip_elem ->> 'dataINNNed', 'YYYY-MM-DD') as deregistration_date, + reg_npd_date, + dereg_npd_date, + fd.actual as actual +from filtered_data fd; + Y + + + 592 + 448 + + + + individual_entrepreneur_npd_output + TableOutput + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + recruit_id + recruit_id + + + source_id + source_id + + + register_date + reg_npd_date + + + deregistration_date + dereg_npd_date + + + N + N + N + N + Y + N + ervu_dashboard + Y + individual_entrepreneur_npd
+ N + Y + N + Y + + + 1184 + 576 + +
+ + individual_entrepreneur_output + TableOutput + + Y + + 1 + + none + + + 10000 + ervu-dashboard-test + + + recruit_id + recruit_id + + + source_id + source_id + + + ogrnip + ogrnip + + + source_update_date + source_update_date + + + registration_date + registration_date + + + deregistration_date + deregistration_date + + + actual + actual + + + N + N + N + N + Y + N + ervu_dashboard + Y + individual_entrepreneur
+ N + Y + N + Y + + + 1232 + 448 + +
+ + unique_by_rec_id + UniqueRowsByHashSet + + Y + + 1 + + none + + + N + N + + + + recruit_id + + + + + 976 + 576 + + + + + individual_entrepreneur_npd_output + Change job status on error + Y + + error_description + + + + + + + + individual_entrepreneur_output + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_delta.hpl new file mode 100644 index 0000000..686b0be --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_delta.hpl @@ -0,0 +1,530 @@ + + + + individual_entrepreneur_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/19 09:17:38.141 + - + 2025/08/19 09:17:38.141 + + + + + + Change job status on error + Abort + Y + + + Create job execution record + individual_entrepreneur_input + Y + + + Filter rows + Change job status on success + Y + + + Identify last row in a stream + individual_entrepreneur_upsert + Y + + + individual_entrepreneur_input + Identify last row in a stream + Y + + + individual_entrepreneur_upsert + Filter rows + Y + + + filter_null_npd_dates + unique_by_rec_id + Y + + + unique_by_rec_id + individual_entrepreneur_npd_upsert + Y + + + Identify last row in a stream + Detect empty stream + Y + + + Identify last row in a stream + filter_null_npd_dates + Y + + + individual_entrepreneur_upsert + Change job status on error + Y + + + individual_entrepreneur_npd_upsert + Change job status on error + Y + + + Detect empty stream + Change job status on success + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT + Y + 0 + + + 1616 + 592 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1328 + 592 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1616 + 272 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = current_timestamp, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 272 + 448 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 736 + 272 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1616 + 448 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 736 + 448 + + + + filter_null_npd_dates + FilterRows + + Y + + 1 + + none + + + + + + + IS NOT NULL + reg_npd_date + N + - + + + unique_by_rec_id + + + 736 + 592 + + + + individual_entrepreneur_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with filtered_data as (select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'id' as source_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP' -> 0 as ip_elem, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataUchNPD', + 'YYYY-MM-DD') as reg_npd_date, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataSnUchNPD', + 'YYYY-MM-DD') as dereg_npd_date, + true as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'aktRegIP' != 'null' + and to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP' ->> 'dataSved', + 'YYYY-MM-DD') > '${MAX_SOURCE_UPDATE_DATE}' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + + union all + select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'id' as source_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'predRegIP' as ip_elem, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataUchNPD', + 'YYYY-MM-DD') as reg_npd_date, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataSnUchNPD', + 'YYYY-MM-DD') as dereg_npd_date, + false as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'predRegIP' != 'null' + and to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'predRegIP' ->> 'dataSved', + 'YYYY-MM-DD') > '${MAX_SOURCE_UPDATE_DATE}' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}') +select fd.recruit_id, + fd.source_id, + ip_elem ->> 'ogrnip' as ogrnip, + to_date(ip_elem ->> 'dataSved', 'YYYY-MM-DD') as source_update_date, + to_date(ip_elem ->> 'dataRegIP', 'YYYY-MM-DD') as registration_date, + to_date(ip_elem ->> 'dataINNNed', 'YYYY-MM-DD') as deregistration_date, + reg_npd_date, + dereg_npd_date, + fd.actual as actual +from filtered_data fd; + Y + + + 496 + 448 + + + + individual_entrepreneur_npd_upsert + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + individual_entrepreneur_npd
+ + recruit_id + recruit_id + N + + + source_id + source_id + N + + + register_date + reg_npd_date + Y + + + deregistration_date + dereg_npd_date + Y + +
+ N + + + 1104 + 592 + +
+ + individual_entrepreneur_upsert + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard-test + + + = + source_id + source_id + + ervu_dashboard + individual_entrepreneur
+ + recruit_id + recruit_id + N + + + source_id + source_id + N + + + ogrnip + ogrnip + Y + + + source_update_date + source_update_date + Y + + + registration_date + registration_date + Y + + + deregistration_date + dereg_npd_date + Y + + + actual + actual + Y + +
+ N + + + 1328 + 448 + +
+ + unique_by_rec_id + UniqueRowsByHashSet + + Y + + 1 + + none + + + N + N + + + + recruit_id + + + + + 912 + 592 + + + + + individual_entrepreneur_npd_upsert + Change job status on error + Y + + error_description + + + + + + + + individual_entrepreneur_upsert + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_repeat.hpl new file mode 100644 index 0000000..2234039 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_repeat.hpl @@ -0,0 +1,530 @@ + + + + individual_entrepreneur_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/19 09:03:42.743 + - + 2025/08/19 09:03:42.743 + + + + + + Change job status on error + Abort + Y + + + Create job execution record + individual_entrepreneur_input + Y + + + Filter rows + Change job status on success + Y + + + individual_entrepreneur_input + Identify last row in a stream + Y + + + filter_null_npd_dates + unique_by_rec_id + Y + + + Identify last row in a stream + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Identify last row in a stream + individual_entrepreneur_upsert + Y + + + individual_entrepreneur_upsert + Filter rows + Y + + + individual_entrepreneur_upsert + Change job status on error + Y + + + unique_by_rec_id + individual_entrepreneur_npd_upsert + Y + + + Identify last row in a stream + filter_null_npd_dates + Y + + + individual_entrepreneur_npd_upsert + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT + Y + 0 + + + 1856 + 624 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1568 + 624 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1856 + 304 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + + N + + N + + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}') +ON CONFLICT (job_name, recruitment_id) +DO UPDATE +SET status = 'PROCESSING', + error_description = null, + execution_datetime = current_timestamp; + + + + 512 + 464 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 976 + 304 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1856 + 464 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 976 + 464 + + + + filter_null_npd_dates + FilterRows + + Y + + 1 + + none + + + + + + + IS NOT NULL + reg_npd_date + N + - + + + unique_by_rec_id + + + 976 + 624 + + + + individual_entrepreneur_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with filtered_data as (select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'id' as source_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP' -> 0 as ip_elem, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataUchNPD', + 'YYYY-MM-DD') as reg_npd_date, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataSnUchNPD', + 'YYYY-MM-DD') as dereg_npd_date, + true as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'aktRegIP' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + + union all + select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'id' as source_id, + ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'predRegIP' as ip_elem, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataUchNPD', + 'YYYY-MM-DD') as reg_npd_date, + to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataSnUchNPD', + 'YYYY-MM-DD') as dereg_npd_date, + false as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'predRegIP' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}') +select fd.recruit_id, + fd.source_id, + ip_elem ->> 'ogrnip' as ogrnip, + to_date(ip_elem ->> 'dataSved', 'YYYY-MM-DD') as source_update_date, + to_date(ip_elem ->> 'dataRegIP', 'YYYY-MM-DD') as registration_date, + to_date(ip_elem ->> 'dataINNNed', 'YYYY-MM-DD') as deregistration_date, + reg_npd_date, + dereg_npd_date, + fd.actual as actual +from filtered_data fd; + Y + + + 736 + 464 + + + + individual_entrepreneur_npd_upsert + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + individual_entrepreneur_npd
+ + recruit_id + recruit_id + N + + + source_id + source_id + N + + + register_date + reg_npd_date + Y + + + deregistration_date + dereg_npd_date + Y + +
+ N + + + 1328 + 624 + +
+ + individual_entrepreneur_upsert + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + source_id + source_id + + ervu_dashboard + individual_entrepreneur
+ + recruit_id + recruit_id + N + + + source_id + source_id + N + + + ogrnip + ogrnip + Y + + + source_update_date + source_update_date + Y + + + registration_date + registration_date + Y + + + deregistration_date + dereg_npd_date + Y + + + actual + actual + Y + +
+ N + + + 1568 + 464 + +
+ + unique_by_rec_id + UniqueRowsByHashSet + + Y + + 1 + + none + + + N + N + + + + recruit_id + + + + + 1136 + 624 + + + + + individual_entrepreneur_npd_upsert + Change job status on error + Y + + error_description + + + + + + + + individual_entrepreneur_upsert + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow.hpl b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow.hpl new file mode 100644 index 0000000..961a651 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow.hpl @@ -0,0 +1,356 @@ + + + + recruitment_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/19 08:50:18.281 + - + 2025/08/19 08:50:18.281 + + + + + + Get all recruitments + individual_entrepreneur_flow.hpl + Y + + + Get all recruitments + individual_entrepreneur_flow.hpl 2 + Y + + + Get all recruitments + individual_entrepreneur_flow.hpl 3 + Y + + + Get all recruitments + individual_entrepreneur_flow.hpl 4 + Y + + + Get all recruitments + individual_entrepreneur_flow.hpl 5 + Y + + + + Get all recruitments + TableInput + + Y + + 1 + + none + + + ervu-dashboard-test + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment; + N + + + 512 + 448 + + + + individual_entrepreneur_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + individual_entrepreneur_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 288 + + + + individual_entrepreneur_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + individual_entrepreneur_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 368 + + + + individual_entrepreneur_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + individual_entrepreneur_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 448 + + + + individual_entrepreneur_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + individual_entrepreneur_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 528 + + + + individual_entrepreneur_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + individual_entrepreneur_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 608 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..afcab3f --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow_delta.hpl @@ -0,0 +1,423 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/19 09:17:07.831 + - + 2025/08/19 09:17:07.831 + + + + + + Table input + individual_entrepreneur_flow_delta.hpl + Y + + + Get_max_source_update_date + Table input + Y + + + Table input + individual_entrepreneur_flow_delta.hpl 2 + Y + + + Table input + individual_entrepreneur_flow_delta.hpl 3 + Y + + + Table input + individual_entrepreneur_flow_delta.hpl 4 + Y + + + Table input + individual_entrepreneur_flow_delta.hpl 5 + Y + + + + Get_max_source_update_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select max(source_update_date) + from individual_entrepreneur; + N + + + 368 + 384 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard-test + N + 0 + Get_max_source_update_date + SELECT + r.idm_id as recruitment_id, + ? as max_source_update_date +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'individual_entrepreneur_job' +JOIN recruits_info ri + ON COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = r.idm_id + AND ri.updated_at > ( + SELECT MAX(execution_datetime) + FROM etl.job_execution + WHERE job_name = 'individual_entrepreneur_job' + AND recruitment_id = r.idm_id + ) +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 544 + 384 + + + + individual_entrepreneur_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + individual_entrepreneur_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 224 + + + + individual_entrepreneur_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + individual_entrepreneur_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 304 + + + + individual_entrepreneur_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + individual_entrepreneur_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 384 + + + + individual_entrepreneur_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + individual_entrepreneur_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 464 + + + + individual_entrepreneur_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + individual_entrepreneur_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 544 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow_repeat.hpl new file mode 100644 index 0000000..f22131b --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow_repeat.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/19 09:03:27.319 + - + 2025/08/19 09:03:27.319 + + + + + + Get all recruitments + individual_entrepreneur_flow_repeat.hpl + Y + + + Get all recruitments + individual_entrepreneur_flow_repeat.hpl 2 + Y + + + Get all recruitments + individual_entrepreneur_flow_repeat.hpl 3 + Y + + + Get all recruitments + individual_entrepreneur_flow_repeat.hpl 4 + Y + + + Get all recruitments + individual_entrepreneur_flow_repeat.hpl 5 + Y + + + + Get all recruitments + TableInput + + Y + + 1 + + none + + + ervu-dashboard-test + N + 0 + SELECT r.idm_id AS recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + AND je.job_name = 'individual_entrepreneur_job' +WHERE je.id IS NULL + OR je.status IN ('ERROR', 'PROCESSING'); + N + + + 352 + 464 + + + + individual_entrepreneur_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + individual_entrepreneur_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 304 + + + + individual_entrepreneur_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + individual_entrepreneur_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 384 + + + + individual_entrepreneur_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + individual_entrepreneur_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 464 + + + + individual_entrepreneur_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + individual_entrepreneur_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 544 + + + + individual_entrepreneur_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + individual_entrepreneur_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 624 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/support/check_if_individual_entrepreneur_execution_exists.hpl b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/support/check_if_individual_entrepreneur_execution_exists.hpl new file mode 100644 index 0000000..ad8c141 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/support/check_if_individual_entrepreneur_execution_exists.hpl @@ -0,0 +1,83 @@ + + + + check_if_individual_entrepreneur_execution_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/19 08:48:31.859 + - + 2025/08/19 08:48:31.859 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 752 + 208 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'individual_entrepreneur_job' + ) AS job_executed_flag; + N + + + 464 + 208 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/support/check_if_need_to_repeat.hpl b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/support/check_if_need_to_repeat.hpl new file mode 100644 index 0000000..ba373bd --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/support/check_if_need_to_repeat.hpl @@ -0,0 +1,85 @@ + + + + check_if_need_to_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/19 08:57:47.121 + - + 2025/08/19 08:57:47.121 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 736 + 240 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'individual_entrepreneur_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +) as need_to_repeat_job; + N + + + 448 + 240 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow.hpl b/mappings/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow.hpl new file mode 100644 index 0000000..e40fee1 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow.hpl @@ -0,0 +1,386 @@ + + + + self_employed_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 20:37:09.559 + - + 2025/08/18 20:37:09.559 + + + + + + Change job status on error + Abort + Y + + + Create job execution record + self_employed_input + Y + + + self_employed_input + Identify last row in a stream + Y + + + Identify last row in a stream + self_employed_output + Y + + + self_employed_output + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + self_employed_output + Change job status on error + Y + + + Identify last row in a stream + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT + Y + 0 + + + 1040 + 384 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + + Y + + N + + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + + 832 + 384 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + + Y + + N + + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + + 1040 + 48 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + + N + + N + + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + + 224 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 624 + 48 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1040 + 224 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 624 + 224 + + + + self_employed_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with filtered_data as (select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'aktNPD' as npd_elem, + true as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedNPD' ->> 'aktNPD' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + + union all + + select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'predNPD' as npd_elem, + false as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedNPD' ->> 'predNPD' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}') +select fd.recruit_id, + npd_elem ->> 'id' as source_id, + to_date(npd_elem ->> 'dataSved', 'YYYY-MM-DD') as source_update_date, + to_date(npd_elem ->> 'dataUchNPD', 'YYYY-MM-DD') as register_date, + to_date(npd_elem ->> 'dataSnUchNPD', 'YYYY-MM-DD') as deregistration_date, + actual +from filtered_data fd; + Y + + + 432 + 224 + + + + self_employed_output + TableOutput + + N + + 1 + + none + + + 10000 + ervu-dashboard + + + recruit_id + recruit_id + + + source_id + source_id + + + source_update_date + source_update_date + + + register_date + register_date + + + deregistration_date + deregistration_date + + + actual + actual + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + self_employed
+ + N + Y + N + Y + + + 832 + 224 + +
+ + + self_employed_output + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_delta.hpl new file mode 100644 index 0000000..5d0789d --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_delta.hpl @@ -0,0 +1,373 @@ + + + + self_employed_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/19 08:32:40.523 + - + 2025/08/19 08:32:40.523 + + + + + + Create job execution record + self_employed_input + Y + + + self_employed_upsert + Change job status on error + Y + + + Change job status on error + Abort + Y + + + self_employed_input + Identify last row in a stream + Y + + + Identify last row in a stream + self_employed_upsert + Y + + + self_employed_upsert + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Identify last row in a stream + Detect empty stream + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1040 + 416 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 848 + 416 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1040 + 16 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = current_timestamp, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 272 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 624 + 16 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1040 + 224 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 624 + 224 + + + + self_employed_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with filtered_data as (select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'aktNPD' as npd_elem, + true as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedNPD' ->> 'aktNPD' != 'null' + and + to_date(ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'aktNPD' ->> 'dataSved', 'YYYY-MM-DD') > '${MAX_SOURCE_UPDATE_DATE}' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + + union all + + select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'predNPD' as npd_elem, + false as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedNPD' ->> 'predNPD' != 'null' + and to_date(ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'predNPD' ->> 'dataSved', 'YYYY-MM-DD') > '${MAX_SOURCE_UPDATE_DATE}' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}') +select fd.recruit_id, + npd_elem ->> 'id' as source_id, + to_date(npd_elem ->> 'dataSved', 'YYYY-MM-DD') as source_update_date, + to_date(npd_elem ->> 'dataUchNPD', 'YYYY-MM-DD') as register_date, + to_date(npd_elem ->> 'dataSnUchNPD', 'YYYY-MM-DD') as deregistration_date, + actual +from filtered_data fd; + Y + + + 448 + 224 + + + + self_employed_upsert + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + source_id + source_id + + ervu_dashboard + self_employed
+ + recruit_id + recruit_id + N + + + source_id + source_id + N + + + source_update_date + source_update_date + Y + + + register_date + register_date + Y + + + actual + actual + Y + +
+ N + + + 848 + 224 + +
+ + + self_employed_upsert + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_repeat.hpl new file mode 100644 index 0000000..405ec68 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_repeat.hpl @@ -0,0 +1,370 @@ + + + + self_employed_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 21:11:27.689 + - + 2025/08/18 21:11:27.689 + + + + + + Change job status on error + Abort + Y + + + Create job execution record + self_employed_input + Y + + + Filter rows + Change job status on success + Y + + + self_employed_input + Identify last row in a stream + Y + + + Identify last row in a stream + self_employed_output + Y + + + self_employed_output + Filter rows + Y + + + self_employed_output + Change job status on error + Y + + + Identify last row in a stream + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT + Y + 0 + + + 1072 + 576 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 864 + 576 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1072 + 240 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}') +ON CONFLICT (job_name, recruitment_id) +DO UPDATE +SET status = 'PROCESSING', + error_description = null, + execution_datetime = current_timestamp; + + + 256 + 416 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 656 + 240 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + TRUE + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1072 + 416 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 656 + 416 + + + + self_employed_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with filtered_data as (select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'aktNPD' as npd_elem, + true as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedNPD' ->> 'aktNPD' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + + union all + + select ri.recruit_id, + ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'predNPD' as npd_elem, + false as actual + from recruits_info ri + where ri.info -> 'svedFL' -> 'svedNPD' ->> 'predNPD' != 'null' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}') +select fd.recruit_id, + npd_elem ->> 'id' as source_id, + to_date(npd_elem ->> 'dataSved', 'YYYY-MM-DD') as source_update_date, + to_date(npd_elem ->> 'dataUchNPD', 'YYYY-MM-DD') as register_date, + to_date(npd_elem ->> 'dataSnUchNPD', 'YYYY-MM-DD') as deregistration_date, + actual +from filtered_data fd; + Y + + + 464 + 416 + + + + self_employed_output + InsertUpdate + + N + + 1 + + none + + + 10000 + ervu-dashboard + + + = + source_id + source_id + + ervu_dashboard + self_employed
+ + recruit_id + recruit_id + N + + + source_id + source_id + N + + + source_update_date + source_update_date + Y + + + register_date + register_date + Y + + + actual + actual + Y + +
+ N + + + 864 + 416 + +
+ + + self_employed_output + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/self_employed/recruitment_five_flow.hpl b/mappings/info_recruits/citizen_tables/work/self_employed/recruitment_five_flow.hpl new file mode 100644 index 0000000..7f01048 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/self_employed/recruitment_five_flow.hpl @@ -0,0 +1,356 @@ + + + + recruitment_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 21:02:07.571 + - + 2025/08/18 21:02:07.571 + + + + + + Get all recruitments + self_employed_flow.hpl + Y + + + Get all recruitments + self_employed_flow.hpl 2 + Y + + + Get all recruitments + self_employed_flow.hpl 3 + Y + + + Get all recruitments + self_employed_flow.hpl 4 + Y + + + Get all recruitments + self_employed_flow.hpl 5 + Y + + + + Get all recruitments + TableInput + + Y + + 1 + + none + + + ervu-dashboard-test + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment; + N + + + 352 + 464 + + + + self_employed_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + self_employed_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 304 + + + + self_employed_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + self_employed_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 384 + + + + self_employed_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + self_employed_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 464 + + + + self_employed_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + self_employed_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 544 + + + + self_employed_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + self_employed_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 576 + 624 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/self_employed/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work/self_employed/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..a5979c8 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/self_employed/recruitment_five_flow_delta.hpl @@ -0,0 +1,423 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/19 08:32:02.128 + - + 2025/08/19 08:32:02.128 + + + + + + Get_max_source_update_date + Table input + Y + + + Table input + self_employed_flow_delta.hpl + Y + + + Table input + self_employed_flow_delta.hpl 2 + Y + + + Table input + self_employed_flow_delta.hpl 3 + Y + + + Table input + self_employed_flow_delta.hpl 4 + Y + + + Table input + self_employed_flow_delta.hpl 5 + Y + + + + Get_max_source_update_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select max(source_update_date) + from self_employed; + N + + + 208 + 496 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + Get_max_source_update_date + SELECT + r.idm_id AS recruitment_id, + ? as max_source_update_date +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + AND je.job_name = 'self_employed_job' + JOIN recruits_info ri + ON COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = r.idm_id + AND ri.updated_at > ( + SELECT MAX(execution_datetime) + FROM etl.job_execution + WHERE job_name = 'self_employed_job' + AND recruitment_id = r.idm_id + ) +WHERE je.status IN ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 384 + 496 + + + + self_employed_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + self_employed_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 336 + + + + self_employed_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + self_employed_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 416 + + + + self_employed_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + self_employed_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 496 + + + + self_employed_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + self_employed_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 576 + + + + self_employed_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + self_employed_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 656 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/self_employed/recruitments_five_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/work/self_employed/recruitments_five_flow_repeat.hpl new file mode 100644 index 0000000..683de97 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/self_employed/recruitments_five_flow_repeat.hpl @@ -0,0 +1,360 @@ + + + + recruitments_five_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 21:33:02.351 + - + 2025/08/18 21:33:02.351 + + + + + + Table input + self_employed_flow_repeat.hpl + Y + + + Table input + self_employed_flow_repeat.hpl 2 + Y + + + Table input + self_employed_flow_repeat.hpl 3 + Y + + + Table input + self_employed_flow_repeat.hpl 4 + Y + + + Table input + self_employed_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard-test + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN public.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'employer_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 528 + 400 + + + + self_employed_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + self_employed_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 240 + + + + self_employed_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + self_employed_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 320 + + + + self_employed_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + self_employed_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 400 + + + + self_employed_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + self_employed_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 480 + + + + self_employed_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/parallel/self_employed_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + self_employed_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 736 + 560 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/self_employed/self_employed_job.hwf b/mappings/info_recruits/citizen_tables/work/self_employed/self_employed_job.hwf new file mode 100644 index 0000000..35aea10 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/self_employed/self_employed_job.hwf @@ -0,0 +1,256 @@ + + + self_employed_job + Y + + + + - + 2025/08/18 20:32:44.739 + - + 2025/08/18 20:32:44.739 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 464 + 224 + + + + check_if_self_employed_job_execution_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/support/check_if_self_employed_job_execution_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 704 + 224 + + + + employer_job_execution_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 1008 + 224 + + + + recruitment_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/recruitment_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1328 + 224 + + + + recruitments_five_flow_repeat.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/recruitments_five_flow_repeat.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 1248 + 528 + + + + check_if_need_to_repeat.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/support/check_if_need_to_repeat.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 384 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 1008 + 528 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/work/self_employed/recruitment_five_flow_delta.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 1008 + 720 + + + + + + check_if_self_employed_job_execution_exists.hpl + employer_job_execution_exists_check + Y + Y + N + + + employer_job_execution_exists_check + recruitment_five_flow.hpl + Y + Y + N + + + employer_job_execution_exists_check + check_if_need_to_repeat.hpl + Y + N + N + + + check_if_need_to_repeat.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitments_five_flow_repeat.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + Start + check_if_self_employed_job_execution_exists.hpl + Y + Y + Y + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/self_employed/support/check_if_need_to_repeat.hpl b/mappings/info_recruits/citizen_tables/work/self_employed/support/check_if_need_to_repeat.hpl new file mode 100644 index 0000000..a7a966c --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/self_employed/support/check_if_need_to_repeat.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 21:04:50.604 + - + 2025/08/18 21:04:50.604 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 704 + 272 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'self_employed_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 416 + 272 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/self_employed/support/check_if_self_employed_job_execution_exists.hpl b/mappings/info_recruits/citizen_tables/work/self_employed/support/check_if_self_employed_job_execution_exists.hpl new file mode 100644 index 0000000..494e70f --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/self_employed/support/check_if_self_employed_job_execution_exists.hpl @@ -0,0 +1,84 @@ + + + + check_if_self_employed_job_execution_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/18 20:34:56.618 + - + 2025/08/18 20:34:56.618 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 592 + 192 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'self_employed_job' + limit 1 + ) AS job_executed_flag; + N + + + 304 + 192 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work/test.hpl b/mappings/info_recruits/citizen_tables/work/test.hpl new file mode 100644 index 0000000..dc5e802 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/test.hpl @@ -0,0 +1,595 @@ + + + + child_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + User defined Java expression 2 + Update 2 + Y + + + Update 2 + Change job status on error + Y + + + Change job status on error + Abort + Y + + + Update 2 + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Update 2 + Detect empty stream + Y + + + Detect empty stream + Change job status on success + Y + + + Table input + Table output + Y + + + Group by 2 + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression 2 + Y + + + Table output + Change job status on error + Y + + + Table output + Group by 2 + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1216 + 1024 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1216 + 800 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS', + error_description = null +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1744 + 608 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 112 + 800 + + + + Detect empty stream + DetectEmptyStream + + N + + 1 + + none + + + + + 1568 + 480 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1392 + 608 + + + + Group by 2 + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + minors_count_raw + is_minor + SUM + + + has_minor_child_raw + is_minor + MAX + + + has_dead_child_raw + is_dead + MAX + + + N + + + recruit_id + + + N + grp + + + 560 + 480 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 784 + 480 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + ri.recruit_id::uuid AS recruit_id, + ch->>'id' AS child_external_id, + NULLIF(ch->>'idERN', '') AS child_id_ern, + CASE NULLIF(ch->>'rodstvSvyazReb', '')::int + WHEN 1 THEN 3 + WHEN 2 THEN 4 + END AS kinship_type, + ch->'svedFLBS'->'fio'->>'familiya' AS last_name, + ch->'svedFLBS'->'fio'->>'imya' AS first_name, + ch->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + dates.birth_date, + dates.death_date, + ch->'svedSmert'->>'nomerZapis' AS death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' AS birth_az_number, + CASE WHEN dates.death_date IS NOT NULL THEN 1 ELSE 0 END AS is_dead, + CASE + WHEN dates.death_date IS NOT NULL THEN 0 -- умершие не могут быть несовершеннолетними + WHEN dates.birth_date IS NULL THEN 0 -- если дата рождения неизвестна, считаем взрослым + WHEN dates.birth_date > CURRENT_DATE - INTERVAL '18 years' THEN 1 + ELSE 0 + END AS is_minor +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS ch +CROSS JOIN LATERAL ( + SELECT + MAKE_DATE( + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + MAKE_DATE( + NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den', '')::int + ) AS death_date +) AS dates +WHERE + '${IDM_ID}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' + AND'${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'; + Y + + + 304 + 800 + + + + Table output + TableOutput + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + child_external_id + child_external_id + + + child_id_ern + child_id_ern + + + kinship_type + kinship_type + + + last_name + last_name + + + first_name + first_name + + + middle_name + middle_name + + + full_name + full_name + + + birth_date + birth_date + + + death_date + death_date + + + death_az_number + death_az_number + + + birth_az_number + birth_az_number + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_child
+ N + Y + N + Y + + + 560 + 800 + +
+ + Update 2 + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + minors_count + minors_count + + + has_minor_child + has_minor_child + + + has_dead_child + has_dead_child + +
+ N + Y + + + 1216 + 480 + +
+ + User defined Java expression 2 + Janino + + Y + + 1 + + none + + + + minors_count + minors_count_raw == 1 ? "1" : minors_count_raw == 2 ? "2" : minors_count_raw >= 3 ? "3 и более" : "0" + String + 10 + -1 + + + + has_minor_child + has_minor_child_raw == 1 + Boolean + -1 + -1 + + + + has_dead_child + has_dead_child_raw == 1 + Boolean + -1 + -1 + + + + + 1024 + 480 + + + + + Create job execution record + Change job status on error + N + + + + + + + + + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + Update 2 + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow.hpl b/mappings/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow.hpl new file mode 100644 index 0000000..3b7cbfc --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow.hpl @@ -0,0 +1,485 @@ + + + + work_activity_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + citizen_work_activity_input + Y + + + citizen_work_activity_output + Change job status on error + Y + + + Change job status on error + Abort + Y + + + citizen_work_activity_input + Identify last row in a stream + Y + + + Identify last row in a stream + citizen_work_activity_output + Y + + + citizen_work_activity_output + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Identify last row in a stream + Detect empty stream + Y + + + Detect empty stream + Filter rows + Y + + + Identify last row in a stream + Filter_null_parental_leave_dates + Y + + + Filter_null_parental_leave_dates + employee_parental_leave_output + Y + + + employee_parental_leave_output + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT + Y + 0 + + + 1424 + 528 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1200 + 528 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1424 + 144 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 288 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 704 + 144 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1200 + 144 + + + + Filter_null_parental_leave_dates + FilterRows + + Y + + 1 + + none + + + + + + + IS NOT NULL + parental_leave_start_date + N + - + + + employee_parental_leave_output + + + 704 + 528 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 704 + 320 + + + + citizen_work_activity_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + WITH filteredData AS (SELECT ri.recruit_id, + trud_elem, + uhod_elem + FROM recruits_info ri + CROSS JOIN LATERAL jsonb_array_elements( + ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' + ) AS trud_elem + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(trud_elem -> 'svedUhodReb') = 'array' + THEN trud_elem -> 'svedUhodReb' + ELSE '[]'::jsonb + END + ) AS uhod_elem ON true + WHERE jsonb_typeof(ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat') = 'array' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}') +SELECT fd.recruit_id, + trud_elem ->> 'id' AS source_id, + trud_elem -> 'svedOrg' ->> 'naimOrg' AS employer_name, + trud_elem ->> 'trudFunkcziya' AS position, + to_date(trud_elem ->> 'dataMeropr', 'YYYY-MM-DD') AS personnel_event_date, + trud_elem ->> 'naimTipKadrMeropr' AS personnel_event_type, + to_date(trud_elem ->> 'dataSved', 'YYYY-MM-DD') AS source_update_date, + (trud_elem ->> 'prAktMestRab') = '1' AS actual_employer, + to_date(uhod_elem ->> 'dataNachUhodReb', 'YYYY-MM-DD') AS parental_leave_start_date, + to_date(uhod_elem ->> 'dataKonUhodReb', 'YYYY-MM-DD') AS parental_leave_end_date +FROM filteredData fd; + + Y + + + 512 + 320 + + + + citizen_work_activity_output + TableOutput + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + source_id + source_id + + + recruit_id + recruit_id + + + employer_name + employer_name + + + position + position + + + personnel_event_date + personnel_event_date + + + personnel_event_type + personnel_event_type + + + source_update_date + source_update_date + + + actual_employer + actual_employer + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_work_activity
+ N + Y + N + Y + + + 1200 + 320 + +
+ + employee_parental_leave_output + TableOutput + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + citizen_work_activity_source_id + source_id + + + parental_leave_start_date + parental_leave_start_date + + + parental_leave_end_date + parental_leave_end_date + + + N + N + N + N + Y + N + ervu_dashboard + Y + employee_parental_leave
+ N + Y + N + Y + + + 960 + 528 + +
+ + + citizen_work_activity_output + Change job status on error + Y + + error_description + + + + + + + + employee_parental_leave_output + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_delta.hpl new file mode 100644 index 0000000..b3c17de --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_delta.hpl @@ -0,0 +1,470 @@ + + + + work_activity_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + citizen_work_activity_input + Y + + + Identify last row in a stream + Detect empty stream + Y + + + Identify last row in a stream + Filter_null_parental_leave_dates + Y + + + citizen_work_activity_input + Identify last row in a stream + Y + + + Detect empty stream + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Identify last row in a stream + citizen_work_activity_upsert + Y + + + Filter_null_parental_leave_dates + parental_leave_upsert + Y + + + citizen_work_activity_upsert + Change job status on success + Y + + + citizen_work_activity_upsert + Change job status on error + Y + + + parental_leave_upsert + Change job status on error + Y + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + error_code + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ?, + error_code = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1296 + 432 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1296 + 48 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = current_timestamp, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 336 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 752 + 48 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1024 + 48 + + + + Filter_null_parental_leave_dates + FilterRows + + Y + + 1 + + none + + + + + + + IS NOT NULL + parental_leave_start_date + N + - + + + parental_leave_upsert + + + 752 + 432 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 752 + 224 + + + + citizen_work_activity_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + WITH filteredData AS (SELECT ri.recruit_id, + trud_elem, + uhod_elem + FROM recruits_info ri + CROSS JOIN LATERAL jsonb_array_elements( + ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' + ) AS trud_elem + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(trud_elem -> 'svedUhodReb') = 'array' + THEN trud_elem -> 'svedUhodReb' + ELSE '[]'::jsonb + END + ) AS uhod_elem ON true + WHERE jsonb_typeof(ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat') = 'array' + --AND to_date(trud_elem ->> 'dataSved', 'YYYY-MM-DD') > '${MAX_SOURCE_UPDATE_DATE}' + --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}' +) +SELECT fd.recruit_id, + trud_elem ->> 'id' AS source_id, + trud_elem -> 'svedOrg' ->> 'naimOrg' AS employer_name, + trud_elem ->> 'trudFunkcziya' AS position, + to_date(trud_elem ->> 'dataMeropr', 'YYYY-MM-DD') AS personnel_event_date, + trud_elem ->> 'naimTipKadrMeropr' AS personnel_event_type, + to_date(trud_elem ->> 'dataSved', 'YYYY-MM-DD') AS source_update_date, + (trud_elem ->> 'prAktMestRab') = '1' AS actual_employer, + to_date(uhod_elem ->> 'dataNachUhodReb', 'YYYY-MM-DD') AS parental_leave_start_date, + to_date(uhod_elem ->> 'dataKonUhodReb', 'YYYY-MM-DD') AS parental_leave_end_date +FROM filteredData fd; + + Y + + + 544 + 224 + + + + citizen_work_activity_upsert + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + source_id + source_id + + ervu_dashboard + citizen_work_activity
+ + recruit_id + recruit_id + N + + + source_id + source_id + N + + + employer_name + employer_name + Y + + + position + position + Y + + + personnel_event_date + personnel_event_date + Y + + + personnel_event_type + personnel_event_type + Y + + + source_update_date + source_update_date + Y + + + actual_employer + actual_employer + Y + +
+ N + + + 1040 + 224 + +
+ + parental_leave_upsert + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + citizen_work_activity_source_id + source_id + + ervu_dashboard + employee_parental_leave
+ + start_date + parental_leave_start_date + Y + + + end_date + parental_leave_end_date + Y + + + citizen_work_activity_source_id + source_id + N + +
+ N + + + 1040 + 432 + +
+ + + citizen_work_activity_upsert + Change job status on error + Y + + error_description + + + + + + + + parental_leave_upsert + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_repeat.hpl new file mode 100644 index 0000000..4c3da16 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_repeat.hpl @@ -0,0 +1,468 @@ + + + + work_activity_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Detect empty stream + Filter rows + Y + + + Filter rows + Change job status on success + Y + + + Identify last row in a stream + Detect empty stream + Y + + + Identify last row in a stream + Filter_null_parental_leave_dates + Y + + + citizen_work_activity_input + Identify last row in a stream + Y + + + Create job execution record + citizen_work_activity_input + Y + + + Identify last row in a stream + citizen_work_activity_upsert + Y + + + Filter_null_parental_leave_dates + parental_leave_upsert + Y + + + parental_leave_upsert + Change job status on error + Y + + + citizen_work_activity_upsert + Change job status on error + Y + + + citizen_work_activity_upsert + Change job status on success + Y + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + error_code + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ?, + error_code = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1312 + 704 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1312 + 320 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}') +ON CONFLICT (job_name, recruitment_id) +DO UPDATE +SET status = 'PROCESSING', + error_description = null, + execution_datetime = current_timestamp; + + + 304 + 496 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 768 + 320 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1040 + 320 + + + + Filter_null_parental_leave_dates + FilterRows + + Y + + 1 + + none + + + + + + + IS NOT NULL + parental_leave_start_date + N + - + + + parental_leave_upsert + + + 768 + 704 + + + + Identify last row in a stream + DetectLastRow + + N + + 1 + + none + + + last_row + + + 768 + 496 + + + + citizen_work_activity_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + WITH filteredData AS (SELECT ri.recruit_id, + trud_elem, + uhod_elem + FROM recruits_info ri + CROSS JOIN LATERAL jsonb_array_elements( + ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' + ) AS trud_elem + LEFT JOIN LATERAL jsonb_array_elements( + CASE + WHEN jsonb_typeof(trud_elem -> 'svedUhodReb') = 'array' + THEN trud_elem -> 'svedUhodReb' + ELSE '[]'::jsonb + END + ) AS uhod_elem ON true + WHERE jsonb_typeof(ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat') = 'array' + and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}') +SELECT fd.recruit_id, + trud_elem ->> 'id' AS source_id, + trud_elem -> 'svedOrg' ->> 'naimOrg' AS employer_name, + trud_elem ->> 'trudFunkcziya' AS position, + to_date(trud_elem ->> 'dataMeropr', 'YYYY-MM-DD') AS personnel_event_date, + trud_elem ->> 'naimTipKadrMeropr' AS personnel_event_type, + to_date(trud_elem ->> 'dataSved', 'YYYY-MM-DD') AS source_update_date, + (trud_elem ->> 'prAktMestRab') = '1' AS actual_employer, + to_date(uhod_elem ->> 'dataNachUhodReb', 'YYYY-MM-DD') AS parental_leave_start_date, + to_date(uhod_elem ->> 'dataKonUhodReb', 'YYYY-MM-DD') AS parental_leave_end_date +FROM filteredData fd; + + Y + + + 544 + 496 + + + + citizen_work_activity_upsert + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + source_id + source_id + + ervu_dashboard + citizen_work_activity
+ + recruit_id + recruit_id + N + + + source_id + source_id + N + + + employer_name + employer_name + Y + + + position + position + Y + + + personnel_event_date + personnel_event_date + Y + + + personnel_event_type + personnel_event_type + Y + + + source_update_date + source_update_date + Y + + + actual_employer + actual_employer + Y + +
+ N + + + 1040 + 496 + +
+ + parental_leave_upsert + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + citizen_work_activity_source_id + source_id + + ervu_dashboard + employee_parental_leave
+ + start_date + parental_leave_start_date + Y + + + end_date + parental_leave_end_date + Y + + + citizen_work_activity_source_id + source_id + N + +
+ N + + + 1040 + 704 + +
+ + + citizen_work_activity_upsert + Change job status on error + Y + + error_description + + + + + + + + parental_leave_upsert + Change job status on error + Y + + error_description + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/work/work_activity/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work/work_activity/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..e5a0cfa --- /dev/null +++ b/mappings/info_recruits/citizen_tables/work/work_activity/recruitment_five_flow_delta.hpl @@ -0,0 +1,423 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + work_activity_flow_delta.hpl + Y + + + get_max_source_update_date + Table input + Y + + + Table input + work_activity_flow_delta.hpl 2 + Y + + + Table input + work_activity_flow_delta.hpl 3 + Y + + + Table input + work_activity_flow_delta.hpl 4 + Y + + + Table input + work_activity_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard-test + N + 0 + get_max_source_update_date + SELECT + r.idm_id as recruitment_id, + ? as max_source_update_date +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'work_activity_job' +JOIN recruits_info ri + ON COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = r.idm_id + AND ri.updated_at > ( + SELECT MAX(execution_datetime) + FROM etl.job_execution + WHERE job_name = 'work_activity_job' + AND recruitment_id = r.idm_id + ) +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + get_max_source_update_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select max(source_update_date) + FROM citizen_work_activity; + N + + + 160 + 288 + + + + work_activity_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + work_activity_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 128 + + + + work_activity_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + work_activity_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 208 + + + + work_activity_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + work_activity_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 288 + + + + work_activity_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + work_activity_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 368 + + + + work_activity_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + work_activity_job + + + MAX_SOURCE_UPDATE_DATE + max_source_update_date + + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 448 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/work_activity/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/work/work_activity/recruitment_five_flow_repeat.hpl similarity index 94% rename from mappings/info_recruits/citizen_tables/work_activity/recruitment_five_flow_on_error.hpl rename to mappings/info_recruits/citizen_tables/work/work_activity/recruitment_five_flow_repeat.hpl index e1aeda3..60675d1 100644 --- a/mappings/info_recruits/citizen_tables/work_activity/recruitment_five_flow_on_error.hpl +++ b/mappings/info_recruits/citizen_tables/work/work_activity/recruitment_five_flow_repeat.hpl @@ -1,7 +1,7 @@ - recruitment_five_flow_on_error + recruitment_five_flow_repeat Y @@ -27,12 +27,12 @@ Table input - work_activity_flow_repeat.hpl 3 + work_activity_flow_repeat.hpl 2 Y Table input - work_activity_flow_repeat.hpl 2 + work_activity_flow_repeat.hpl 3 Y @@ -57,7 +57,7 @@ none - ervu-dashboard + ervu-dashboard-test N 0 SELECT @@ -86,7 +86,7 @@ where je.status is null or je.status in('ERROR', 'PROCESSING'); local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_repeat.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_repeat.hpl N 1 @@ -142,7 +142,7 @@ where je.status is null or je.status in('ERROR', 'PROCESSING'); local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_repeat.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_repeat.hpl N 1 @@ -198,7 +198,7 @@ where je.status is null or je.status in('ERROR', 'PROCESSING'); local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_repeat.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_repeat.hpl N 1 @@ -254,7 +254,7 @@ where je.status is null or je.status in('ERROR', 'PROCESSING'); local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_repeat.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_repeat.hpl N 1 @@ -310,7 +310,7 @@ where je.status is null or je.status in('ERROR', 'PROCESSING'); local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_repeat.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow_repeat.hpl N 1 diff --git a/mappings/info_recruits/citizen_tables/work_activity/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/work/work_activity/recruitments_five_flow.hpl similarity index 95% rename from mappings/info_recruits/citizen_tables/work_activity/recruitments_five_flow.hpl rename to mappings/info_recruits/citizen_tables/work/work_activity/recruitments_five_flow.hpl index b1c9b40..2fe3d2d 100644 --- a/mappings/info_recruits/citizen_tables/work_activity/recruitments_five_flow.hpl +++ b/mappings/info_recruits/citizen_tables/work/work_activity/recruitments_five_flow.hpl @@ -57,7 +57,7 @@ none - ervu-dashboard + ervu-dashboard-test N 0 SELECT @@ -82,7 +82,7 @@ FROM ervu_dashboard.recruitment; local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow.hpl N 1 @@ -138,7 +138,7 @@ FROM ervu_dashboard.recruitment; local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow.hpl N 1 @@ -194,7 +194,7 @@ FROM ervu_dashboard.recruitment; local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow.hpl N 1 @@ -250,7 +250,7 @@ FROM ervu_dashboard.recruitment; local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow.hpl N 1 @@ -306,7 +306,7 @@ FROM ervu_dashboard.recruitment; local - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/parallel/work_activity_flow.hpl N 1 diff --git a/mappings/info_recruits/citizen_tables/work_activity/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/work/work_activity/support/check_if_need_to_repeat_job.hpl similarity index 99% rename from mappings/info_recruits/citizen_tables/work_activity/check_if_need_to_repeat_job.hpl rename to mappings/info_recruits/citizen_tables/work/work_activity/support/check_if_need_to_repeat_job.hpl index dcb65d7..5ca8d4b 100644 --- a/mappings/info_recruits/citizen_tables/work_activity/check_if_need_to_repeat_job.hpl +++ b/mappings/info_recruits/citizen_tables/work/work_activity/support/check_if_need_to_repeat_job.hpl @@ -71,7 +71,6 @@ FROM ervu_dashboard.recruitment r ON r.idm_id = je.recruitment_id and job_name = 'work_activity_job' where je.status is null or je.status in ('ERROR', 'PROCESSING') -limit 1 ) as need_to_repeat_job; N diff --git a/mappings/info_recruits/citizen_tables/work_activity/checkpoints/check_if_work_activity_job_exists.hpl b/mappings/info_recruits/citizen_tables/work/work_activity/support/check_if_work_activity_job_exists.hpl similarity index 77% rename from mappings/info_recruits/citizen_tables/work_activity/checkpoints/check_if_work_activity_job_exists.hpl rename to mappings/info_recruits/citizen_tables/work/work_activity/support/check_if_work_activity_job_exists.hpl index 70c1393..a4b4134 100644 --- a/mappings/info_recruits/citizen_tables/work_activity/checkpoints/check_if_work_activity_job_exists.hpl +++ b/mappings/info_recruits/citizen_tables/work/work_activity/support/check_if_work_activity_job_exists.hpl @@ -20,11 +20,6 @@ - - Set variables - Write to log - N - Table input Set variables @@ -74,7 +69,6 @@ SELECT 1 FROM etl.job_execution WHERE job_name = 'work_activity_job' - limit 1 ) AS job_executed_flag; N @@ -83,30 +77,6 @@ 336 - - Write to log - WriteToLog - - Y - - 1 - - none - - - Y - - - N - 0 - Basic - ${STATUS} - - - 944 - 224 - - diff --git a/mappings/info_recruits/citizen_tables/work_activity/work_activity_job.hwf b/mappings/info_recruits/citizen_tables/work/work_activity/work_activity_job.hwf similarity index 93% rename from mappings/info_recruits/citizen_tables/work_activity/work_activity_job.hwf rename to mappings/info_recruits/citizen_tables/work/work_activity/work_activity_job.hwf index e384c46..5749ad3 100644 --- a/mappings/info_recruits/citizen_tables/work_activity/work_activity_job.hwf +++ b/mappings/info_recruits/citizen_tables/work/work_activity/work_activity_job.hwf @@ -31,7 +31,7 @@ - check_if_ work_activity_job_was_executed.hpl + check_if_work_activity_job_exists.hpl PIPELINE @@ -41,7 +41,7 @@ N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/checkpoints/check_if_work_activity_job_exists.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/support/check_if_work_activity_job_exists.hpl Basic Y @@ -84,7 +84,7 @@ N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/recruitments_five_flow.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/recruitments_five_flow.hpl Basic Y @@ -95,12 +95,12 @@ N Y Y - 928 + 1040 304 - recruitment_five_flow_on_error.hpl + recruitment_five_flow_repeat.hpl PIPELINE @@ -110,7 +110,9 @@ N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/recruitment_five_flow_on_error.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/recruitment_five_flow_repeat.hpl + + Basic Y @@ -136,7 +138,7 @@ N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/check_if_need_to_repeat_job.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/support/check_if_need_to_repeat_job.hpl Basic Y @@ -179,7 +181,7 @@ N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/recruitment_five_flow_delta.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/work/work_activity/recruitment_five_flow_delta.hpl Basic Y @@ -198,13 +200,13 @@ Start - check_if_ work_activity_job_was_executed.hpl + check_if_work_activity_job_exists.hpl Y Y Y - check_if_ work_activity_job_was_executed.hpl + check_if_work_activity_job_exists.hpl work_activity_job_exists_check Y Y @@ -233,7 +235,7 @@ Simple evaluation - recruitment_five_flow_on_error.hpl + recruitment_five_flow_repeat.hpl Y Y N @@ -261,8 +263,8 @@ N -1 26 - 800 - 256 + 880 + 224 Первичка 65 diff --git a/mappings/info_recruits/citizen_tables/work_activity/delta_work_activity.hpl b/mappings/info_recruits/citizen_tables/work_activity/delta_work_activity.hpl deleted file mode 100644 index c42cfdd..0000000 --- a/mappings/info_recruits/citizen_tables/work_activity/delta_work_activity.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - delta_work_activity - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/08/05 12:54:02.780 - - - 2025/08/05 12:54:02.780 - - - - - - - - - diff --git a/mappings/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow.hpl b/mappings/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow.hpl deleted file mode 100644 index 1ade769..0000000 --- a/mappings/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow.hpl +++ /dev/null @@ -1,384 +0,0 @@ - - - - work_activity_flow - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/08/05 14:31:22.799 - - - 2025/08/05 14:31:22.799 - - - - - - Table input - Table output - Y - - - Table output - Change job status on success - Y - - - Create job execution record - Table input - Y - - - Table output - Change job status on error - Y - - - - Change job status on error - ExecSql - - Y - - 1 - - none - - - - - error_description - - - ervu-dashboard - - Y - - N - - Y - Y - N - UPDATE etl.job_execution -SET status = 'ERROR', - error_description = ? -WHERE job_name = '${JOB_NAME}' -and recruitment_id = '${IDM_ID}'; - - - - - - 992 - 512 - - - - Change job status on success - ExecSql - - Y - - 1 - - none - - - - - ervu-dashboard - Y - N - Y - N - N - UPDATE etl.job_execution -SET status = 'SUCCESS' -WHERE job_name = '${JOB_NAME}' -and recruitment_id = '${IDM_ID}'; - - - - - 992 - 320 - - - - Create job execution record - ExecSql - - Y - - 1 - - none - - - - - ervu-dashboard - N - N - Y - N - N - INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) -VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); - - - - - 288 - 320 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 10 - WITH trud_info AS (SELECT ri.info, - ri.recruit_id::uuid, - - CASE - WHEN ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' IS NULL THEN NULL - WHEN jsonb_typeof(ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat') = 'array' THEN - ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' -> 0 - END AS trud_deyat, - - CASE - WHEN ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' IS NULL THEN NULL - WHEN - jsonb_typeof(ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' -> 0 -> 'svedUhodReb') = - 'array' THEN - ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' -> 0 -> 'svedUhodReb' -> 0 - END AS parental_leave_info, - - COALESCE( - ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'aktRabotodat', - ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'predRabotodat' - ) AS employer, - - CASE - WHEN ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' IS NULL THEN NULL - WHEN jsonb_typeof(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP') = 'array' - THEN - ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP' -> 0 - ELSE - ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'predRegIP' - END AS reg_ip, - - COALESCE( - ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'aktNPD', - ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'predNPD' - ) AS self_employment - - FROM ervu_dashboard.recruits_info ri - -) -SELECT ti.recruit_id::uuid, - (ti.trud_deyat ->> 'dataMeropr')::date AS personnel_event_date, - ti.trud_deyat ->> 'naimTipKadrMeropr' AS personnel_event_type, - (ti.trud_deyat ->> 'prAktMestRab' = '1') AS current_workplace, - ti.trud_deyat ->> 'trudFunkcziya' AS position, - ti.trud_deyat -> 'svedOrg' ->> 'naimOrg' AS employer_name, - ti.employer -> 'svedYUL' ->> 'kpp' AS employer_kpp, - CASE - WHEN ti.employer->'svedYUL' IS NOT NULL THEN 'Юридическое лицо' - WHEN ti.employer->'svedIP' IS NOT NULL THEN 'Индивидуальный предприниматель' - END AS employer_category, - COALESCE( - ti.employer -> 'svedYUL' ->> 'innyul', - ti.employer -> 'svedIP' ->> 'innyfl' - ) AS employer_inn, - ti.employer -> 'svedYUL' -> 'svedOPK' ->> 'region' AS employer_address, - COALESCE( - ti.employer -> 'svedIP' ->> 'ogrnip', - ti.employer -> 'svedYUL' -> 'extend' ->> 'ogrn' - ) AS employer_ogrnip, - ti.employer -> 'extend' ->> 'tipPodrazdRabotodat' AS employer_unit_type, - ti.employer -> 'extend' ->> 'adresPodrazdRabotodat' AS employer_unit_address, - (ti.parental_leave_info ->> 'dataNachUhodReb')::date AS parental_leave_start_date, - (ti.parental_leave_info ->> 'dataKonUhodReb')::date AS parental_leave_end_date, - ( - (ti.parental_leave_info ->> 'dataNachUhodReb')::date <= current_date AND - ( - (ti.parental_leave_info ->> 'dataKonUhodReb') IS NULL OR - (ti.parental_leave_info ->> 'dataKonUhodReb')::date > current_date - ) - ) AS parental_leave_active, - (ti.reg_ip ->> 'dataRegIP')::date AS reg_ip_date, - (ti.reg_ip ->> 'dataINNNed')::date AS dereg_ip_date, - ti.reg_ip ->> 'ogrnip' AS ogrnip_ip, - ti.reg_ip IS NOT NULL AS active_ip, - ti.self_employment ->> 'dataUchNPD' AS reg_self_employment_date, - ti.self_employment ->> 'dataSnUchNPD' AS dereg_self_employment_date, - ti.self_employment IS NOT NULL AS active_self_employment -FROM trud_info ti; - - Y - - - 496 - 320 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - recruit_id - recruit_id - - - personnel_event_date - personnel_event_date - - - personnel_event_type - personnel_event_type - - - current_workplace - current_workplace - - - position - position - - - employer_name - employer_name - - - employer_kpp - employer_kpp - - - employer_category - employer_category - - - employer_inn - employer_inn - - - employer_address - employer_address - - - employer_ogrnip - employer_ogrnip - - - employer_unit_type - employer_unit_type - - - employer_unit_address - employer_unit_address - - - parental_leave_start_date - parental_leave_start_date - - - parental_leave_end_date - parental_leave_end_date - - - parental_leave_active - parental_leave_active - - - reg_ip_date - reg_ip_date - - - dereg_ip_date - dereg_ip_date - - - ogrnip_ip - ogrnip_ip - - - active_ip - active_ip - - - reg_self_employment_date - reg_self_employment_date - - - dereg_self_employment_date - dereg_self_employment_date - - - active_self_employment - active_self_employment - - - N - N - N - N - Y - N - ervu_dashboard - Y - citizen_work_activity
- N - Y - N - Y - - - 720 - 320 - -
- - - Table output - Change job status on error - Y - - error_description - - error_code - - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl deleted file mode 100644 index 1a50b86..0000000 --- a/mappings/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl +++ /dev/null @@ -1,396 +0,0 @@ - - - - work_activity_flow_delta - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/08/11 13:22:56.048 - - - 2025/08/11 13:22:56.048 - - - - - - Create job execution record - Table input - Y - - - Table input - Table output - Y - - - Table output - Change job status on error - Y - - - Table output - Change job status on success - Y - - - - Change job status on error - ExecSql - - Y - - 1 - - none - - - - - error_description - - - error_code - - - ervu-dashboard - - Y - - N - - Y - Y - N - UPDATE etl.job_execution -SET status = 'DELTA_ERROR', - error_description = ?, - error_code = ? -WHERE job_name = '${JOB_NAME}' -and recruitment_id = '${IDM_ID}'; - - - - - - 1040 - 416 - - - - Change job status on success - ExecSql - - Y - - 1 - - none - - - - - ervu-dashboard - - Y - - N - - Y - N - N - UPDATE etl.job_execution -SET status = 'DELTA_SUCCESS' -WHERE job_name = '${JOB_NAME}' -and recruitment_id = '${IDM_ID}'; - - - - - - 1040 - 224 - - - - Create job execution record - ExecSql - - Y - - 1 - - none - - - - - ervu-dashboard - N - N - Y - N - N - UPDATE etl.job_execution -SET - status = 'DELTA_PROCESSING', - execution_datetime = DEFAULT, - error_description = NULL, - error_code = NULL -where job_name = '${JOB_NAME}' -and recruitment_id = '${IDM_ID}'; - - - 336 - 224 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 10 - WITH trud_info AS (SELECT ri.info, - ri.recruit_id::uuid, - - CASE - WHEN ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' IS NULL THEN NULL - WHEN jsonb_typeof(ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat') = 'array' THEN - ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' -> 0 - END AS trud_deyat, - - CASE - WHEN ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' IS NULL THEN NULL - WHEN - jsonb_typeof(ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' -> 0 -> 'svedUhodReb') = - 'array' THEN - ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' -> 0 -> 'svedUhodReb' -> 0 - END AS parental_leave_info, - - COALESCE( - ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'aktRabotodat', - ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'predRabotodat' - ) AS employer, - - CASE - WHEN ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' IS NULL THEN NULL - WHEN jsonb_typeof(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP') = 'array' - THEN - ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP' -> 0 - ELSE - ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'predRegIP' - END AS reg_ip, - - COALESCE( - ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'aktNPD', - ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'predNPD' - ) AS self_employment - - FROM ervu_dashboard.recruits_info ri - -) -SELECT ti.recruit_id::uuid, - (ti.trud_deyat ->> 'dataMeropr')::date AS personnel_event_date, - ti.trud_deyat ->> 'naimTipKadrMeropr' AS personnel_event_type, - (ti.trud_deyat ->> 'prAktMestRab' = '1') AS current_workplace, - ti.trud_deyat ->> 'trudFunkcziya' AS position, - ti.trud_deyat -> 'svedOrg' ->> 'naimOrg' AS employer_name, - ti.employer -> 'svedYUL' ->> 'kpp' AS employer_kpp, - CASE - WHEN ti.employer->'svedYUL' IS NOT NULL THEN 'Юридическое лицо' - WHEN ti.employer->'svedIP' IS NOT NULL THEN 'Индивидуальный предприниматель' - END AS employer_category, - COALESCE( - ti.employer -> 'svedYUL' ->> 'innyul', - ti.employer -> 'svedIP' ->> 'innyfl' - ) AS employer_inn, - ti.employer -> 'svedYUL' -> 'svedOPK' ->> 'region' AS employer_address, - COALESCE( - ti.employer -> 'svedIP' ->> 'ogrnip', - ti.employer -> 'svedYUL' -> 'extend' ->> 'ogrn' - ) AS employer_ogrnip, - ti.employer -> 'extend' ->> 'tipPodrazdRabotodat' AS employer_unit_type, - ti.employer -> 'extend' ->> 'adresPodrazdRabotodat' AS employer_unit_address, - (ti.parental_leave_info ->> 'dataNachUhodReb')::date AS parental_leave_start_date, - (ti.parental_leave_info ->> 'dataKonUhodReb')::date AS parental_leave_end_date, - ( - (ti.parental_leave_info ->> 'dataNachUhodReb')::date <= current_date AND - ( - (ti.parental_leave_info ->> 'dataKonUhodReb') IS NULL OR - (ti.parental_leave_info ->> 'dataKonUhodReb')::date > current_date - ) - ) AS parental_leave_active, - (ti.reg_ip ->> 'dataRegIP')::date AS reg_ip_date, - (ti.reg_ip ->> 'dataINNNed')::date AS dereg_ip_date, - ti.reg_ip ->> 'ogrnip' AS ogrnip_ip, - ti.reg_ip IS NOT NULL AS active_ip, - ti.self_employment ->> 'dataUchNPD' AS reg_self_employment_date, - ti.self_employment ->> 'dataSnUchNPD' AS dereg_self_employment_date, - ti.self_employment IS NOT NULL AS active_self_employment -FROM trud_info ti; - - Y - - - 544 - 224 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - recruit_id - recruit_id - - - personnel_event_date - personnel_event_date - - - personnel_event_type - personnel_event_type - - - current_workplace - current_workplace - - - position - position - - - employer_name - employer_name - - - employer_kpp - employer_kpp - - - employer_category - employer_category - - - employer_inn - employer_inn - - - employer_address - employer_address - - - employer_ogrnip - employer_ogrnip - - - employer_unit_type - employer_unit_type - - - employer_unit_address - employer_unit_address - - - parental_leave_start_date - parental_leave_start_date - - - parental_leave_end_date - parental_leave_end_date - - - parental_leave_active - parental_leave_active - - - reg_ip_date - reg_ip_date - - - dereg_ip_date - dereg_ip_date - - - ogrnip_ip - ogrnip_ip - - - active_ip - active_ip - - - reg_self_employment_date - reg_self_employment_date - - - dereg_self_employment_date - dereg_self_employment_date - - - active_self_employment - active_self_employment - - - N - N - N - N - Y - N - ervu_dashboard - Y - citizen_work_activity
- N - Y - N - Y - - - 768 - 224 - -
- - - Table output - Change job status on error - Y - - error_description - - error_code - - - - - - -
diff --git a/mappings/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_repeat.hpl deleted file mode 100644 index 6d5d9cd..0000000 --- a/mappings/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_repeat.hpl +++ /dev/null @@ -1,407 +0,0 @@ - - - - work_activity_flow_repeat - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/08/08 13:25:52.319 - - - 2025/08/08 13:25:52.319 - - - - - - Create job execution record - Table input - Y - - - Table input - Table output - Y - - - Table output - Change job status on error - Y - - - Table output - Change job status on success - Y - - - - Change job status on error - ExecSql - - Y - - 1 - - none - - - - - error_description - - - error_code - - - ervu-dashboard - - Y - - N - - Y - Y - N - UPDATE etl.job_execution -SET status = 'ERROR', - error_description = ? -WHERE job_name = '${JOB_NAME}' -and recruitment_id = '${IDM_ID}'; - - - - - - 976 - 400 - - - - Change job status on success - ExecSql - - Y - - 1 - - none - - - - - ervu-dashboard - Y - N - Y - N - N - UPDATE etl.job_execution -SET status = 'SUCCESS' -WHERE job_name = '${JOB_NAME}' -and recruitment_id = '${IDM_ID}'; - - - - - 976 - 208 - - - - Create job execution record - ExecSql - - Y - - 1 - - none - - - - - ervu-dashboard - N - N - Y - N - N - INSERT INTO etl.job_execution ( - id, - job_name, - status, - execution_datetime, - error_description, - error_code, - recruitment_id -) -VALUES ( - DEFAULT, - '${JOB_NAME}', - 'PROCESSING', - DEFAULT, - NULL, - NULL, - '${IDM_ID}' -) -ON CONFLICT (job_name, recruitment_id) -DO UPDATE SET - status = 'PROCESSING', - execution_datetime = DEFAULT, - error_description = NULL, - error_code = NULL; - - - 272 - 208 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 10 - WITH trud_info AS (SELECT ri.info, - ri.recruit_id::uuid, - - CASE - WHEN ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' IS NULL THEN NULL - WHEN jsonb_typeof(ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat') = 'array' THEN - ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' -> 0 - END AS trud_deyat, - - CASE - WHEN ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' IS NULL THEN NULL - WHEN - jsonb_typeof(ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' -> 0 -> 'svedUhodReb') = - 'array' THEN - ri.info -> 'svedFL' -> 'svedTrud' -> 'trudDeyat' -> 0 -> 'svedUhodReb' -> 0 - END AS parental_leave_info, - - COALESCE( - ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'aktRabotodat', - ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'predRabotodat' - ) AS employer, - - CASE - WHEN ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' IS NULL THEN NULL - WHEN jsonb_typeof(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP') = 'array' - THEN - ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP' -> 0 - ELSE - ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'predRegIP' - END AS reg_ip, - - COALESCE( - ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'aktNPD', - ri.info -> 'svedFL' -> 'svedNPD' -> 'npd' -> 'predNPD' - ) AS self_employment - - FROM ervu_dashboard.recruits_info ri - -) -SELECT ti.recruit_id::uuid, - (ti.trud_deyat ->> 'dataMeropr')::date AS personnel_event_date, - ti.trud_deyat ->> 'naimTipKadrMeropr' AS personnel_event_type, - (ti.trud_deyat ->> 'prAktMestRab' = '1') AS current_workplace, - ti.trud_deyat ->> 'trudFunkcziya' AS position, - ti.trud_deyat -> 'svedOrg' ->> 'naimOrg' AS employer_name, - ti.employer -> 'svedYUL' ->> 'kpp' AS employer_kpp, - CASE - WHEN ti.employer->'svedYUL' IS NOT NULL THEN 'Юридическое лицо' - WHEN ti.employer->'svedIP' IS NOT NULL THEN 'Индивидуальный предприниматель' - END AS employer_category, - COALESCE( - ti.employer -> 'svedYUL' ->> 'innyul', - ti.employer -> 'svedIP' ->> 'innyfl' - ) AS employer_inn, - ti.employer -> 'svedYUL' -> 'svedOPK' ->> 'region' AS employer_address, - COALESCE( - ti.employer -> 'svedIP' ->> 'ogrnip', - ti.employer -> 'svedYUL' -> 'extend' ->> 'ogrn' - ) AS employer_ogrnip, - ti.employer -> 'extend' ->> 'tipPodrazdRabotodat' AS employer_unit_type, - ti.employer -> 'extend' ->> 'adresPodrazdRabotodat' AS employer_unit_address, - (ti.parental_leave_info ->> 'dataNachUhodReb')::date AS parental_leave_start_date, - (ti.parental_leave_info ->> 'dataKonUhodReb')::date AS parental_leave_end_date, - ( - (ti.parental_leave_info ->> 'dataNachUhodReb')::date <= current_date AND - ( - (ti.parental_leave_info ->> 'dataKonUhodReb') IS NULL OR - (ti.parental_leave_info ->> 'dataKonUhodReb')::date > current_date - ) - ) AS parental_leave_active, - (ti.reg_ip ->> 'dataRegIP')::date AS reg_ip_date, - (ti.reg_ip ->> 'dataINNNed')::date AS dereg_ip_date, - ti.reg_ip ->> 'ogrnip' AS ogrnip_ip, - ti.reg_ip IS NOT NULL AS active_ip, - ti.self_employment ->> 'dataUchNPD' AS reg_self_employment_date, - ti.self_employment ->> 'dataSnUchNPD' AS dereg_self_employment_date, - ti.self_employment IS NOT NULL AS active_self_employment -FROM trud_info ti; - - Y - - - 480 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - recruit_id - recruit_id - - - personnel_event_date - personnel_event_date - - - personnel_event_type - personnel_event_type - - - current_workplace - current_workplace - - - position - position - - - employer_name - employer_name - - - employer_kpp - employer_kpp - - - employer_category - employer_category - - - employer_inn - employer_inn - - - employer_address - employer_address - - - employer_ogrnip - employer_ogrnip - - - employer_unit_type - employer_unit_type - - - employer_unit_address - employer_unit_address - - - parental_leave_start_date - parental_leave_start_date - - - parental_leave_end_date - parental_leave_end_date - - - parental_leave_active - parental_leave_active - - - reg_ip_date - reg_ip_date - - - dereg_ip_date - dereg_ip_date - - - ogrnip_ip - ogrnip_ip - - - active_ip - active_ip - - - reg_self_employment_date - reg_self_employment_date - - - dereg_self_employment_date - dereg_self_employment_date - - - active_self_employment - active_self_employment - - - N - N - N - N - Y - N - ervu_dashboard - Y - citizen_work_activity
- N - Y - N - Y - - - 704 - 208 - -
- - - Table output - Change job status on error - Y - - error_description - - error_code - - - - - - -
diff --git a/mappings/info_recruits/job_parallel_recruits_info_citizen.hwf b/mappings/info_recruits/job_parallel_recruits_info_citizen.hwf index 4db745f..2d8c149 100644 --- a/mappings/info_recruits/job_parallel_recruits_info_citizen.hwf +++ b/mappings/info_recruits/job_parallel_recruits_info_citizen.hwf @@ -164,7 +164,7 @@ job_recruit_last_update_date.hwf citizen_job.hwf - N + Y Y Y diff --git a/mappings/info_recruits/raw_data/recruits_info/parallel/recruits_info_flow_delta.hpl b/mappings/info_recruits/raw_data/recruits_info/parallel/recruits_info_flow_delta.hpl index ba2390e..d3b2fe8 100644 --- a/mappings/info_recruits/raw_data/recruits_info/parallel/recruits_info_flow_delta.hpl +++ b/mappings/info_recruits/raw_data/recruits_info/parallel/recruits_info_flow_delta.hpl @@ -103,11 +103,8 @@ ervu-dashboard - Y - N - Y Y N @@ -118,7 +115,6 @@ WHERE job_name = '${JOB_NAME}' and recruitment_id = '${IDM_ID}'; - 944 @@ -346,6 +342,7 @@ and recruitment_id = '${IDM_ID}'; ervu_person_registry N + SELECT r.system_create_date AS created_at, r.system_update_date AS updated_at, @@ -361,7 +358,7 @@ JOIN recruits r ON r.id = ri.recruit_id WHERE '${IDM_ID}' != '' -- Проверка на пустую строку AND COALESCE(current_recruitment_id, target_recruitment_id) = '${IDM_ID}' - AND '${M_R_CR_DATE}' >= r.system_create_date + --AND '${M_R_CR_DATE}' >= r.system_create_date AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp --AND '${CR_DATE}' < ri.created_at --ORDER BY ri.created_at ASC; diff --git a/mappings/info_recruits/raw_data/restriction_document/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/raw_data/restriction_document/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..2520186 --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'restriction_document_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/raw_data/restriction_document/checkpoints/check_if_restriction_document_job_exists.hpl b/mappings/info_recruits/raw_data/restriction_document/checkpoints/check_if_restriction_document_job_exists.hpl new file mode 100644 index 0000000..ea51144 --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document/checkpoints/check_if_restriction_document_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_restriction_document_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'restriction_document_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow.hpl b/mappings/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow.hpl new file mode 100644 index 0000000..4486fd5 --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow.hpl @@ -0,0 +1,389 @@ + + + + restriction_document_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table input + Identify last row in a stream + Y + + + Identify last row in a stream + Table output + Y + + + Table output + Filter rows + Y + + + Table output + Change job status on error + Y + + + Table output + Detect empty stream + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1376 + 512 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1024 + 512 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1632 + 160 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 288 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1632 + 320 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1024 + 160 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 752 + 320 + + + + Table input + TableInput + + N + + 1 + + none + + + postgres.subpoena + N + + SELECT +* +FROM public.restriction_document +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND vk_id = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= created_at +${LIMIT_FW} + Y + + + 496 + 320 + + + + Table output + TableOutput + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + id + id + + + subpoena_id + subpoena_id + + + created_at + created_at + + + updated_at + updated_at + + + vk_id + vk_id + + + user_id + user_id + + + user_name + user_name + + + status + status + + + decision_number + decision_number + + + decision_date + decision_date + + + decision_reason + decision_reason + + + extra_info + extra_info + + + type + type + + + recruitment_name + recruitment_name + + + N + N + N + N + Y + N + ervu_dashboard + Y + restriction_document
+ N + Y + N + Y + + + 1024 + 320 + +
+ + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_delta.hpl b/mappings/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_delta.hpl new file mode 100644 index 0000000..0c9ab5d --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_delta.hpl @@ -0,0 +1,408 @@ + + + + restriction_document_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Table input + Identify last row in a stream + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Identify last row in a stream + Insert / update + Y + + + Insert / update + Filter rows + Y + + + Insert / update + Detect empty stream + Y + + + Insert / update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1168 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 944 + 400 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1248 + 64 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 336 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1248 + 224 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 944 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 736 + 224 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + + + = + created_at + created_at + + + ervu_dashboard + restriction_document
+ + id + id + N + + + subpoena_id + subpoena_id + Y + + + created_at + created_at + N + + + updated_at + updated_at + Y + + + vk_id + vk_id + Y + + + user_id + user_id + Y + + + user_name + user_name + Y + + + status + status + Y + + + decision_number + decision_number + Y + + + decision_date + decision_date + Y + + + decision_reason + decision_reason + Y + + + extra_info + extra_info + Y + + + type + type + Y + + + recruitment_name + recruitment_name + Y + +
+ N + + + 944 + 224 + +
+ + Table input + TableInput + + N + + 1 + + none + + + postgres.subpoena + N + SELECT +* +FROM public.restriction_document +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND vk_id = '${IDM_ID}' + AND updated_at >= '${M_R_UP_DATE}'::timestamp + +${LIMIT_FW} + Y + + + 544 + 224 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_repeat.hpl b/mappings/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_repeat.hpl new file mode 100644 index 0000000..809cfea --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_repeat.hpl @@ -0,0 +1,422 @@ + + + + restriction_document_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Table input + Identify last row in a stream + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Identify last row in a stream + Insert / update + Y + + + Insert / update + Filter rows + Y + + + Insert / update + Detect empty stream + Y + + + Insert / update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1248 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 960 + 400 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1440 + 48 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1440 + 208 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 960 + 48 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 720 + 208 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + + + = + created_at + created_at + + + ervu_dashboard + restriction_document
+ + id + id + N + + + subpoena_id + subpoena_id + Y + + + created_at + created_at + N + + + updated_at + updated_at + Y + + + vk_id + vk_id + Y + + + user_id + user_id + Y + + + user_name + user_name + Y + + + status + status + Y + + + decision_number + decision_number + Y + + + decision_date + decision_date + Y + + + decision_reason + decision_reason + Y + + + extra_info + extra_info + Y + + + type + type + Y + + + recruitment_name + recruitment_name + Y + +
+ N + + + 960 + 208 + +
+ + Table input + TableInput + + N + + 1 + + none + + + postgres.subpoena + N + SELECT +* +FROM public.restriction_document +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND vk_id = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= created_at +${LIMIT_FW} + Y + + + 480 + 208 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/raw_data/restriction_document/recruitment_five_flow_delta.hpl b/mappings/info_recruits/raw_data/restriction_document/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..e99c9c1 --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + restriction_document_flow_delta.hpl + Y + + + Table input + restriction_document_flow_delta.hpl 2 + Y + + + Table input + restriction_document_flow_delta.hpl 3 + Y + + + Table input + restriction_document_flow_delta.hpl 4 + Y + + + Table input + restriction_document_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'restriction_document_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + restriction_document_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 128 + + + + restriction_document_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 208 + + + + restriction_document_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 288 + + + + restriction_document_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 368 + + + + restriction_document_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 448 + + + + + + diff --git a/mappings/info_recruits/raw_data/restriction_document/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/raw_data/restriction_document/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..5bab95b --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + restriction_document_flow_repeat.hpl + Y + + + Table input + restriction_document_flow_repeat.hpl 2 + Y + + + Table input + restriction_document_flow_repeat.hpl 3 + Y + + + Table input + restriction_document_flow_repeat.hpl 4 + Y + + + Table input + restriction_document_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'restriction_document_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + restriction_document_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 560 + 208 + + + + restriction_document_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 560 + 288 + + + + restriction_document_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 560 + 368 + + + + restriction_document_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 560 + 448 + + + + restriction_document_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 560 + 528 + + + + + + diff --git a/mappings/info_recruits/raw_data/restriction_document/recruitments_five_flow.hpl b/mappings/info_recruits/raw_data/restriction_document/recruitments_five_flow.hpl new file mode 100644 index 0000000..9ef48ce --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + restriction_document_flow.hpl + Y + + + Get all recruitments ordered by created_date + restriction_document_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + restriction_document_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + restriction_document_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + restriction_document_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + restriction_document_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 768 + 144 + + + + restriction_document_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 768 + 224 + + + + restriction_document_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 768 + 304 + + + + restriction_document_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 768 + 384 + + + + restriction_document_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/parallel/restriction_document_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + restriction_document_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 768 + 464 + + + + + + diff --git a/mappings/info_recruits/raw_data/restriction_document/restriction_document_job.hwf b/mappings/info_recruits/raw_data/restriction_document/restriction_document_job.hwf new file mode 100644 index 0000000..e5a3589 --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document/restriction_document_job.hwf @@ -0,0 +1,358 @@ + + + restriction_document_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 224 + 304 + + + + check_if_restriction_document_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/checkpoints/check_if_restriction_document_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 304 + + + + restriction_document_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 752 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1120 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/recruitment_five_flow_on_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 1120 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 752 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 752 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 752 + 800 + + + + + + Start + check_if_restriction_document_job_exists.hpl + Y + Y + Y + + + check_if_restriction_document_job_exists.hpl + restriction_document_job_exists_check + Y + Y + N + + + restriction_document_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + restriction_document_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 864 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 864 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 672 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + restriction_document_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 146 + + + + diff --git a/mappings/info_recruits/raw_data/restriction_document_item/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/raw_data/restriction_document_item/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..7084d6e --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document_item/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'restriction_document_item_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/raw_data/restriction_document_item/checkpoints/check_if_restriction_document_item_job_exists.hpl b/mappings/info_recruits/raw_data/restriction_document_item/checkpoints/check_if_restriction_document_item_job_exists.hpl new file mode 100644 index 0000000..fc707be --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document_item/checkpoints/check_if_restriction_document_item_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_restriction_document_item_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'restriction_document_item_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow.hpl b/mappings/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow.hpl new file mode 100644 index 0000000..53bb855 --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow.hpl @@ -0,0 +1,530 @@ + + + + restriction_document_item_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table output + Change job status on error + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Table input + Table output + Y + + + Table output + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1312 + 464 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1312 + 320 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1808 + 192 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 288 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1552 + 192 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1552 + 288 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_active_temporary_measure + is_active_temporary_measure + MAX + + + N + + + recruit_id + + + N + grp + + + 672 + 192 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 864 + 192 + + + + Table input + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + + select +s.recruit_id, +CASE + WHEN rdi.applied_fact is true THEN 1 + ELSE 0 +END AS is_active_temporary_measure, -- has_active_temporary_measure//Признак наличия примененных временных мер +rdi.* +from public.restriction_document_item rdi +join public.restriction_document rd on +rd.id = coalesce(rdi.restriction_document_create_id,rdi.restriction_document_cancel_id) +join public.subpoena s on +s.id = rd.subpoena_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND rd.vk_id = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= rdi.created_at + +${LIMIT_FW} + Y + + + 496 + 320 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + id + id + + + restriction_document_create_id + restriction_document_create_id + + + created_at + created_at + + + updated_at + updated_at + + + restriction_id + restriction_id + + + status_applied + status_applied + + + status_text + status_text + + + applied_date + applied_date + + + cancel_date + cancel_date + + + extra_info + extra_info + + + applied_fact + applied_fact + + + restriction_document_cancel_id + restriction_document_cancel_id + + + status_canceled + status_canceled + + + foiv_code + foiv_code + + + human_readable_id + human_readable_id + + + N + N + N + N + Y + N + ervu_dashboard + Y + restriction_document_item
+ N + Y + N + Y + + + 672 + 320 + +
+ + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_active_temporary_measure + has_active_temporary_measure + +
+ N + Y + + + 1312 + 192 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_active_temporary_measure + has_active_temporary_measure_raw == 1 + Boolean + -1 + -1 + + + + + 1088 + 192 + + + + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_delta.hpl b/mappings/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_delta.hpl new file mode 100644 index 0000000..48ac0dc --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_delta.hpl @@ -0,0 +1,547 @@ + + + + restriction_document_item_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1376 + 368 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1376 + 224 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1920 + 96 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 336 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1648 + 96 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1648 + 192 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_active_temporary_measure + is_active_temporary_measure + MAX + + + N + + + recruit_id + + + N + grp + + + 736 + 96 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 928 + 96 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + + = + created_at + created_at + + ervu_dashboard + restriction_document_item
+ + id + id + N + + + restriction_document_create_id + restriction_document_create_id + Y + + + created_at + created_at + N + + + updated_at + updated_at + Y + + + restriction_id + restriction_id + Y + + + status_applied + status_applied + Y + + + status_text + status_text + Y + + + applied_date + applied_date + Y + + + cancel_date + cancel_date + Y + + + extra_info + extra_info + Y + + + applied_fact + applied_fact + Y + + + restriction_document_cancel_id + restriction_document_cancel_id + Y + + + status_canceled + status_canceled + Y + + + foiv_code + foiv_code + Y + + + human_readable_id + human_readable_id + Y + +
+ N + + + 736 + 224 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + select +s.recruit_id, +CASE + WHEN rdi.applied_fact is true THEN 1 + ELSE 0 +END AS is_active_temporary_measure, -- has_active_temporary_measure//Признак наличия примененных временных мер +rdi.* +from public.restriction_document_item rdi +join public.restriction_document rd on +rd.id = coalesce(rdi.restriction_document_create_id,rdi.restriction_document_cancel_id) +join public.subpoena s on +s.id = rd.subpoena_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND rd.vk_id = '${IDM_ID}' + AND rdi.updated_at >= '${M_R_UP_DATE}'::timestamp + +${LIMIT_FW} + Y + + + 544 + 224 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_active_temporary_measure + has_active_temporary_measure + +
+ N + Y + + + 1376 + 96 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_active_temporary_measure + has_active_temporary_measure_raw == 1 + Boolean + -1 + -1 + + + + + 1152 + 96 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_repeat.hpl b/mappings/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_repeat.hpl new file mode 100644 index 0000000..edbbe21 --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_repeat.hpl @@ -0,0 +1,563 @@ + + + + restriction_document_item_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Insert / update + Change job status on error + Y + + + Table input + Insert / update + Y + + + Group by + Identify last row in a stream + Y + + + Identify last row in a stream + User defined Java expression + Y + + + User defined Java expression + Update + Y + + + Insert / update + Group by + Y + + + Update + Change job status on error + Y + + + Update + Detect empty stream + Y + + + Update + Filter rows + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1280 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1280 + 208 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1744 + 80 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1488 + 80 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1504 + 192 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + has_active_temporary_measure + is_active_temporary_measure + MAX + + + N + + + recruit_id + + + N + grp + + + 640 + 80 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 832 + 80 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + + = + created_at + created_at + + ervu_dashboard + restriction_document_item
+ + id + id + N + + + restriction_document_create_id + restriction_document_create_id + Y + + + created_at + created_at + N + + + updated_at + updated_at + Y + + + restriction_id + restriction_id + Y + + + status_applied + status_applied + Y + + + status_text + status_text + Y + + + applied_date + applied_date + Y + + + cancel_date + cancel_date + Y + + + extra_info + extra_info + Y + + + applied_fact + applied_fact + Y + + + restriction_document_cancel_id + restriction_document_cancel_id + Y + + + status_canceled + status_canceled + Y + + + foiv_code + foiv_code + Y + + + human_readable_id + human_readable_id + Y + +
+ N + + + 640 + 208 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + + select +s.recruit_id, +CASE + WHEN rdi.applied_fact is true THEN 1 + ELSE 0 +END AS is_active_temporary_measure, -- has_active_temporary_measure//Признак наличия примененных временных мер +rdi.* +from public.restriction_document_item rdi +join public.restriction_document rd on +rd.id = coalesce(rdi.restriction_document_create_id,rdi.restriction_document_cancel_id) +join public.subpoena s on +s.id = rd.subpoena_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND rd.vk_id = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= rdi.created_at + +${LIMIT_FW} + Y + + + 480 + 208 + + + + Update + Update + + N + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_active_temporary_measure + has_active_temporary_measure + +
+ N + Y + + + 1280 + 80 + +
+ + User defined Java expression + Janino + + Y + + 1 + + none + + + + has_active_temporary_measure + has_active_temporary_measure_raw == 1 + Boolean + -1 + -1 + + + + + 1056 + 80 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + Update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/raw_data/restriction_document_item/recruitment_five_flow_delta.hpl b/mappings/info_recruits/raw_data/restriction_document_item/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..dde4920 --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document_item/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + restriction_document_item_flow_delta.hpl + Y + + + Table input + restriction_document_item_flow_delta.hpl 2 + Y + + + Table input + restriction_document_item_flow_delta.hpl 3 + Y + + + Table input + restriction_document_item_flow_delta.hpl 4 + Y + + + Table input + restriction_document_item_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'restriction_document_item_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + restriction_document_item_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 128 + + + + restriction_document_item_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 208 + + + + restriction_document_item_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 288 + + + + restriction_document_item_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 368 + + + + restriction_document_item_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 656 + 448 + + + + + + diff --git a/mappings/info_recruits/raw_data/restriction_document_item/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/raw_data/restriction_document_item/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..2090737 --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document_item/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + restriction_document_item_flow_repeat.hpl + Y + + + Table input + restriction_document_item_flow_repeat.hpl 2 + Y + + + Table input + restriction_document_item_flow_repeat.hpl 3 + Y + + + Table input + restriction_document_item_flow_repeat.hpl 4 + Y + + + Table input + restriction_document_item_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'restriction_document_item_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + restriction_document_item_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 208 + + + + restriction_document_item_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 288 + + + + restriction_document_item_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 368 + + + + restriction_document_item_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 448 + + + + restriction_document_item_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 528 + 528 + + + + + + diff --git a/mappings/info_recruits/raw_data/restriction_document_item/recruitments_five_flow.hpl b/mappings/info_recruits/raw_data/restriction_document_item/recruitments_five_flow.hpl new file mode 100644 index 0000000..973ad51 --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document_item/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + restriction_document_item_flow.hpl + Y + + + Get all recruitments ordered by created_date + restriction_document_item_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + restriction_document_item_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + restriction_document_item_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + restriction_document_item_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + restriction_document_item_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 752 + 144 + + + + restriction_document_item_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 752 + 224 + + + + restriction_document_item_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 752 + 304 + + + + restriction_document_item_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 752 + 384 + + + + restriction_document_item_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/parallel/restriction_document_item_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + restriction_document_item_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 752 + 464 + + + + + + diff --git a/mappings/info_recruits/raw_data/restriction_document_item/restriction_document_item_job.hwf b/mappings/info_recruits/raw_data/restriction_document_item/restriction_document_item_job.hwf new file mode 100644 index 0000000..2d8d4f4 --- /dev/null +++ b/mappings/info_recruits/raw_data/restriction_document_item/restriction_document_item_job.hwf @@ -0,0 +1,358 @@ + + + restriction_document_item_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 224 + 304 + + + + check_if_restriction_document_item_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/checkpoints/check_if_restriction_document_item_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 448 + 304 + + + + restriction_document_item_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 768 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1072 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/recruitment_five_flow_on_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 1072 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 768 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 768 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/restriction_document_item/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 768 + 800 + + + + + + Start + check_if_restriction_document_item_job_exists.hpl + Y + Y + Y + + + check_if_restriction_document_item_job_exists.hpl + restriction_document_item_job_exists_check + Y + Y + N + + + restriction_document_item_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + restriction_document_item_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 880 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 912 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 688 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + restriction_document_item_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 175 + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_appearance/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/raw_data/subpoena_appearance/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..22f2d41 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_appearance/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'subpoena_appearance_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_appearance/checkpoints/check_if_subpoena_appearance_job_exists.hpl b/mappings/info_recruits/raw_data/subpoena_appearance/checkpoints/check_if_subpoena_appearance_job_exists.hpl new file mode 100644 index 0000000..dbcd846 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_appearance/checkpoints/check_if_subpoena_appearance_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_subpoena_appearance_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'subpoena_appearance_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow.hpl b/mappings/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow.hpl new file mode 100644 index 0000000..cddb2f7 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow.hpl @@ -0,0 +1,361 @@ + + + + subpoena_appearance_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table input + Identify last row in a stream + Y + + + Identify last row in a stream + Table output + Y + + + Table output + Filter rows + Y + + + Table output + Change job status on error + Y + + + Table output + Detect empty stream + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1376 + 512 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1024 + 512 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1632 + 160 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 288 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1632 + 320 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1024 + 160 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 752 + 320 + + + + Table input + TableInput + + N + + 1 + + none + + + postgres.subpoena + N + + select sa.* +from public.subpoena_appearance sa +join public.subpoena s on s.id = sa.subpoena_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND s.department_id = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= sa.created_date_time +${LIMIT_FW} + Y + + + 496 + 320 + + + + Table output + TableOutput + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + id + id + + + subpoena_id + subpoena_id + + + fact_appearance + fact_appearance + + + date_appearance + date_appearance + + + nonappearance_info + nonappearance_info + + + created_date_time + created_date_time + + + change_date_time + change_date_time + + + N + N + N + N + Y + N + ervu_dashboard + Y + subpoena_appearance
+ N + Y + N + Y + + + 1024 + 320 + +
+ + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_delta.hpl b/mappings/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_delta.hpl new file mode 100644 index 0000000..d772d1a --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_delta.hpl @@ -0,0 +1,372 @@ + + + + subpoena_appearance_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Table input + Identify last row in a stream + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Identify last row in a stream + Insert / update + Y + + + Insert / update + Filter rows + Y + + + Insert / update + Detect empty stream + Y + + + Insert / update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1168 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 944 + 400 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1248 + 64 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 336 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1248 + 224 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 944 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 736 + 224 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + + = + created_date_time + created_date_time + + ervu_dashboard + subpoena_appearance
+ + id + id + N + + + created_date_time + created_date_time + N + + + subpoena_id + subpoena_id + Y + + + fact_appearance + fact_appearance + Y + + + date_appearance + date_appearance + Y + + + nonappearance_info + nonappearance_info + Y + + + change_date_time + change_date_time + Y + +
+ N + + + 944 + 224 + +
+ + Table input + TableInput + + N + + 1 + + none + + + postgres.subpoena + N + + select sa.* +from public.subpoena_appearance sa +join public.subpoena s on s.id = sa.subpoena_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND s.department_id = '${IDM_ID}' + AND sa.change_date_time >= '${M_R_UP_DATE}'::timestamp + +${LIMIT_FW} + Y + + + 544 + 224 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_repeat.hpl b/mappings/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_repeat.hpl new file mode 100644 index 0000000..2e0ee69 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_repeat.hpl @@ -0,0 +1,386 @@ + + + + subpoena_appearance_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Table input + Identify last row in a stream + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Identify last row in a stream + Insert / update + Y + + + Insert / update + Filter rows + Y + + + Insert / update + Detect empty stream + Y + + + Insert / update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1248 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 960 + 400 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1440 + 48 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1440 + 208 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 960 + 48 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 720 + 208 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + + = + created_date_time + created_date_time + + ervu_dashboard + subpoena_appearance
+ + id + id + N + + + created_date_time + created_date_time + N + + + subpoena_id + subpoena_id + Y + + + fact_appearance + fact_appearance + Y + + + date_appearance + date_appearance + Y + + + nonappearance_info + nonappearance_info + Y + + + change_date_time + change_date_time + Y + +
+ N + + + 960 + 208 + +
+ + Table input + TableInput + + N + + 1 + + none + + + postgres.subpoena + N + + select sa.* +from public.subpoena_appearance sa +join public.subpoena s on s.id = sa.subpoena_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND s.department_id = '${IDM_ID}' + AND '${M_R_CR_DATE}' >= sa.created_date_time +${LIMIT_FW} + Y + + + 480 + 208 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/raw_data/subpoena_appearance/recruitment_five_flow_delta.hpl b/mappings/info_recruits/raw_data/subpoena_appearance/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..31177ac --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_appearance/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + subpoena_appearance_flow_delta.hpl + Y + + + Table input + subpoena_appearance_flow_delta.hpl 2 + Y + + + Table input + subpoena_appearance_flow_delta.hpl 3 + Y + + + Table input + subpoena_appearance_flow_delta.hpl 4 + Y + + + Table input + subpoena_appearance_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'subpoena_appearance_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + subpoena_appearance_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 128 + + + + subpoena_appearance_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 208 + + + + subpoena_appearance_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 288 + + + + subpoena_appearance_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 368 + + + + subpoena_appearance_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 608 + 448 + + + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_appearance/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/raw_data/subpoena_appearance/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..513be76 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_appearance/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + subpoena_appearance_flow_repeat.hpl + Y + + + Table input + subpoena_appearance_flow_repeat.hpl 2 + Y + + + Table input + subpoena_appearance_flow_repeat.hpl 3 + Y + + + Table input + subpoena_appearance_flow_repeat.hpl 4 + Y + + + Table input + subpoena_appearance_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'subpoena_appearance_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + subpoena_appearance_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 208 + + + + subpoena_appearance_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 288 + + + + subpoena_appearance_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 368 + + + + subpoena_appearance_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 448 + + + + subpoena_appearance_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 528 + + + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_appearance/recruitments_five_flow.hpl b/mappings/info_recruits/raw_data/subpoena_appearance/recruitments_five_flow.hpl new file mode 100644 index 0000000..245e262 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_appearance/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + subpoena_appearance_flow.hpl + Y + + + Get all recruitments ordered by created_date + subpoena_appearance_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + subpoena_appearance_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + subpoena_appearance_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + subpoena_appearance_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + subpoena_appearance_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 144 + + + + subpoena_appearance_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 224 + + + + subpoena_appearance_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 304 + + + + subpoena_appearance_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 384 + + + + subpoena_appearance_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/parallel/subpoena_appearance_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_appearance_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 464 + + + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_appearance/subpoena_appearance_job.hwf b/mappings/info_recruits/raw_data/subpoena_appearance/subpoena_appearance_job.hwf new file mode 100644 index 0000000..0e2701c --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_appearance/subpoena_appearance_job.hwf @@ -0,0 +1,358 @@ + + + subpoena_appearance_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 176 + 304 + + + + check_if_subpoena_appearance_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/checkpoints/check_if_subpoena_appearance_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 304 + + + + subpoena_appearance_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 752 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1056 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/recruitment_five_flow_on_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 1056 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 752 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 752 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_appearance/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 752 + 800 + + + + + + Start + check_if_subpoena_appearance_job_exists.hpl + Y + Y + Y + + + check_if_subpoena_appearance_job_exists.hpl + subpoena_appearance_job_exists_check + Y + Y + N + + + subpoena_appearance_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + subpoena_appearance_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 864 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 864 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 672 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + recruits_info_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 114 + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_send_info/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/raw_data/subpoena_send_info/check_if_need_to_repeat_job.hpl new file mode 100644 index 0000000..fc7dea6 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_send_info/check_if_need_to_repeat_job.hpl @@ -0,0 +1,86 @@ + + + + check_if_need_to_repeat_job + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 12:27:51.630 + - + 2025/08/08 12:27:51.630 + + + + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + need_to_repeat_job + NEED_TO_REPEAT_JOB + ROOT_WORKFLOW + + + Y + + + 624 + 288 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS (SELECT 1 +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'subpoena_send_info_job' +where je.status is null or je.status in ('ERROR', 'PROCESSING') +limit 1 +) as need_to_repeat_job; + N + + + 336 + 288 + + + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_send_info/checkpoints/check_if_subpoena_send_info_job_exists.hpl b/mappings/info_recruits/raw_data/subpoena_send_info/checkpoints/check_if_subpoena_send_info_job_exists.hpl new file mode 100644 index 0000000..2f4bd39 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_send_info/checkpoints/check_if_subpoena_send_info_job_exists.hpl @@ -0,0 +1,113 @@ + + + + check_if_subpoena_send_info_job_exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 13:28:46.661 + - + 2025/08/05 13:28:46.661 + + + + + + Set variables + Write to log + N + + + Table input + Set variables + Y + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + job_executed_flag + JOB_EXECUTED_FLAG + PARENT_WORKFLOW + + + Y + + + 672 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT EXISTS ( + SELECT 1 + FROM etl.job_execution + WHERE job_name = 'subpoena_send_info_job' + limit 1 + ) AS job_executed_flag; + N + + + 384 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 944 + 224 + + + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow.hpl b/mappings/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow.hpl new file mode 100644 index 0000000..dea22ce --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow.hpl @@ -0,0 +1,388 @@ + + + + subpoena_send_info_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 14:31:22.799 + - + 2025/08/05 14:31:22.799 + + + + + + Create job execution record + Table input + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Table input + Identify last row in a stream + Y + + + Identify last row in a stream + Table output + Y + + + Table output + Filter rows + Y + + + Table output + Change job status on error + Y + + + Table output + Detect empty stream + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1376 + 512 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1024 + 512 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1632 + 160 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id) +VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}'); + + + + + 288 + 320 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1632 + 320 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 1024 + 160 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 752 + 320 + + + + Table input + TableInput + + N + + 1 + + none + + + postgres.subpoena + N + select ssi.* +from public.subpoena_send_info ssi +join public.subpoena s on s.id = ssi.subpoena_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND s.department_id = '${IDM_ID}' + AND s.create_date >= '${M_R_UP_DATE}'::timestamp +${LIMIT_FW} + Y + + + 496 + 320 + + + + Table output + TableOutput + + N + + 1 + + none + + + 1000 + ervu-dashboard + + + id + id + + + subpoena_id + subpoena_id + + + send_code + send_code + + + send_address + send_address + + + send_address_type + send_address_type + + + send_date + send_date + + + track_number + track_number + + + is_delivered + is_delivered + + + delivery_code + delivery_code + + + delivery_date + delivery_date + + + act_number + act_number + + + act_date + act_date + + + delivery_fio + delivery_fio + + + auto_delivery + auto_delivery + + + N + N + N + N + Y + N + ervu_dashboard + Y + subpoena_send_info
+ N + Y + N + Y + + + 1024 + 320 + +
+ + + Table output + Change job status on error + Y + + error_description + + error_code + + + + + + +
diff --git a/mappings/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_delta.hpl b/mappings/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_delta.hpl new file mode 100644 index 0000000..2bc3a65 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_delta.hpl @@ -0,0 +1,401 @@ + + + + subpoena_send_info_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:22:56.048 + - + 2025/08/11 13:22:56.048 + + + + + + Create job execution record + Table input + Y + + + Table input + Identify last row in a stream + Y + + + Detect empty stream + Change job status on success + Y + + + Filter rows + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Identify last row in a stream + Insert / update + Y + + + Insert / update + Filter rows + Y + + + Insert / update + Detect empty stream + Y + + + Insert / update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1168 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'DELTA_ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 944 + 400 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'DELTA_SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1248 + 64 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + UPDATE etl.job_execution +SET + status = 'DELTA_PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL +where job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + 336 + 224 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1248 + 224 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 944 + 64 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 736 + 224 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + ervu_dashboard + subpoena_send_info
+ + id + id + N + + + subpoena_id + subpoena_id + Y + + + send_code + send_code + Y + + + send_address + send_address + Y + + + send_address_type + send_address_type + Y + + + send_date + send_date + Y + + + track_number + track_number + Y + + + is_delivered + is_delivered + Y + + + delivery_code + delivery_code + Y + + + delivery_date + delivery_date + Y + + + act_number + act_number + Y + + + act_date + act_date + Y + + + delivery_fio + delivery_fio + Y + + + auto_delivery + auto_delivery + Y + +
+ N + + + 944 + 224 + +
+ + Table input + TableInput + + N + + 1 + + none + + + postgres.subpoena + N + + select ssi.* +from public.subpoena_send_info ssi +join public.subpoena s on s.id = ssi.subpoena_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND s.department_id = '${IDM_ID}' + AND s.status_change_date >= '${M_R_UP_DATE}'::timestamp +${LIMIT_FW} + Y + + + 544 + 224 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_repeat.hpl b/mappings/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_repeat.hpl new file mode 100644 index 0000000..394b9b4 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_repeat.hpl @@ -0,0 +1,416 @@ + + + + subpoena_send_info_flow_repeat + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/08 13:25:52.319 + - + 2025/08/08 13:25:52.319 + + + + + + Create job execution record + Table input + Y + + + Table input + Identify last row in a stream + Y + + + Filter rows + Change job status on success + Y + + + Detect empty stream + Change job status on success + Y + + + Change job status on error + Abort + Y + + + Identify last row in a stream + Insert / update + Y + + + Insert / update + Filter rows + Y + + + Insert / update + Detect empty stream + Y + + + Insert / update + Change job status on error + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1248 + 400 + + + + Change job status on error + ExecSql + + Y + + 1 + + none + + + + + error_description + + + ervu-dashboard + Y + N + Y + Y + N + UPDATE etl.job_execution +SET status = 'ERROR', + error_description = ? +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 960 + 400 + + + + Change job status on success + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + Y + N + Y + N + N + UPDATE etl.job_execution +SET status = 'SUCCESS' +WHERE job_name = '${JOB_NAME}' +and recruitment_id = '${IDM_ID}'; + + + + + 1440 + 48 + + + + Create job execution record + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + INSERT INTO etl.job_execution ( + id, + job_name, + status, + execution_datetime, + error_description, + recruitment_id +) +VALUES ( + DEFAULT, + '${JOB_NAME}', + 'PROCESSING', + DEFAULT, + NULL, + '${IDM_ID}' +) +ON CONFLICT (job_name, recruitment_id) +DO UPDATE SET + status = 'PROCESSING', + execution_datetime = DEFAULT, + error_description = NULL + + + + 272 + 208 + + + + Detect empty stream + DetectEmptyStream + + Y + + 1 + + none + + + + + 1440 + 208 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + = + last_row + N + - + + N + -1 + constant + -1 + Y + Boolean + + + + Change job status on success + + + 960 + 48 + + + + Identify last row in a stream + DetectLastRow + + Y + + 1 + + none + + + last_row + + + 720 + 208 + + + + Insert / update + InsertUpdate + + N + + 1 + + none + + + 100 + ervu-dashboard + + + = + id + id + + + ervu_dashboard + subpoena_send_info
+ + id + id + N + + + subpoena_id + subpoena_id + Y + + + send_code + send_code + Y + + + send_address + send_address + Y + + + send_address_type + send_address_type + Y + + + send_date + send_date + Y + + + track_number + track_number + Y + + + is_delivered + is_delivered + Y + + + delivery_code + delivery_code + Y + + + delivery_date + delivery_date + Y + + + act_number + act_number + Y + + + act_date + act_date + Y + + + delivery_fio + delivery_fio + Y + + + auto_delivery + auto_delivery + Y + +
+ N + + + 960 + 208 + +
+ + Table input + TableInput + + N + + 1 + + none + + + postgres.subpoena + N + select ssi.* +from public.subpoena_send_info ssi +join public.subpoena s on s.id = ssi.subpoena_id +WHERE + '${IDM_ID}' != '' -- Проверка на пустую строку + AND s.department_id = '${IDM_ID}' + AND s.create_date >= '${M_R_UP_DATE}'::timestamp +${LIMIT_FW} + Y + + + 480 + 208 + + + + + Insert / update + Change job status on error + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/raw_data/subpoena_send_info/recruitment_five_flow_delta.hpl b/mappings/info_recruits/raw_data/subpoena_send_info/recruitment_five_flow_delta.hpl new file mode 100644 index 0000000..befe783 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_send_info/recruitment_five_flow_delta.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_delta + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/11 13:16:11.204 + - + 2025/08/11 13:16:11.204 + + + + + + Table input + subpoena_send_info_flow_delta.hpl + Y + + + Table input + subpoena_send_info_flow_delta.hpl 2 + Y + + + Table input + subpoena_send_info_flow_delta.hpl 3 + Y + + + Table input + subpoena_send_info_flow_delta.hpl 4 + Y + + + Table input + subpoena_send_info_flow_delta.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'subpoena_send_info_job' +where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING'); + N + + + 352 + 288 + + + + subpoena_send_info_flow_delta.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 624 + 128 + + + + subpoena_send_info_flow_delta.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 624 + 208 + + + + subpoena_send_info_flow_delta.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 624 + 288 + + + + subpoena_send_info_flow_delta.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 624 + 368 + + + + subpoena_send_info_flow_delta.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_delta.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 624 + 448 + + + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_send_info/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/raw_data/subpoena_send_info/recruitment_five_flow_on_error.hpl new file mode 100644 index 0000000..422e804 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_send_info/recruitment_five_flow_on_error.hpl @@ -0,0 +1,360 @@ + + + + recruitment_five_flow_on_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/08/05 12:54:50.126 + - + 2025/08/05 12:54:50.126 + + + + + + Table input + subpoena_send_info_flow_repeat.hpl + Y + + + Table input + subpoena_send_info_flow_repeat.hpl 2 + Y + + + Table input + subpoena_send_info_flow_repeat.hpl 3 + Y + + + Table input + subpoena_send_info_flow_repeat.hpl 4 + Y + + + Table input + subpoena_send_info_flow_repeat.hpl 5 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.idm_id as recruitment_id +FROM ervu_dashboard.recruitment r + LEFT JOIN etl.job_execution je + ON r.idm_id = je.recruitment_id + and job_name = 'subpoena_send_info_job' +where je.status is null or je.status in('ERROR', 'PROCESSING'); + N + + + 272 + 368 + + + + subpoena_send_info_flow_repeat.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 208 + + + + subpoena_send_info_flow_repeat.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 288 + + + + subpoena_send_info_flow_repeat.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 368 + + + + subpoena_send_info_flow_repeat.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 448 + + + + subpoena_send_info_flow_repeat.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow_repeat.hpl + N + + 1 + + + + + IDM_ID + recruitment_id + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 544 + 528 + + + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_send_info/recruitments_five_flow.hpl b/mappings/info_recruits/raw_data/subpoena_send_info/recruitments_five_flow.hpl new file mode 100644 index 0000000..d69253d --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_send_info/recruitments_five_flow.hpl @@ -0,0 +1,373 @@ + + + + recruitments_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Get all recruitments ordered by created_date + subpoena_send_info_flow.hpl + Y + + + Get all recruitments ordered by created_date + subpoena_send_info_flow.hpl 2 + Y + + + Get all recruitments ordered by created_date + subpoena_send_info_flow.hpl 3 + Y + + + Get all recruitments ordered by created_date + subpoena_send_info_flow.hpl 4 + Y + + + Get all recruitments ordered by created_date + subpoena_send_info_flow.hpl 5 + Y + + + + Get all recruitments ordered by created_date + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +idm_id AS recruitment +FROM ervu_dashboard.recruitment +${COMMENT}/* +where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a', +'cff66da8-2be0-4839-bd8e-332b1a150031', +'34c8685e-f08a-4877-afb1-a0589800a21c', +'0e10678c-f272-41c3-94dd-c15830321f9a', +'9703f108-761a-467a-aad3-89617e5539ed', +'55eae374-9bb5-4295-9e3a-5fbcdaba870d', +'dad6c101-34be-45c3-8173-57190cb69dfb', +'fc10523f-af31-4f6b-b0e2-00799758f634', +'61807cc2-9913-4060-8802-0672877c28c8', +'eba7fd7d-e3da-49a7-8e65-8fc85e47190e', +'f59afe6d-c166-4196-a489-6d17f02fc05e', +'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9', +'0fe2bdf0-afbb-402d-93da-67e511799afa', +'6139de3b-2378-496f-9fca-7df7dab90832', +'50ba73dd-1726-48f1-8b7c-7a77ff965299') +${COMMENT}*/ + Y + + + 432 + 304 + + + + subpoena_send_info_flow.hpl + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 144 + + + + subpoena_send_info_flow.hpl 2 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 224 + + + + subpoena_send_info_flow.hpl 3 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 304 + + + + subpoena_send_info_flow.hpl 4 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 384 + + + + subpoena_send_info_flow.hpl 5 + PipelineExecutor + + Y + + 1 + + none + + + local + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/parallel/subpoena_send_info_flow.hpl + N + + 1 + + + + + IDM_ID + recruitment + + + + JOB_NAME + + subpoena_send_info_job + + Y + + + ExecutionTime + ExecutionResult + ExecutionNrErrors + ExecutionLinesRead + ExecutionLinesWritten + ExecutionLinesInput + ExecutionLinesOutput + ExecutionLinesRejected + ExecutionLinesUpdated + ExecutionLinesDeleted + ExecutionFilesRetrieved + ExecutionExitStatus + ExecutionLogText + ExecutionLogChannelId + + + FileName + + + + 720 + 464 + + + + + + diff --git a/mappings/info_recruits/raw_data/subpoena_send_info/subpoena_send_info_job.hwf b/mappings/info_recruits/raw_data/subpoena_send_info/subpoena_send_info_job.hwf new file mode 100644 index 0000000..3db6b35 --- /dev/null +++ b/mappings/info_recruits/raw_data/subpoena_send_info/subpoena_send_info_job.hwf @@ -0,0 +1,358 @@ + + + subpoena_send_info_job + Y + + + + 0 + - + 2025/08/05 12:45:28.561 + - + 2025/08/05 12:45:28.561 + + + COMMENT + + + + + LIMIT_FW + ; + + + + M_R_CR_DATE + 3001-01-01 00:00:00 + + + + M_R_UP_DATE + 0001-01-01 00:00:00 + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 224 + 304 + + + + check_if_subpoena_send_info_job_exists.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/checkpoints/check_if_subpoena_send_info_job_exists.hpl + Basic + + Y + + N + local + N + N + Y + N + 448 + 304 + + + + subpoena_send_info_job_exists_check + + SIMPLE_EVAL + + boolean + false + equal + equal + N + variable + JOB_EXECUTED_FLAG + N + 752 + 304 + + + + recruitments_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/recruitments_five_flow.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1040 + 304 + + + + recruitment_five_flow_on_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/recruitment_five_flow_on_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 1040 + 608 + + + + check_if_need_to_repeat_job.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/check_if_need_to_repeat_job.hpl + Basic + + Y + + N + local + N + N + Y + N + 752 + 464 + + + + Simple evaluation + + SIMPLE_EVAL + + boolean + true + equal + equal + N + variable + NEED_TO_REPEAT_JOB + N + 752 + 608 + + + + recruitment_five_flow_delta.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/subpoena_send_info/recruitment_five_flow_delta.hpl + Basic + + Y + + N + local + N + N + Y + N + 752 + 800 + + + + + + Start + check_if_subpoena_send_info_job_exists.hpl + Y + Y + Y + + + check_if_subpoena_send_info_job_exists.hpl + subpoena_send_info_job_exists_check + Y + Y + N + + + subpoena_send_info_job_exists_check + recruitments_five_flow.hpl + Y + Y + N + + + subpoena_send_info_job_exists_check + check_if_need_to_repeat_job.hpl + Y + N + N + + + check_if_need_to_repeat_job.hpl + Simple evaluation + Y + Y + N + + + Simple evaluation + recruitment_five_flow_on_error.hpl + Y + Y + N + + + Simple evaluation + recruitment_five_flow_delta.hpl + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 864 + 256 + Первичка + 65 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 864 + 560 + Повторка + 64 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + -1 + 26 + 672 + 720 + Дельта + 49 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 150 + 1200 + 80 + subpoena_send_info_job + +M_R_UP_DATE + +M_R_CR_DATE + +0001-01-01 00:00:00 + +3001-01-01 00:00:00 + 141 + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/reference_data/restriction_document_status.hpl similarity index 72% rename from mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing_delta.hpl rename to mappings/info_recruits/reference_data/restriction_document_status.hpl index 8be76b7..75245f5 100644 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing_delta.hpl +++ b/mappings/info_recruits/reference_data/restriction_document_status.hpl @@ -1,7 +1,7 @@ - change_status_to_processing_delta + restriction_document_status Y @@ -13,9 +13,9 @@ 1000 100 - - 2025/06/16 13:42:26.494 + 2025/08/25 16:29:15.233 - - 2025/06/16 13:42:26.494 + 2025/08/25 16:29:15.233 @@ -42,32 +42,32 @@ = - job_name - job_name + id + id - public - etl_checkpoints
+ ervu_dashboard + restriction_document_status
- job_name - job_name + id + id N - record_created - record_created + code + code Y - status - status + name + name Y
N - 1248 - 352 + 832 + 272 @@ -81,19 +81,15 @@ none - ervu-dashboard + postgres.subpoena N 0 - SELECT - 'PROCESSING' AS status, - 'delta_child' AS job_name, - current_timestamp AS record_created ---FROM public.etl_checkpoints + SELECT * FROM public.restriction_document_status N - 832 - 352 + 464 + 272 diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow2_success.hpl b/mappings/info_recruits/reference_data/send_dictionary.hpl similarity index 66% rename from mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow2_success.hpl rename to mappings/info_recruits/reference_data/send_dictionary.hpl index 0c50fd3..3d75733 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow2_success.hpl +++ b/mappings/info_recruits/reference_data/send_dictionary.hpl @@ -1,7 +1,7 @@ - change_status_delta_child_flow2_success + send_dictionary Y @@ -13,9 +13,9 @@ 1000 100 - - 2025/06/16 12:20:06.191 + 2025/08/27 18:10:55.738 - - 2025/06/16 12:20:06.191 + 2025/08/27 18:10:55.738 @@ -42,32 +42,48 @@ = - job_name - job_name + id + id + - public - etl_checkpoints
+ ervu_dashboard + send_dictionary
- job_name - job_name + id + id N - record_created - record_created + code + code Y - status - status + hidden + hidden + Y + + + name + name + Y + + + to_front + to_front + Y + + + type + type Y
N - 1152 - 304 + 880 + 288 @@ -81,20 +97,15 @@ none - ervu-dashboard + postgres.subpoena N 0 - SELECT - 'delta_child_flow2' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - - + select * from public.send_dictionary N - 784 - 304 + 496 + 288 diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow3_error.hpl b/mappings/info_recruits/reference_data/subpoena_reason.hpl similarity index 71% rename from mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow3_error.hpl rename to mappings/info_recruits/reference_data/subpoena_reason.hpl index 16a7007..c2fc8d8 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow3_error.hpl +++ b/mappings/info_recruits/reference_data/subpoena_reason.hpl @@ -1,7 +1,7 @@ - change_status_delta_child_flow3_error + subpoena_reason Y @@ -13,9 +13,9 @@ 1000 100 - - 2025/06/16 12:20:06.191 + 2025/08/21 14:45:11.431 - - 2025/06/16 12:20:06.191 + 2025/08/21 14:45:11.431 @@ -42,32 +42,38 @@ = - job_name - job_name + id + id + - public - etl_checkpoints
+ ervu_dashboard + subpoena_reason
- job_name - job_name + id + id N - record_created - record_created + name + name Y - status - status + code + code + Y + + + type + type Y
N - 1152 - 304 + 1264 + 464 @@ -81,18 +87,15 @@ none - ervu-dashboard + postgres.subpoena N 0 - SELECT - 'delta_child_flow3' as job_name, - 'ERROR' as status, - current_timestamp as record_created + SELECT * FROM public.subpoena_reason N - 784 - 304 + 768 + 464 diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow2_error.hpl b/mappings/info_recruits/reference_data/subpoena_status.hpl similarity index 71% rename from mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow2_error.hpl rename to mappings/info_recruits/reference_data/subpoena_status.hpl index a420549..7b03598 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow2_error.hpl +++ b/mappings/info_recruits/reference_data/subpoena_status.hpl @@ -1,7 +1,7 @@ - change_status_delta_child_flow2_error + subpoena_status Y @@ -13,9 +13,9 @@ 1000 100 - - 2025/06/16 12:20:06.191 + 2025/09/03 11:49:15.431 - - 2025/06/16 12:20:06.191 + 2025/09/03 11:49:15.431 @@ -42,32 +42,33 @@ = - job_name - job_name + id + id + - public - etl_checkpoints
+ ervu_dashboard + subpoena_status
- job_name - job_name + id + id N - record_created - record_created + code + code Y - status - status + name + name Y
N - 1152 - 304 + 1008 + 336 @@ -81,18 +82,15 @@ none - ervu-dashboard + postgres.subpoena N 0 - SELECT - 'delta_child_flow2' as job_name, - 'ERROR' as status, - current_timestamp as record_created + select * from public.subpoena_status N - 784 - 304 + 624 + 336 diff --git a/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_address.hpl b/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_address.hpl new file mode 100644 index 0000000..1061e29 --- /dev/null +++ b/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_address.hpl @@ -0,0 +1,121 @@ + + + + recruitment_rows_five_flow_citizen_address + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 832 + 304 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH ordered AS ( + SELECT + idm_id, + created_at, + ROW_NUMBER() OVER (ORDER BY created_at) AS rn, + COUNT(*) OVER () AS total_rows + from ervu_dashboard.recruitment +), +splitted AS ( + SELECT *, + CEIL(total_rows / 5.0) AS part_size, + FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, + ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position + FROM ordered +), +pivoted AS ( + SELECT + position, + + MAX(CASE WHEN flow_num = 1 THEN created_at END) AS cr_flow1, + MAX(CASE WHEN flow_num = 1 THEN idm_id::text END) AS idm_flow1, + + MAX(CASE WHEN flow_num = 2 THEN created_at END) AS cr_flow2, + MAX(CASE WHEN flow_num = 2 THEN idm_id::text END) AS idm_flow2, + + MAX(CASE WHEN flow_num = 3 THEN created_at END) AS cr_flow3, + MAX(CASE WHEN flow_num = 3 THEN idm_id::text END) AS idm_flow3, + + MAX(CASE WHEN flow_num = 4 THEN created_at END) AS cr_flow4, + MAX(CASE WHEN flow_num = 4 THEN idm_id::text END) AS idm_flow4, + + MAX(CASE WHEN flow_num = 5 THEN created_at END) AS cr_flow5, + MAX(CASE WHEN flow_num = 5 THEN idm_id::text END) AS idm_flow5 + + FROM splitted + GROUP BY position + ORDER BY position +) +SELECT + cr_flow1, + IDM_FLOW1::uuid, + cr_flow2, + IDM_FLOW2::uuid, + cr_flow3, + IDM_FLOW3::uuid, + cr_flow4, + IDM_FLOW4::uuid, + cr_flow5, + IDM_FLOW5::uuid +FROM pivoted +limit 3 + N + + + 464 + 304 + + + + + + diff --git a/mappings_new/info_recruits/checkpoints/checkpoint_job_info_recruits_from_json.hpl b/mappings_new/info_recruits/checkpoints/checkpoint_job_info_recruits_from_json.hpl index cb521a8..b8d99cd 100644 --- a/mappings_new/info_recruits/checkpoints/checkpoint_job_info_recruits_from_json.hpl +++ b/mappings_new/info_recruits/checkpoints/checkpoint_job_info_recruits_from_json.hpl @@ -21,9 +21,9 @@ - JSON input state_job_???.json + JSON input state_job_passport.json Filter rows - N + Y JSON input state_child_delta.json @@ -31,9 +31,9 @@ Y - JSON input state_???_delta.json + JSON input state_passport_delta.json Filter rows - N + Y JSON input state_job_child.json @@ -129,7 +129,6 @@ N -1 - constant -1 job_child @@ -178,7 +177,6 @@ N -1 - constant -1 delta_child @@ -215,6 +213,108 @@ String + + + + + + = + pipeline + N + OR + + N + -1 + + constant + -1 + delta_passport + String + + + + + + = + status + N + AND + + N + -1 + + constant + -1 + ERROR + String + + + + = + pipeline + N + OR + + N + -1 + + constant + -1 + delta_passport + String + + + + + + + + = + pipeline + N + OR + + N + -1 + + constant + -1 + job_passport + String + + + + + + = + status + N + AND + + N + -1 + + constant + -1 + ERROR + String + + + + = + pipeline + N + OR + + N + -1 + + constant + -1 + job_passport + String + + = pipeline @@ -238,7 +338,7 @@
- JSON input state_???_delta.json + JSON input state_passport_delta.json JsonInput Y @@ -260,7 +360,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_delta.json + ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/state_passport_delta.json N @@ -312,81 +412,6 @@ 832 - - JSON input state_job_???.json - JsonInput - - Y - - 1 - - none - - - N - - N - N - N - N - N - Y - Y - Y - - - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_job_citizen.json - - - N - N - - - - pipeline - $.pipeline - String - - - - - -1 - -1 - none - N - - - status - $.status - String - - - - - -1 - -1 - none - N - - - 0 - N - N - - - - - - - - - - - - 448 - 912 - - JSON input state_child_delta.json JsonInput @@ -462,6 +487,81 @@ 656 + + JSON input state_job_passport.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/state_job_passport.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 912 + + JSON input state_job_child.json JsonInput @@ -598,13 +698,13 @@ none + Basic Y - - N 0 - Basic ${STATUS} + + 1520 @@ -622,13 +722,13 @@ none + Basic Y - - N 0 - Basic ${STATUS} + + 1520 diff --git a/mappings_new/info_recruits/citizen_tables/child/delta_child.hpl b/mappings_new/info_recruits/citizen_tables/child/delta_child.hpl index e758f3c..6eb97b0 100644 --- a/mappings_new/info_recruits/citizen_tables/child/delta_child.hpl +++ b/mappings_new/info_recruits/citizen_tables/child/delta_child.hpl @@ -23,9 +23,161 @@ Table input Insert / update + N + + + Table input + Execute SQL script + Y + + + Group by + Select values + Y + + + Select values + Update + Y + + + Table input + Group by Y
+ + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + child_external_id + + + child_id_ern + + + kinship_type + + + last_name + + + first_name + + + middle_name + + + full_name + + + birth_date + + + death_date + + + death_az_number + + + birth_az_number + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_child ( + recruit_id, + child_external_id, + child_id_ern, + kinship_type, + last_name, + first_name, + middle_name, + full_name, + birth_date, + death_date, + death_az_number, + birth_az_number +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, child_external_id) +DO UPDATE SET + child_id_ern = EXCLUDED.child_id_ern, + kinship_type = EXCLUDED.kinship_type, + last_name = EXCLUDED.last_name, + first_name = EXCLUDED.first_name, + middle_name = EXCLUDED.middle_name, + full_name = EXCLUDED.full_name, + birth_date = EXCLUDED.birth_date, + death_date = EXCLUDED.death_date, + death_az_number = EXCLUDED.death_az_number, + birth_az_number = EXCLUDED.birth_az_number; + + + 768 + 224 + + + + Group by + GroupBy + + N + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + minors_count + is_minor + SUM + + + has_minor_child + is_minor + MAX + + + has_dead_child + is_dead + MAX + + + Y + + + recruit_id + + + N + grp + + + 864 + 272 + + Insert / update InsertUpdate @@ -45,6 +197,11 @@ recruit_id recruit_id + + = + child_external_id + child_external_id + ervu_dashboard citizen_child
@@ -82,6 +239,31 @@ kinship_type Y + + child_external_id + child_external_id + N + + + first_name + first_name + Y + + + middle_name + middle_name + Y + + + last_name + last_name + Y + + + child_id_ern + child_id_ern + Y + N @@ -90,11 +272,111 @@ 352
+ + Select values + SelectValues + + Y + + 1 + + none + + + + + has_dead_child + + + has_minor_child + + + minors_count + + + recruit_id + + N + + has_dead_child + has_dead_child + Boolean + -2 + -2 + + false + + + false + + + + + + + + has_minor_child + has_minor_child + Boolean + -2 + -2 + + false + + + false + + + + + + + + minors_count + minors_count + Integer + -2 + -2 + + false + + + false + + + + + + + + recruit_id + recruit_id + String + -2 + -2 + + false + + + false + + + + + + + + + + 976 + 224 + + Table input TableInput - Y + N 1 @@ -104,32 +386,51 @@ ervu-dashboard N 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_person_registry_raw.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку + SELECT + ri.recruit_id::uuid AS recruit_id, + ch->>'id' AS child_external_id, + NULLIF(ch->>'idERN', '') AS child_id_ern, + CASE NULLIF(ch->>'rodstvSvyazReb', '')::int + WHEN 1 THEN 3 + WHEN 2 THEN 4 + END AS kinship_type, + ch->'svedFLBS'->'fio'->>'familiya' AS last_name, + ch->'svedFLBS'->'fio'->>'imya' AS first_name, + ch->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + dates.birth_date, + dates.death_date, + ch->'svedSmert'->>'nomerZapis' AS death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' AS birth_az_number, + (dates.death_date IS NOT NULL) AS is_dead, + (dates.death_date IS NULL AND dates.birth_date > CURRENT_DATE - INTERVAL '18 years') AS is_minor +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS ch +CROSS JOIN LATERAL ( + SELECT + MAKE_DATE( + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + MAKE_DATE( + NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den', '')::int + ) AS death_date +) AS dates +WHERE + --'${ID_F1}' != '' --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date - AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id + '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND r.update_date >= '${M_R_UP_DATE}'::timestamp + AND jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'; + Y @@ -137,6 +438,49 @@ join child on r.recruit_id = child.recruit_id 352 + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + minors_count + minors_count + + + has_minor_child + has_minor_child + + + has_dead_child + has_dead_child + +
+ N + Y + + + 1088 + 192 + +
diff --git a/mappings_new/info_recruits/citizen_tables/child/job_child.hwf b/mappings_new/info_recruits/citizen_tables/child/job_child.hwf index 99c7624..358297b 100644 --- a/mappings_new/info_recruits/citizen_tables/child/job_child.hwf +++ b/mappings_new/info_recruits/citizen_tables/child/job_child.hwf @@ -108,13 +108,17 @@ N N N - N + Y ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow1.hpl Basic + + ID_F1 + IDM_FLOW1 + Y - N + Y local N N @@ -134,13 +138,17 @@ N N N - N + Y ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow2.hpl Basic + + ID_F2 + IDM_FLOW2 + Y - N + Y local N N @@ -160,13 +168,17 @@ N N N - N + Y ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow3.hpl Basic + + ID_F3 + IDM_FLOW3 + Y - N + Y local N N @@ -186,13 +198,17 @@ N N N - N + Y ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow4.hpl Basic + + ID_F4 + IDM_FLOW4 + Y - N + Y local N N @@ -212,13 +228,17 @@ N N N - N + Y ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow5.hpl Basic + + ID_F5 + IDM_FLOW5 + Y - N + Y local N N @@ -652,13 +672,17 @@ N N N - N + Y ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow1.hpl Basic + + ID_F1 + IDM_FLOW1 + Y - N + Y local N N @@ -678,13 +702,17 @@ N N N - N + Y ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow2.hpl Basic + + ID_F2 + IDM_FLOW2 + Y - N + Y local N N @@ -704,13 +732,17 @@ N N N - N + Y ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow3.hpl Basic + + ID_F3 + IDM_FLOW3 + Y - N + Y local N N @@ -730,13 +762,17 @@ N N N - N + Y ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow4.hpl Basic + + ID_F4 + IDM_FLOW4 + Y - N + Y local N N @@ -756,13 +792,17 @@ N N N - N + Y ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow5.hpl Basic + + ID_F5 + IDM_FLOW5 + Y - N + Y local N N @@ -1080,6 +1120,10 @@ ${PROJECT_HOME}/info_recruits/citizen_tables/child/delta_child.hpl Basic + + M_R_UP_DATE + ${M_R_UP_DATE} + Y N @@ -1093,7 +1137,7 @@ - Success delta_citizen + Success delta_child SUCCESS @@ -1143,7 +1187,7 @@ - error delta_citizen + error delta_child SUCCESS @@ -1425,14 +1469,14 @@ Simple child WHERE ERROR Y N - Y + N
branching_child.hpl Simple child WHERE SUCCESS Y - N - Y + Y + N checkpoint_child_error.hpl @@ -1639,14 +1683,14 @@ state_delta_child_success - Success delta_citizen + Success delta_child Y Y N state_delta_child_error - error delta_citizen + error delta_child Y Y N diff --git a/mappings_new/info_recruits/citizen_tables/child/job_recruit_last_update_date.hwf b/mappings_new/info_recruits/citizen_tables/child/job_recruit_last_update_date.hwf index fe4c912..5872f7e 100644 --- a/mappings_new/info_recruits/citizen_tables/child/job_recruit_last_update_date.hwf +++ b/mappings_new/info_recruits/citizen_tables/child/job_recruit_last_update_date.hwf @@ -41,7 +41,7 @@ N N N - ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/child/recruit_update_date_ervu_dashboard.hpl Basic diff --git a/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow1.hpl b/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow1.hpl index 255ea10..d327ee5 100644 --- a/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow1.hpl +++ b/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow1.hpl @@ -19,6 +19,28 @@ 2025/05/21 14:05:02.260
+ + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 58 + 656 + 32 + Привожу minor_count к нужному формату +Как это пофиксить без Select хз((( +Часа три искал решения + 247 + @@ -34,9 +56,116 @@ Table input Insert / update + N + + + Table input + Execute SQL script + Y + + + Table input + Group by + Y + + + Group by + Select values + Y + + + Select values + Update Y + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + child_external_id + + + child_id_ern + + + kinship_type + + + last_name + + + first_name + + + middle_name + + + full_name + + + birth_date + + + death_date + + + death_az_number + + + birth_az_number + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_child ( + recruit_id, + child_external_id, + child_id_ern, + kinship_type, + last_name, + first_name, + middle_name, + full_name, + birth_date, + death_date, + death_az_number, + birth_az_number +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, child_external_id) +DO UPDATE SET + child_id_ern = EXCLUDED.child_id_ern, + kinship_type = EXCLUDED.kinship_type, + last_name = EXCLUDED.last_name, + first_name = EXCLUDED.first_name, + middle_name = EXCLUDED.middle_name, + full_name = EXCLUDED.full_name, + birth_date = EXCLUDED.birth_date, + death_date = EXCLUDED.death_date, + death_az_number = EXCLUDED.death_az_number, + birth_az_number = EXCLUDED.birth_az_number; + + + 592 + 80 + + Get variables GetVariable @@ -64,6 +193,245 @@ 400 + + Group by + GroupBy + + N + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + minors_count + is_minor + SUM + + + has_minor_child + is_minor + MAX + + + has_dead_child + is_dead + MAX + + + Y + + + recruit_id + + + N + grp + + + 656 + 192 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + child_external_id + child_external_id + + ervu_dashboard + citizen_child
+ + recruit_id + recruit_id + N + + + birth_az_number + birth_az_number + Y + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + full_name + full_name + Y + + + kinship_type + kinship_type + Y + + + child_external_id + child_external_id + N + + + first_name + first_name + Y + + + middle_name + middle_name + Y + + + last_name + last_name + Y + + + child_id_ern + child_id_ern + Y + +
+ N + + + 944 + 288 + +
+ + Select values + SelectValues + + Y + + 1 + + none + + + + + has_dead_child + + + has_minor_child + + + minors_count + + + recruit_id + + N + + has_dead_child + has_dead_child + Boolean + -2 + -2 + + false + + + false + + + + + + + + has_minor_child + has_minor_child + Boolean + -2 + -2 + + false + + + false + + + + + + + + minors_count + minors_count + Integer + -2 + -2 + + false + + + false + + + + + + + + recruit_id + recruit_id + String + -2 + -2 + + false + + + false + + + + + + + + + + 784 + 144 + + Select values 4 2 SelectValues @@ -105,7 +473,7 @@ Table input TableInput - Y + N 1 @@ -115,41 +483,60 @@ ervu-dashboard N 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_person_registry_raw.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку + SELECT + ri.recruit_id::uuid AS recruit_id, + ch->>'id' AS child_external_id, + NULLIF(ch->>'idERN', '') AS child_id_ern, + CASE NULLIF(ch->>'rodstvSvyazReb', '')::int + WHEN 1 THEN 3 + WHEN 2 THEN 4 + END AS kinship_type, + ch->'svedFLBS'->'fio'->>'familiya' AS last_name, + ch->'svedFLBS'->'fio'->>'imya' AS first_name, + ch->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + dates.birth_date, + dates.death_date, + ch->'svedSmert'->>'nomerZapis' AS death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' AS birth_az_number, + (dates.death_date IS NOT NULL) AS is_dead, + (dates.death_date IS NULL AND dates.birth_date > CURRENT_DATE - INTERVAL '18 years') AS is_minor +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS ch +CROSS JOIN LATERAL ( + SELECT + MAKE_DATE( + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + MAKE_DATE( + NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den', '')::int + ) AS death_date +) AS dates +WHERE + '${ID_F1}' != '' AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'; + Y - 448 + 496 288 - Insert / update - InsertUpdate + Update + Update Y @@ -160,6 +547,7 @@ join child on r.recruit_id = child.recruit_id 100 ervu-dashboard + Y = @@ -167,48 +555,26 @@ join child on r.recruit_id = child.recruit_id recruit_id ervu_dashboard - citizen_child
+ citizen
- recruit_id - recruit_id - N + minors_count + minors_count - birth_az_number - birth_az_number - Y + has_minor_child + has_minor_child - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y + has_dead_child + has_dead_child
- N + N + Y - 944 - 288 + 880 + 112
diff --git a/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow2.hpl b/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow2.hpl deleted file mode 100644 index 25a1f51..0000000 --- a/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow2.hpl +++ /dev/null @@ -1,142 +0,0 @@ - - - - child_flow2 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/05/21 14:05:02.260 - - - 2025/05/21 14:05:02.260 - - - - - - Table input - Insert / update - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_person_registry_raw.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}' - AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y - - - 560 - 288 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_child
- - recruit_id - recruit_id - N - - - birth_az_number - birth_az_number - Y - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - full_name - full_name - Y - - - kinship_type - kinship_type - Y - -
- N - - - 1088 - 288 - -
- - - -
diff --git a/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow3.hpl b/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow3.hpl index b54983c..b918861 100644 --- a/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow3.hpl +++ b/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow3.hpl @@ -23,12 +23,32 @@ Table input Insert / update + N + + + Table input + Execute SQL script + Y + + + Group by + Select values + Y + + + Select values + Update + Y + + + Table input + Group by Y - Table input - TableInput + Execute SQL script + ExecSql Y @@ -37,39 +57,125 @@ none + + + recruit_id + + + child_external_id + + + child_id_ern + + + kinship_type + + + last_name + + + first_name + + + middle_name + + + full_name + + + birth_date + + + death_date + + + death_az_number + + + birth_az_number + + ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_person_registry_raw.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' - AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_child ( + recruit_id, + child_external_id, + child_id_ern, + kinship_type, + last_name, + first_name, + middle_name, + full_name, + birth_date, + death_date, + death_az_number, + birth_az_number +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, child_external_id) +DO UPDATE SET + child_id_ern = EXCLUDED.child_id_ern, + kinship_type = EXCLUDED.kinship_type, + last_name = EXCLUDED.last_name, + first_name = EXCLUDED.first_name, + middle_name = EXCLUDED.middle_name, + full_name = EXCLUDED.full_name, + birth_date = EXCLUDED.birth_date, + death_date = EXCLUDED.death_date, + death_az_number = EXCLUDED.death_az_number, + birth_az_number = EXCLUDED.birth_az_number; - 672 - 352 + 800 + 208 + + + + Group by + GroupBy + + N + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + minors_count + is_minor + SUM + + + has_minor_child + is_minor + MAX + + + has_dead_child + is_dead + MAX + + + Y + + + recruit_id + + + N + grp + + + 896 + 256 @@ -91,6 +197,11 @@ join child on r.recruit_id = child.recruit_id recruit_id recruit_id + + = + child_external_id + child_external_id + ervu_dashboard citizen_child
@@ -128,6 +239,31 @@ join child on r.recruit_id = child.recruit_id kinship_type Y + + child_external_id + child_external_id + N + + + first_name + first_name + Y + + + middle_name + middle_name + Y + + + last_name + last_name + Y + + + child_id_ern + child_id_ern + Y + N @@ -136,6 +272,214 @@ join child on r.recruit_id = child.recruit_id 352
+ + Select values + SelectValues + + Y + + 1 + + none + + + + + has_dead_child + + + has_minor_child + + + minors_count + + + recruit_id + + N + + has_dead_child + has_dead_child + Boolean + -2 + -2 + + false + + + false + + + + + + + + has_minor_child + has_minor_child + Boolean + -2 + -2 + + false + + + false + + + + + + + + minors_count + minors_count + Integer + -2 + -2 + + false + + + false + + + + + + + + recruit_id + recruit_id + String + -2 + -2 + + false + + + false + + + + + + + + + + 1008 + 208 + + + + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + ri.recruit_id::uuid AS recruit_id, + ch->>'id' AS child_external_id, + NULLIF(ch->>'idERN', '') AS child_id_ern, + CASE NULLIF(ch->>'rodstvSvyazReb', '')::int + WHEN 1 THEN 3 + WHEN 2 THEN 4 + END AS kinship_type, + ch->'svedFLBS'->'fio'->>'familiya' AS last_name, + ch->'svedFLBS'->'fio'->>'imya' AS first_name, + ch->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + dates.birth_date, + dates.death_date, + ch->'svedSmert'->>'nomerZapis' AS death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' AS birth_az_number, + (dates.death_date IS NOT NULL) AS is_dead, + (dates.death_date IS NULL AND dates.birth_date > CURRENT_DATE - INTERVAL '18 years') AS is_minor +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS ch +CROSS JOIN LATERAL ( + SELECT + MAKE_DATE( + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + MAKE_DATE( + NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den', '')::int + ) AS death_date +) AS dates +WHERE + '${ID_F3}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'; + + Y + + + 672 + 352 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + minors_count + minors_count + + + has_minor_child + has_minor_child + + + has_dead_child + has_dead_child + +
+ N + Y + + + 1120 + 176 + +
diff --git a/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow4.hpl b/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow4.hpl index ae5598f..db7d3f7 100644 --- a/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow4.hpl +++ b/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow4.hpl @@ -23,12 +23,32 @@ Table input Insert / update + N + + + Table input + Execute SQL script + Y + + + Group by + Select values + Y + + + Select values + Update + Y + + + Table input + Group by Y - Table input - TableInput + Execute SQL script + ExecSql Y @@ -37,39 +57,125 @@ none + + + recruit_id + + + child_external_id + + + child_id_ern + + + kinship_type + + + last_name + + + first_name + + + middle_name + + + full_name + + + birth_date + + + death_date + + + death_az_number + + + birth_az_number + + ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_person_registry_raw.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' - AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_child ( + recruit_id, + child_external_id, + child_id_ern, + kinship_type, + last_name, + first_name, + middle_name, + full_name, + birth_date, + death_date, + death_az_number, + birth_az_number +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, child_external_id) +DO UPDATE SET + child_id_ern = EXCLUDED.child_id_ern, + kinship_type = EXCLUDED.kinship_type, + last_name = EXCLUDED.last_name, + first_name = EXCLUDED.first_name, + middle_name = EXCLUDED.middle_name, + full_name = EXCLUDED.full_name, + birth_date = EXCLUDED.birth_date, + death_date = EXCLUDED.death_date, + death_az_number = EXCLUDED.death_az_number, + birth_az_number = EXCLUDED.birth_az_number; - 528 - 320 + 624 + 176 + + + + Group by + GroupBy + + N + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + minors_count + is_minor + SUM + + + has_minor_child + is_minor + MAX + + + has_dead_child + is_dead + MAX + + + Y + + + recruit_id + + + N + grp + + + 736 + 224 @@ -91,6 +197,11 @@ join child on r.recruit_id = child.recruit_id recruit_id recruit_id + + = + child_external_id + child_external_id + ervu_dashboard citizen_child
@@ -128,6 +239,31 @@ join child on r.recruit_id = child.recruit_id kinship_type Y + + child_external_id + child_external_id + N + + + first_name + first_name + Y + + + middle_name + middle_name + Y + + + last_name + last_name + Y + + + child_id_ern + child_id_ern + Y + N @@ -136,6 +272,214 @@ join child on r.recruit_id = child.recruit_id 320
+ + Select values + SelectValues + + Y + + 1 + + none + + + + + has_dead_child + + + has_minor_child + + + minors_count + + + recruit_id + + N + + has_dead_child + has_dead_child + Boolean + -2 + -2 + + false + + + false + + + + + + + + has_minor_child + has_minor_child + Boolean + -2 + -2 + + false + + + false + + + + + + + + minors_count + minors_count + Integer + -2 + -2 + + false + + + false + + + + + + + + recruit_id + recruit_id + String + -2 + -2 + + false + + + false + + + + + + + + + + 848 + 176 + + + + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + ri.recruit_id::uuid AS recruit_id, + ch->>'id' AS child_external_id, + NULLIF(ch->>'idERN', '') AS child_id_ern, + CASE NULLIF(ch->>'rodstvSvyazReb', '')::int + WHEN 1 THEN 3 + WHEN 2 THEN 4 + END AS kinship_type, + ch->'svedFLBS'->'fio'->>'familiya' AS last_name, + ch->'svedFLBS'->'fio'->>'imya' AS first_name, + ch->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + dates.birth_date, + dates.death_date, + ch->'svedSmert'->>'nomerZapis' AS death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' AS birth_az_number, + (dates.death_date IS NOT NULL) AS is_dead, + (dates.death_date IS NULL AND dates.birth_date > CURRENT_DATE - INTERVAL '18 years') AS is_minor +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS ch +CROSS JOIN LATERAL ( + SELECT + MAKE_DATE( + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + MAKE_DATE( + NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den', '')::int + ) AS death_date +) AS dates +WHERE + '${ID_F4}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'; + + Y + + + 528 + 320 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + minors_count + minors_count + + + has_minor_child + has_minor_child + + + has_dead_child + has_dead_child + +
+ N + Y + + + 960 + 128 + +
diff --git a/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow5.hpl b/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow5.hpl index 36bf1e2..427f0c7 100644 --- a/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow5.hpl +++ b/mappings_new/info_recruits/citizen_tables/child/parallel/child_flow5.hpl @@ -23,12 +23,32 @@ Table input Insert / update + N + + + Table input + Execute SQL script + Y + + + Group by + Select values + Y + + + Select values + Update + Y + + + Table input + Group by Y - Table input - TableInput + Execute SQL script + ExecSql Y @@ -37,39 +57,125 @@ none + + + recruit_id + + + child_external_id + + + child_id_ern + + + kinship_type + + + last_name + + + first_name + + + middle_name + + + full_name + + + birth_date + + + death_date + + + death_az_number + + + birth_az_number + + ervu-dashboard - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from ervu_person_registry_raw.recruits_info ri -join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' - AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -) -select - r.recruit_id::uuid recruit_id, - ch->>'naimRodstvSvyazReb' kinship_type, - concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', - ch->'svedFLBS'->'fio'->>'imya', - ch->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, - NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, - ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from ervu_dashboard.citizen r -join child on r.recruit_id = child.recruit_id - Y + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_child ( + recruit_id, + child_external_id, + child_id_ern, + kinship_type, + last_name, + first_name, + middle_name, + full_name, + birth_date, + death_date, + death_az_number, + birth_az_number +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, child_external_id) +DO UPDATE SET + child_id_ern = EXCLUDED.child_id_ern, + kinship_type = EXCLUDED.kinship_type, + last_name = EXCLUDED.last_name, + first_name = EXCLUDED.first_name, + middle_name = EXCLUDED.middle_name, + full_name = EXCLUDED.full_name, + birth_date = EXCLUDED.birth_date, + death_date = EXCLUDED.death_date, + death_az_number = EXCLUDED.death_az_number, + birth_az_number = EXCLUDED.birth_az_number; - 560 - 368 + 688 + 224 + + + + Group by + GroupBy + + N + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + minors_count + is_minor + SUM + + + has_minor_child + is_minor + MAX + + + has_dead_child + is_dead + MAX + + + Y + + + recruit_id + + + N + grp + + + 784 + 272 @@ -91,6 +197,11 @@ join child on r.recruit_id = child.recruit_id recruit_id recruit_id + + = + child_external_id + child_external_id + ervu_dashboard citizen_child
@@ -128,6 +239,31 @@ join child on r.recruit_id = child.recruit_id kinship_type Y + + child_external_id + child_external_id + N + + + first_name + first_name + Y + + + middle_name + middle_name + Y + + + last_name + last_name + Y + + + child_id_ern + child_id_ern + Y + N @@ -136,6 +272,214 @@ join child on r.recruit_id = child.recruit_id 368
+ + Select values + SelectValues + + Y + + 1 + + none + + + + + has_dead_child + + + has_minor_child + + + minors_count + + + recruit_id + + N + + has_dead_child + has_dead_child + Boolean + -2 + -2 + + false + + + false + + + + + + + + has_minor_child + has_minor_child + Boolean + -2 + -2 + + false + + + false + + + + + + + + minors_count + minors_count + Integer + -2 + -2 + + false + + + false + + + + + + + + recruit_id + recruit_id + String + -2 + -2 + + false + + + false + + + + + + + + + + 880 + 224 + + + + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + ri.recruit_id::uuid AS recruit_id, + ch->>'id' AS child_external_id, + NULLIF(ch->>'idERN', '') AS child_id_ern, + CASE NULLIF(ch->>'rodstvSvyazReb', '')::int + WHEN 1 THEN 3 + WHEN 2 THEN 4 + END AS kinship_type, + ch->'svedFLBS'->'fio'->>'familiya' AS last_name, + ch->'svedFLBS'->'fio'->>'imya' AS first_name, + ch->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + dates.birth_date, + dates.death_date, + ch->'svedSmert'->>'nomerZapis' AS death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' AS birth_az_number, + (dates.death_date IS NOT NULL) AS is_dead, + (dates.death_date IS NULL AND dates.birth_date > CURRENT_DATE - INTERVAL '18 years') AS is_minor +FROM ervu_dashboard.recruits_info ri +JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS ch +CROSS JOIN LATERAL ( + SELECT + MAKE_DATE( + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + MAKE_DATE( + NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den', '')::int + ) AS death_date +) AS dates +WHERE + '${ID_F5}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'; + + Y + + + 560 + 368 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + minors_count + minors_count + + + has_minor_child + has_minor_child + + + has_dead_child + has_dead_child + +
+ N + Y + + + 1008 + 176 + +
diff --git a/mappings_new/info_recruits/citizen_tables/child/recruit_update_date_ervu_dashboard.hpl b/mappings_new/info_recruits/citizen_tables/child/recruit_update_date_ervu_dashboard.hpl index 5aa7685..6f63f21 100644 --- a/mappings_new/info_recruits/citizen_tables/child/recruit_update_date_ervu_dashboard.hpl +++ b/mappings_new/info_recruits/citizen_tables/child/recruit_update_date_ervu_dashboard.hpl @@ -45,8 +45,8 @@ updated_at AS system_update_date, current_timestamp AS record_created, 'job_recruits_info' AS workflow -FROM ervu_person_registry_raw.recruits_info -WHERE updated_at = (SELECT MAX(updated_at) FROM ervu_person_registry_raw.recruits_info) +FROM ervu_dashboard.recruits_info +WHERE updated_at = (SELECT MAX(updated_at) FROM ervu_dashboard.recruits_info) limit 1 N @@ -74,11 +74,14 @@ limit 1 N N N + Y + N public N recruit_create
+ N Y N diff --git a/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl b/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl index bd4629d..27e8b7b 100644 --- a/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl @@ -196,6 +196,11 @@ reason_registration Y + + marital_status + marital_status + Y + N @@ -274,7 +279,7 @@ r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, diff --git a/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl b/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl index 7da9f7e..da408b6 100644 --- a/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl @@ -153,6 +153,11 @@ reason_registration Y + + marital_status + marital_status + Y + N @@ -194,7 +199,7 @@ r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, diff --git a/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl b/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl index cebde2f..867f1da 100644 --- a/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl @@ -153,6 +153,11 @@ reason_registration Y + + marital_status + marital_status + Y + N @@ -194,7 +199,7 @@ r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, diff --git a/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl b/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl index 91bb987..f5805df 100644 --- a/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl @@ -153,6 +153,11 @@ reason_registration Y + + marital_status + marital_status + Y + N @@ -194,7 +199,7 @@ r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, diff --git a/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl b/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl index ba4aad2..733ca56 100644 --- a/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl @@ -153,6 +153,11 @@ reason_registration Y + + marital_status + marital_status + Y + N @@ -194,7 +199,7 @@ r.vu_current_info, r.military_registration_date AS date_registration, r.vu_unset_date AS date_deregistration, - --ri.info->'svedFL'->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + NULLIF(ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh','')::int AS marital_status, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, --ri.info->'svedFL'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, --ri.info->'svedFL'->'svedVoin'->'voin'->>'dataReg' AS issue_date, diff --git a/mappings/info_recruits/citizen_tables/child/branching_child_delta.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/branching_citizen_address.hpl similarity index 55% rename from mappings/info_recruits/citizen_tables/child/branching_child_delta.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_address/branching_citizen_address.hpl index 382688b..254a003 100644 --- a/mappings/info_recruits/citizen_tables/child/branching_child_delta.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/branching_citizen_address.hpl @@ -1,7 +1,7 @@ - branching_child_delta + branching_citizen_address Y @@ -21,18 +21,93 @@ - Set variables 2 - Write to log 2 - N + JSON input state_job_citizen_address.json + Set variables + Y - Table input - Set variables 2 - Y + Set variables + Write to log + N - Set variables 2 + JSON input state_job_citizen_address.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_job_citizen_address.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 816 + 448 + + + + Set variables SetVariable Y @@ -57,56 +132,12 @@ Y - 1056 - 256 + 1072 + 448 - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT - COALESCE(job_name, 'job_child_delta') AS PIPELINE, - COALESCE(status, 'ERROR') AS STATUS, - current_timestamp::timestamp as record_created -FROM ( - select - CASE - WHEN status = 'PROCESSING' THEN 'ERROR' - ELSE status - END AS status, - job_name - from public.etl_checkpoints - where job_name = 'job_child_delta' - - UNION ALL - - SELECT NULL, NULL - WHERE NOT EXISTS ( - SELECT 1 - FROM public.etl_checkpoints - WHERE job_name = 'job_child_delta' - ) -) t - N - - - 816 - 256 - - - - Write to log 2 + Write to log WriteToLog Y @@ -132,8 +163,8 @@ FROM ( ${STATUS} - 1280 - 256 + 1296 + 448 diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_child_error.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/checkpoint_citizen_address_error.hpl similarity index 98% rename from mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_child_error.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/checkpoint_citizen_address_error.hpl index 0f593da..6229d0c 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_child_error.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/checkpoint_citizen_address_error.hpl @@ -1,7 +1,7 @@ - checkpoint_child_error + checkpoint_citizen_address_error Y @@ -112,7 +112,7 @@ flow_ranges AS ( recr_inf AS ( SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id + join ervu_dashboard.citizen_address ca on ca.recruit_id = cit.recruit_id ), flow_data AS ( SELECT diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/checkpoint_job_citizen_address.hpl similarity index 79% rename from mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/checkpoint_job_citizen_address.hpl index 06568da..887591a 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/checkpoint_job_citizen_address.hpl @@ -1,7 +1,7 @@ - checkpoint_job_child + checkpoint_job_citizen_address Y @@ -23,62 +23,32 @@ Filter rows Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update Y - Dummy (do nothing) - JSON input state_child_flow1.json - N + JSON input state_citizen_address_flow1.json + Filter rows + Y - Dummy (do nothing) - JSON input state_child_flow2.json - N + JSON input state_citizen_address_flow2.json + Filter rows + Y - Dummy (do nothing) - JSON input state_child_flow3.json - N + JSON input state_citizen_address_flow3.json + Filter rows + Y - Dummy (do nothing) - JSON input state_child_flow4.json - N + JSON input state_citizen_address_flow4.json + Filter rows + Y - Dummy (do nothing) - JSON input state_child_flow5.json - N + JSON input state_citizen_address_flow5.json + Filter rows + Y @@ -101,23 +71,6 @@ 592 - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - Filter rows FilterRows @@ -144,9 +97,10 @@ N -1 + constant -1 - child_flow1 + citizen_address_flow1 String @@ -192,9 +146,10 @@ N -1 + constant -1 - child_flow2 + citizen_address_flow2 String @@ -240,9 +195,10 @@ N -1 + constant -1 - child_flow3 + citizen_address_flow3 String @@ -288,9 +244,10 @@ N -1 + constant -1 - child_flow4 + citizen_address_flow4 String @@ -336,9 +293,10 @@ N -1 + constant -1 - child_flow5 + citizen_address_flow5 String @@ -395,51 +353,7 @@ - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json + JSON input state_citizen_address_flow1.json JsonInput Y @@ -461,7 +375,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow1.json N @@ -514,7 +428,7 @@ - JSON input state_child_flow2.json + JSON input state_citizen_address_flow2.json JsonInput Y @@ -536,7 +450,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow2.json N @@ -589,7 +503,7 @@ - JSON input state_child_flow3.json + JSON input state_citizen_address_flow3.json JsonInput Y @@ -611,7 +525,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow3.json N @@ -664,7 +578,7 @@ - JSON input state_child_flow4.json + JSON input state_citizen_address_flow4.json JsonInput Y @@ -686,7 +600,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow4.json N @@ -739,7 +653,7 @@ - JSON input state_child_flow5.json + JSON input state_citizen_address_flow5.json JsonInput Y @@ -761,7 +675,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow5.json N @@ -813,56 +727,6 @@ 752 - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'child_flow1', - 'child_flow2', - 'child_flow3', - 'child_flow4', - 'child_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'child_flow1', - 'child_flow2', - 'child_flow3', - 'child_flow4', - 'child_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_child' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - diff --git a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/xxjob_create_files_child.hwf b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/job_create_files_citizen_address.hwf similarity index 71% rename from mappings/info_recruits/citizen_tables/prosecution/checkpoints/xxjob_create_files_child.hwf rename to mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/job_create_files_citizen_address.hwf index b31ca9f..20d9635 100644 --- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/xxjob_create_files_child.hwf +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/job_create_files_citizen_address.hwf @@ -1,6 +1,6 @@ - job_create_files_child + job_create_files_citizen_address Y @@ -31,90 +31,90 @@ - state_child_flow2_new + state_citizen_address_flow2_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow2" + "pipeline": "citizen_address_flow2" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow2.json N 848 416 - state_child_flow1_new + state_citizen_address_flow1_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow1" + "pipeline": "citizen_address_flow1" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow1.json N 848 336 - state_child_flow3_new + state_citizen_address_flow3_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow3" + "pipeline": "citizen_address_flow3" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow3.json N 848 496 - state_child_flow4_new + state_citizen_address_flow4_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow4" + "pipeline": "citizen_address_flow4" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow4.json N 848 576 - state_child_flow5_new + state_citizen_address_flow5_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow5" + "pipeline": "citizen_address_flow5" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow5.json N 848 656 @@ -131,12 +131,12 @@ - Delete file state_job_child + Delete file state_job_citizen_address DELETE_FILE N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_job_citizen_address.json N 848 256 @@ -146,69 +146,69 @@ Start - state_child_flow3_new + state_citizen_address_flow3_new Y Y Y Start - state_child_flow2_new + state_citizen_address_flow2_new Y Y Y Start - state_child_flow1_new + state_citizen_address_flow1_new Y Y Y Start - state_child_flow4_new + state_citizen_address_flow4_new Y Y Y Start - state_child_flow5_new + state_citizen_address_flow5_new Y Y Y - state_child_flow5_new + state_citizen_address_flow5_new Success Y Y N - state_child_flow4_new + state_citizen_address_flow4_new Success Y Y N - state_child_flow3_new + state_citizen_address_flow3_new Success Y Y N - state_child_flow2_new + state_citizen_address_flow2_new Success Y Y N - state_child_flow1_new + state_citizen_address_flow1_new Success Y Y @@ -216,13 +216,13 @@ Start - Delete file state_job_child + Delete file state_job_citizen_address Y Y Y - Delete file state_job_child + Delete file state_job_citizen_address Success Y Y diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_delta.json b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_delta.json new file mode 100644 index 0000000..d4291b5 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_delta.json @@ -0,0 +1,6 @@ +{ + "status": "SUCCESS", + "pipeline": "delta_citizen_address", + "max_create_date": "2025/04/08 20:21:38.528691000", + "max_update_date": "2025/04/09 00:25:46.935442000" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow1.json b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow1.json new file mode 100644 index 0000000..9d49159 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow1.json @@ -0,0 +1,4 @@ +{ + "status": "ERROR", + "pipeline": "citizen_address_flow1" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow2.json b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow2.json new file mode 100644 index 0000000..e81b95e --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow2.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "citizen_address_flow2" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow3.json b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow3.json new file mode 100644 index 0000000..4986db5 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow3.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "citizen_address_flow3" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow4.json b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow4.json new file mode 100644 index 0000000..faeea12 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow4.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "citizen_address_flow4" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow5.json b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow5.json new file mode 100644 index 0000000..23e7b79 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow5.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "citizen_address_flow5" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/delta_citizen_address.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/delta_citizen_address.hpl new file mode 100644 index 0000000..7f8c0f4 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/delta_citizen_address.hpl @@ -0,0 +1,163 @@ + + + + delta_citizen_address + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/06/03 16:10:48.509 + - + 2025/06/03 16:10:48.509 + + + + + + Table input + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_address
+ + recruit_id + recruit_id + N + + + factual_address + factual_address + Y + + + factual_info_expiry_date + factual_info_expiry_date + Y + + + factual_info_received_date + factual_info_received_date + Y + + + place_stay_address + place_stay_address + Y + + + place_stay_deregistration_date + place_stay_deregistration_date + Y + + + place_stay_registration_date + place_stay_registration_date + Y + + + place_stay_registration_type + place_stay_registration_type + Y + + + residence_address + residence_address + Y + + + residence_deregistration_date + residence_deregistration_date + Y + + + residence_registration_date + residence_registration_date + Y + +
+ N + + + 1040 + 336 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + ri.recruit_id::uuid, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS residence_address, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateStart')::date END) AS residence_registration_date, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateEnd')::date END) AS residence_deregistration_date, + + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS place_stay_address, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateStart')::date END) AS place_stay_registration_date, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateEnd')::date END) AS place_stay_deregistration_date, + CASE + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '1' THEN 'В жилом помещении, не являющимся местом жительства физического лица' + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '2' THEN 'В учреждении уголовно-исполнительной системы' + ELSE NULL + END AS place_stay_registration_type, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN addr->>'reg' END) AS factual_address, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateStart')::date END) AS factual_info_received_date, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateEnd')::date END) AS factual_info_expiry_date +FROM ervu_dashboard.recruits_info ri + JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id + CROSS JOIN LATERAL jsonb_array_elements(ri.addresses) AS addr +WHERE + --'${ID_F1}' != '' + -- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' + '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date + AND c.update_date >= '${M_R_UP_DATE}'::timestamp +GROUP BY ri.recruit_id; + Y + + + 624 + 352 + + + + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/job_citizen_address.hwf b/mappings_new/info_recruits/citizen_tables/citizen_address/job_citizen_address.hwf new file mode 100644 index 0000000..b8dbc75 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/job_citizen_address.hwf @@ -0,0 +1,1716 @@ + + + job_citizen_address + Y + + + + - + 2025/06/05 14:27:15.055 + - + 2025/06/05 14:27:15.055 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 624 + 400 + + + + Checks if files exist state_job_citizen_address.json + + FILES_EXIST + + + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_job_citizen_address.json + + + N + 848 + 400 + + + + checkpoint_job_citizen_address.hpl (2) + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/checkpoint_job_citizen_address.hpl + Basic + + Y + + N + local + N + N + Y + N + 1136 + 1280 + + + + recruitment_rows_five_flow_citizen_address.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_address.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1488 + 400 + + + + citizen_address_flow1.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow1.hpl + Basic + + + ID_F1 + IDM_FLOW1 + + Y + + Y + local + N + N + Y + N + 1808 + 80 + + + + citizen_address_flow2.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow2.hpl + Basic + + + ID_F2 + IDM_FLOW2 + + Y + + Y + local + N + N + Y + N + 1808 + 240 + + + + citizen_address_flow3.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow3.hpl + Basic + + + ID_F3 + IDM_FLOW3 + + Y + + Y + local + N + N + Y + N + 1808 + 400 + + + + citizen_address_flow4.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow4.hpl + Basic + + + ID_F4 + IDM_FLOW4 + + Y + + Y + local + N + N + Y + N + 1808 + 560 + + + + citizen_address_flow5.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow5.hpl + Basic + + + ID_F5 + IDM_FLOW5 + + Y + + Y + local + N + N + Y + N + 1808 + 720 + + + + Write state_citizen_address_flow1 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_address_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow1.json + N + 2096 + 80 + + + + Write state_citizen_address_flow1 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_address_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow1.json + N + 2096 + 160 + + + + Write state_citizen_address_flow2 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_address_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow2.json + N + 2096 + 240 + + + + Write state_citizen_address_flow2 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_address_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow2.json + N + 2096 + 320 + + + + Write state_citizen_address_flow3 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_address_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow3.json + N + 2096 + 400 + + + + Write state_citizen_address_flow3 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_address_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow3.json + N + 2096 + 480 + + + + Write state_citizen_address_flow4 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_address_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow4.json + N + 2096 + 560 + + + + Write state_citizen_address_flow4 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_address_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow4.json + N + 2096 + 640 + + + + Write state_citizen_address_flow5 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_address_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow5.json + N + 2096 + 720 + + + + Write state_citizen_address_flow5 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_address_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow5.json + N + 2096 + 800 + + + + Abort workflow + + ABORT + + N + N + 1472 + 208 + + + + checkpoint_job_citizen_address.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/checkpoint_job_citizen_address.hpl + Basic + + Y + + N + local + N + N + Y + N + 2496 + 384 + + + + Success new citizen + + SUCCESS + + N + 3024 + 384 + + + + state_job_citizen_address_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_citizen_address" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_job_citizen_address.json + N + 2784 + 384 + + + + state_job_citizen_address_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_citizen_address" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_job_citizen_address.json + N + 2784 + 480 + + + + state_job_citizen_address_success 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_citizen_address" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_job_citizen_address.json + N + 1360 + 1280 + + + + state_job_citizen_address_error 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_citizen_address" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_job_citizen_address.json + N + 1360 + 1376 + + + + branching_citizen_address.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/branching_citizen_address.hpl + Basic + + Y + + N + local + N + N + Y + N + 1584 + 1280 + + + + Simple citizen_address WHERE SUCCESS + + SIMPLE_EVAL + + SUCCESS + string + true + equal + equal + N + variable + STATUS + N + 2240 + 1792 + + + + Simple citizen_address WHERE ERROR + + SIMPLE_EVAL + + ERROR + string + true + equal + equal + N + variable + STATUS + N + 1840 + 1280 + + + + checkpoint_citizen_address_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/checkpoint_citizen_address_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 2064 + 1280 + + + + recruitment_rows_five_flow_if_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/recruitment_rows_five_flow_if_error.hpl + Basic + + Y + + N + local + N + N + Y + Y + 2384 + 1280 + + + + Abort workflow 2 + + ABORT + + N + N + 2288 + 1040 + + + + citizen_address_flow1.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow1.hpl + Basic + + + ID_F1 + IDM_FLOW1 + + Y + + Y + local + N + N + Y + N + 2672 + 960 + + + + citizen_address_flow2.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow2.hpl + Basic + + + ID_F2 + IDM_FLOW2 + + Y + + Y + local + N + N + Y + N + 2672 + 1120 + + + + citizen_address_flow3.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow3.hpl + Basic + + + ID_F3 + IDM_FLOW3 + + Y + + Y + local + N + N + Y + N + 2672 + 1280 + + + + citizen_address_flow4.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow4.hpl + Basic + + + ID_F4 + IDM_FLOW4 + + Y + + Y + local + N + N + Y + N + 2672 + 1440 + + + + citizen_address_flow5.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow5.hpl + Basic + + + ID_F5 + IDM_FLOW5 + + Y + + Y + local + N + N + Y + N + 2672 + 1600 + + + + Write state_citizen_address_flow1 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_address_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow1.json + N + 2960 + 960 + + + + Write state_citizen_address_flow1 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_address_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow1.json + N + 2960 + 1040 + + + + Write state_citizen_address_flow2 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_address_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow2.json + N + 2960 + 1120 + + + + Write state_citizen_address_flow2 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_address_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow2.json + N + 2960 + 1200 + + + + Write state_citizen_address_flow3 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_address_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow3.json + N + 2960 + 1280 + + + + Write state_citizen_address_flow3 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_address_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow3.json + N + 2960 + 1360 + + + + Write state_citizen_address_flow4 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_address_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow4.json + N + 2960 + 1440 + + + + Write state_citizen_address_flow4 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_address_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow4.json + N + 2960 + 1520 + + + + Write state_citizen_address_flow5 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_address_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow5.json + N + 2960 + 1600 + + + + Write state_citizen_address_flow5 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_address_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_flow5.json + N + 2960 + 1680 + + + + Success after_error_citizen_address_flow1 + + SUCCESS + + N + 3216 + 960 + + + + error after_error_citizen_address_flow1 + + SUCCESS + + N + 3216 + 1040 + + + + Success after_error_citizen_address_flow2 + + SUCCESS + + N + 3216 + 1120 + + + + error after_error_citizen_address_flow2 + + SUCCESS + + N + 3216 + 1200 + + + + Success after_error_citizen_address_flow3 + + SUCCESS + + N + 3216 + 1280 + + + + error after_error_citizen_address_flow3 + + SUCCESS + + N + 3216 + 1360 + + + + Success after_error_citizen_address_flow4 + + SUCCESS + + N + 3216 + 1440 + + + + error after_error_citizen_address_flow4 + + SUCCESS + + N + 3216 + 1520 + + + + Success after_error_citizen_address_flow5 + + SUCCESS + + N + 3216 + 1600 + + + + error after_error_citizen_address_flow5 + + SUCCESS + + N + 3216 + 1680 + + + + job_recruit_last_update_date.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/job_recruit_last_update_date.hwf + Nothing + + Y + + N + local + N + N + Y + N + 2544 + 1792 + + + + delta_citizen_address.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/delta_citizen_address.hpl + Basic + + + M_R_UP_DATE + ${M_R_UP_DATE} + + Y + + N + local + N + N + Y + N + 2768 + 1792 + + + + Success delta_citizen_address + + SUCCESS + + N + 3216 + 1792 + + + + state_delta_citizen_address_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "delta_citizen_address", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_delta.json + N + 2960 + 1792 + + + + state_delta_citizen_address_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "delta_citizen_address", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/checkpoints/state_citizen_address_delta.json + N + 2960 + 1872 + + + + error delta_citizen_address + + SUCCESS + + N + 3216 + 1872 + + + + + + Start + Checks if files exist state_job_citizen_address.json + Y + Y + Y + + + Checks if files exist state_job_citizen_address.json + checkpoint_job_citizen_address.hpl (2) + Y + Y + N + + + Checks if files exist state_job_citizen_address.json + recruitment_rows_five_flow_citizen_address.hpl + Y + N + N + + + recruitment_rows_five_flow_citizen_address.hpl + citizen_address_flow1.hpl + Y + Y + N + + + recruitment_rows_five_flow_citizen_address.hpl + citizen_address_flow2.hpl + Y + Y + N + + + recruitment_rows_five_flow_citizen_address.hpl + citizen_address_flow3.hpl + Y + Y + N + + + recruitment_rows_five_flow_citizen_address.hpl + citizen_address_flow4.hpl + Y + Y + N + + + recruitment_rows_five_flow_citizen_address.hpl + citizen_address_flow5.hpl + Y + Y + N + + + citizen_address_flow1.hpl + Write state_citizen_address_flow1 SUCCESS + Y + Y + N + + + citizen_address_flow1.hpl + Write state_citizen_address_flow1 ERROR + Y + N + N + + + citizen_address_flow2.hpl + Write state_citizen_address_flow2 SUCCESS + Y + Y + N + + + citizen_address_flow2.hpl + Write state_citizen_address_flow2 ERROR + Y + N + N + + + citizen_address_flow3.hpl + Write state_citizen_address_flow3 SUCCESS + Y + Y + N + + + citizen_address_flow3.hpl + Write state_citizen_address_flow3 ERROR + Y + N + N + + + citizen_address_flow4.hpl + Write state_citizen_address_flow4 SUCCESS + Y + Y + N + + + citizen_address_flow4.hpl + Write state_citizen_address_flow4 ERROR + Y + N + N + + + citizen_address_flow5.hpl + Write state_citizen_address_flow5 SUCCESS + Y + Y + N + + + citizen_address_flow5.hpl + Write state_citizen_address_flow5 ERROR + Y + N + N + + + recruitment_rows_five_flow_citizen_address.hpl + Abort workflow + Y + N + N + + + Write state_citizen_address_flow1 SUCCESS + checkpoint_job_citizen_address.hpl + Y + N + Y + + + Write state_citizen_address_flow1 ERROR + checkpoint_job_citizen_address.hpl + Y + N + Y + + + Write state_citizen_address_flow2 SUCCESS + checkpoint_job_citizen_address.hpl + Y + N + Y + + + Write state_citizen_address_flow2 ERROR + checkpoint_job_citizen_address.hpl + Y + N + Y + + + Write state_citizen_address_flow3 SUCCESS + checkpoint_job_citizen_address.hpl + Y + N + Y + + + Write state_citizen_address_flow3 ERROR + checkpoint_job_citizen_address.hpl + Y + N + Y + + + Write state_citizen_address_flow4 SUCCESS + checkpoint_job_citizen_address.hpl + Y + N + Y + + + Write state_citizen_address_flow4 ERROR + checkpoint_job_citizen_address.hpl + Y + N + Y + + + Write state_citizen_address_flow5 SUCCESS + checkpoint_job_citizen_address.hpl + Y + N + Y + + + Write state_citizen_address_flow5 ERROR + checkpoint_job_citizen_address.hpl + Y + N + Y + + + state_job_citizen_address_success + Success new citizen + Y + Y + N + + + state_job_citizen_address_error + Success new citizen + Y + Y + N + + + checkpoint_job_citizen_address.hpl + state_job_citizen_address_success + Y + Y + N + + + checkpoint_job_citizen_address.hpl + state_job_citizen_address_error + Y + N + N + + + checkpoint_job_citizen_address.hpl (2) + state_job_citizen_address_success 2 + Y + Y + N + + + checkpoint_job_citizen_address.hpl (2) + state_job_citizen_address_error 2 + Y + N + N + + + state_job_citizen_address_success 2 + branching_citizen_address.hpl + Y + Y + N + + + state_job_citizen_address_error 2 + branching_citizen_address.hpl + Y + Y + N + + + Simple citizen_address WHERE ERROR + checkpoint_citizen_address_error.hpl + Y + N + Y + + + branching_citizen_address.hpl + Simple citizen_address WHERE ERROR + Y + N + N + + + branching_citizen_address.hpl + Simple citizen_address WHERE SUCCESS + Y + Y + N + + + checkpoint_citizen_address_error.hpl + recruitment_rows_five_flow_if_error.hpl + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + Abort workflow 2 + Y + N + N + + + citizen_address_flow1.hpl 2 + Write state_citizen_address_flow1 SUCCESS 2 + Y + Y + N + + + citizen_address_flow1.hpl 2 + Write state_citizen_address_flow1 ERROR 2 + Y + N + N + + + citizen_address_flow2.hpl 2 + Write state_citizen_address_flow2 SUCCESS 2 + Y + Y + N + + + citizen_address_flow2.hpl 2 + Write state_citizen_address_flow2 ERROR 2 + Y + N + N + + + citizen_address_flow3.hpl 2 + Write state_citizen_address_flow3 SUCCESS 2 + Y + Y + N + + + citizen_address_flow3.hpl 2 + Write state_citizen_address_flow3 ERROR 2 + Y + N + N + + + citizen_address_flow4.hpl 2 + Write state_citizen_address_flow4 SUCCESS 2 + Y + Y + N + + + citizen_address_flow4.hpl 2 + Write state_citizen_address_flow4 ERROR 2 + Y + N + N + + + citizen_address_flow5.hpl 2 + Write state_citizen_address_flow5 SUCCESS 2 + Y + Y + N + + + citizen_address_flow5.hpl 2 + Write state_citizen_address_flow5 ERROR 2 + Y + N + N + + + recruitment_rows_five_flow_if_error.hpl + citizen_address_flow3.hpl 2 + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + citizen_address_flow2.hpl 2 + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + citizen_address_flow1.hpl 2 + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + citizen_address_flow4.hpl 2 + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + citizen_address_flow5.hpl 2 + Y + Y + N + + + Write state_citizen_address_flow1 SUCCESS 2 + Success after_error_citizen_address_flow1 + Y + Y + N + + + Write state_citizen_address_flow1 ERROR 2 + error after_error_citizen_address_flow1 + Y + Y + N + + + Write state_citizen_address_flow2 SUCCESS 2 + Success after_error_citizen_address_flow2 + Y + Y + N + + + Write state_citizen_address_flow2 ERROR 2 + error after_error_citizen_address_flow2 + Y + Y + N + + + Write state_citizen_address_flow3 SUCCESS 2 + Success after_error_citizen_address_flow3 + Y + Y + N + + + Write state_citizen_address_flow3 ERROR 2 + error after_error_citizen_address_flow3 + Y + Y + N + + + Write state_citizen_address_flow4 SUCCESS 2 + Success after_error_citizen_address_flow4 + Y + Y + N + + + Write state_citizen_address_flow4 ERROR 2 + error after_error_citizen_address_flow4 + Y + Y + N + + + Write state_citizen_address_flow5 SUCCESS 2 + Success after_error_citizen_address_flow5 + Y + Y + N + + + Write state_citizen_address_flow5 ERROR 2 + error after_error_citizen_address_flow5 + Y + Y + N + + + Simple citizen_address WHERE SUCCESS + job_recruit_last_update_date.hwf + Y + Y + N + + + job_recruit_last_update_date.hwf + delta_citizen_address.hpl + Y + Y + N + + + state_delta_citizen_address_success + Success delta_citizen_address + Y + Y + N + + + state_delta_citizen_address_error + error delta_citizen_address + Y + Y + N + + + delta_citizen_address.hpl + state_delta_citizen_address_success + Y + Y + N + + + delta_citizen_address.hpl + state_delta_citizen_address_error + Y + N + N + + + + + + diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/job_recruit_last_update_date.hwf b/mappings_new/info_recruits/citizen_tables/citizen_address/job_recruit_last_update_date.hwf new file mode 100644 index 0000000..5744d0e --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/job_recruit_last_update_date.hwf @@ -0,0 +1,124 @@ + + + job_recruit_last_update_date + Y + + + + - + 2025/06/02 14:48:05.666 + - + 2025/06/02 14:48:05.666 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 592 + 352 + + + + recruit_update_date_ervu_dashboard.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_address/recruit_update_date_ervu_dashboard.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 784 + 352 + + + + row_last_recruit_update_date.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/row_last_recruit_update_date.hpl + Basic + + Y + + N + local + N + N + Y + N + 1056 + 352 + + + + Success + + SUCCESS + + N + 1232 + 352 + + + + + + Start + recruit_update_date_ervu_dashboard.hpl + Y + Y + Y + + + recruit_update_date_ervu_dashboard.hpl + row_last_recruit_update_date.hpl + Y + Y + N + + + row_last_recruit_update_date.hpl + Success + Y + Y + N + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow1.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow1.hpl similarity index 62% rename from mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow1.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow1.hpl index 39782d4..091f23b 100644 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow1.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow1.hpl @@ -1,7 +1,7 @@ - citizen_spouse_flow1 + citizen_address_flow1 Y @@ -82,63 +82,62 @@ = recruit_id recruit_id - ervu_dashboard - citizen_spouse
+ citizen_address
recruit_id recruit_id N - kinship_type - kinship_type + factual_address + factual_address Y - full_name - full_name + factual_info_expiry_date + factual_info_expiry_date Y - birth_date - birth_date + factual_info_received_date + factual_info_received_date Y - death_date - death_date + place_stay_address + place_stay_address Y - death_az_number - death_az_number + place_stay_deregistration_date + place_stay_deregistration_date Y - marriage_az_number - marriage_az_number + place_stay_registration_date + place_stay_registration_date Y - marriage_date - marriage_date + place_stay_registration_type + place_stay_registration_type Y - divorce_az_number - divorce_az_number + residence_address + residence_address Y - divorce_date - divorce_date + residence_deregistration_date + residence_deregistration_date Y - information_excluded - information_excluded + residence_registration_date + residence_registration_date Y @@ -190,7 +189,7 @@ Table input TableInput - Y + N 1 @@ -200,53 +199,35 @@ ervu-dashboard N 0 - WITH suprug AS ( - SELECT - supr.supri AS supr, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' AS marriage_date, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, - ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' AS divorce_date, - CASE - WHEN (ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1') THEN true - ELSE false - END AS information_excluded, - ri.recruit_id - FROM ervu_dashboard.recruits_info ri - join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку - AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' - AND '${M_R_CR_DATE}'::timestamp >= ri.created_at - JOIN LATERAL ( - SELECT jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri - WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' - ) AS supr ON true -) -SELECT - r.recruit_id AS recruit_id, - supr->>'rodstvSvyazSuprugNaim' AS kinship_type, - CONCAT_WS(' ', - supr->'svedFLBS'->'fio'->>'familiya', - supr->'svedFLBS'->'fio'->>'imya', - supr->'svedFLBS'->'fio'->>'otchestvo' - ) AS full_name, - MAKE_DATE( - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int - ) AS birth_date, - (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, - supr->'svedSmert'->>'nomerZapis' AS death_az_number, - marriage_az_number, - marriage_date::date, - divorce_az_number, - divorce_date::date, - information_excluded -FROM ervu_dashboard.citizen r -JOIN suprug ON r.recruit_id = suprug.recruit_id + SELECT + ri.recruit_id::uuid, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS residence_address, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateStart')::date END) AS residence_registration_date, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateEnd')::date END) AS residence_deregistration_date, + + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS place_stay_address, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateStart')::date END) AS place_stay_registration_date, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateEnd')::date END) AS place_stay_deregistration_date, + CASE + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '1' THEN 'В жилом помещении, не являющимся местом жительства физического лица' + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '2' THEN 'В учреждении уголовно-исполнительной системы' + ELSE NULL + END AS place_stay_registration_type, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN addr->>'reg' END) AS factual_address, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateStart')::date END) AS factual_info_received_date, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateEnd')::date END) AS factual_info_expiry_date +FROM ervu_dashboard.recruits_info ri + JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id + CROSS JOIN LATERAL jsonb_array_elements(ri.addresses) AS addr +WHERE + '${ID_F1}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date +GROUP BY ri.recruit_id; Y - 448 + 496 288 diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow2.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow2.hpl new file mode 100644 index 0000000..c55ac74 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow2.hpl @@ -0,0 +1,162 @@ + + + + citizen_address_flow2 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_address
+ + recruit_id + recruit_id + N + + + factual_address + factual_address + Y + + + factual_info_expiry_date + factual_info_expiry_date + Y + + + factual_info_received_date + factual_info_received_date + Y + + + place_stay_address + place_stay_address + Y + + + place_stay_deregistration_date + place_stay_deregistration_date + Y + + + place_stay_registration_date + place_stay_registration_date + Y + + + place_stay_registration_type + place_stay_registration_type + Y + + + residence_address + residence_address + Y + + + residence_deregistration_date + residence_deregistration_date + Y + + + residence_registration_date + residence_registration_date + Y + +
+ N + + + 960 + 288 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + ri.recruit_id::uuid, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS residence_address, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateStart')::date END) AS residence_registration_date, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateEnd')::date END) AS residence_deregistration_date, + + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS place_stay_address, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateStart')::date END) AS place_stay_registration_date, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateEnd')::date END) AS place_stay_deregistration_date, + CASE + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '1' THEN 'В жилом помещении, не являющимся местом жительства физического лица' + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '2' THEN 'В учреждении уголовно-исполнительной системы' + ELSE NULL + END AS place_stay_registration_type, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN addr->>'reg' END) AS factual_address, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateStart')::date END) AS factual_info_received_date, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateEnd')::date END) AS factual_info_expiry_date +FROM ervu_dashboard.recruits_info ri + JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id + CROSS JOIN LATERAL jsonb_array_elements(ri.addresses) AS addr +WHERE + '${ID_F2}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}' + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date +GROUP BY ri.recruit_id; + Y + + + 560 + 288 + + + + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow3.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow3.hpl new file mode 100644 index 0000000..8bba0a1 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow3.hpl @@ -0,0 +1,162 @@ + + + + citizen_address_flow3 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_address
+ + recruit_id + recruit_id + N + + + factual_address + factual_address + Y + + + factual_info_expiry_date + factual_info_expiry_date + Y + + + factual_info_received_date + factual_info_received_date + Y + + + place_stay_address + place_stay_address + Y + + + place_stay_deregistration_date + place_stay_deregistration_date + Y + + + place_stay_registration_date + place_stay_registration_date + Y + + + place_stay_registration_type + place_stay_registration_type + Y + + + residence_address + residence_address + Y + + + residence_deregistration_date + residence_deregistration_date + Y + + + residence_registration_date + residence_registration_date + Y + +
+ N + + + 1104 + 368 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + ri.recruit_id::uuid, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS residence_address, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateStart')::date END) AS residence_registration_date, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateEnd')::date END) AS residence_deregistration_date, + + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS place_stay_address, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateStart')::date END) AS place_stay_registration_date, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateEnd')::date END) AS place_stay_deregistration_date, + CASE + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '1' THEN 'В жилом помещении, не являющимся местом жительства физического лица' + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '2' THEN 'В учреждении уголовно-исполнительной системы' + ELSE NULL + END AS place_stay_registration_type, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN addr->>'reg' END) AS factual_address, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateStart')::date END) AS factual_info_received_date, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateEnd')::date END) AS factual_info_expiry_date +FROM ervu_dashboard.recruits_info ri + JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id + CROSS JOIN LATERAL jsonb_array_elements(ri.addresses) AS addr +WHERE + '${ID_F3}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date +GROUP BY ri.recruit_id; + Y + + + 672 + 352 + + + + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow4.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow4.hpl new file mode 100644 index 0000000..ff3d081 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow4.hpl @@ -0,0 +1,162 @@ + + + + citizen_address_flow4 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_address
+ + recruit_id + recruit_id + N + + + factual_address + factual_address + Y + + + factual_info_expiry_date + factual_info_expiry_date + Y + + + factual_info_received_date + factual_info_received_date + Y + + + place_stay_address + place_stay_address + Y + + + place_stay_deregistration_date + place_stay_deregistration_date + Y + + + place_stay_registration_date + place_stay_registration_date + Y + + + place_stay_registration_type + place_stay_registration_type + Y + + + residence_address + residence_address + Y + + + residence_deregistration_date + residence_deregistration_date + Y + + + residence_registration_date + residence_registration_date + Y + +
+ N + + + 992 + 320 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + ri.recruit_id::uuid, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS residence_address, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateStart')::date END) AS residence_registration_date, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateEnd')::date END) AS residence_deregistration_date, + + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS place_stay_address, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateStart')::date END) AS place_stay_registration_date, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateEnd')::date END) AS place_stay_deregistration_date, + CASE + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '1' THEN 'В жилом помещении, не являющимся местом жительства физического лица' + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '2' THEN 'В учреждении уголовно-исполнительной системы' + ELSE NULL + END AS place_stay_registration_type, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN addr->>'reg' END) AS factual_address, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateStart')::date END) AS factual_info_received_date, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateEnd')::date END) AS factual_info_expiry_date +FROM ervu_dashboard.recruits_info ri + JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id + CROSS JOIN LATERAL jsonb_array_elements(ri.addresses) AS addr +WHERE + '${ID_F4}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date +GROUP BY ri.recruit_id; + Y + + + 528 + 320 + + + + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow5.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow5.hpl new file mode 100644 index 0000000..970612b --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/parallel/citizen_address_flow5.hpl @@ -0,0 +1,162 @@ + + + + citizen_address_flow5 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_address
+ + recruit_id + recruit_id + N + + + factual_address + factual_address + Y + + + factual_info_expiry_date + factual_info_expiry_date + Y + + + factual_info_received_date + factual_info_received_date + Y + + + place_stay_address + place_stay_address + Y + + + place_stay_deregistration_date + place_stay_deregistration_date + Y + + + place_stay_registration_date + place_stay_registration_date + Y + + + place_stay_registration_type + place_stay_registration_type + Y + + + residence_address + residence_address + Y + + + residence_deregistration_date + residence_deregistration_date + Y + + + residence_registration_date + residence_registration_date + Y + +
+ N + + + 1024 + 368 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + ri.recruit_id::uuid, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS residence_address, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateStart')::date END) AS residence_registration_date, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN (addr->>'regDateEnd')::date END) AS residence_deregistration_date, + + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS place_stay_address, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateStart')::date END) AS place_stay_registration_date, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN (addr->>'regDateEnd')::date END) AS place_stay_deregistration_date, + CASE + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '1' THEN 'В жилом помещении, не являющимся местом жительства физического лица' + WHEN MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) = '2' THEN 'В учреждении уголовно-исполнительной системы' + ELSE NULL + END AS place_stay_registration_type, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN addr->>'reg' END) AS factual_address, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateStart')::date END) AS factual_info_received_date, + MAX(CASE WHEN addr->>'type' = 'residentialAddress' THEN (addr->>'regDateEnd')::date END) AS factual_info_expiry_date +FROM ervu_dashboard.recruits_info ri + JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id + CROSS JOIN LATERAL jsonb_array_elements(ri.addresses) AS addr +WHERE + '${ID_F5}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' + AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date +GROUP BY ri.recruit_id; + Y + + + 560 + 368 + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_error.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/recruit_update_date_ervu_dashboard.hpl similarity index 56% rename from mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_error.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_address/recruit_update_date_ervu_dashboard.hpl index 782c038..6f63f21 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_error.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/recruit_update_date_ervu_dashboard.hpl @@ -1,7 +1,7 @@ - change_status_delta_child_flow1_error + recruit_update_date_ervu_dashboard Y @@ -13,63 +13,19 @@ 1000 100 - - 2025/06/16 12:20:06.191 + 2025/06/02 14:50:31.833 - - 2025/06/16 12:20:06.191 + 2025/06/02 14:50:31.833 Table input - Insert / update + Table output Y - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
Table input TableInput @@ -84,14 +40,55 @@ ervu-dashboard N 0 - SELECT - 'delta_child_flow1' as job_name, - 'ERROR' as status, - current_timestamp as record_created + SELECT + created_at AS system_create_date, + updated_at AS system_update_date, + current_timestamp AS record_created, + 'job_recruits_info' AS workflow +FROM ervu_dashboard.recruits_info +WHERE updated_at = (SELECT MAX(updated_at) FROM ervu_dashboard.recruits_info) +limit 1 N - 784 + 896 + 304 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + N + N + N + N + + Y + + N + public + N + recruit_create
+ + N + Y + N + Y + + + 1216 304
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_rows_five_flow_if_error.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/recruitment_rows_five_flow_if_error.hpl similarity index 99% rename from mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_rows_five_flow_if_error.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_address/recruitment_rows_five_flow_if_error.hpl index e5f247b..e2b0a5a 100644 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_rows_five_flow_if_error.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/recruitment_rows_five_flow_if_error.hpl @@ -82,7 +82,7 @@ flow_ranges AS ( recr_inf AS ( SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id + join ervu_dashboard.citizen_address ca on ca.recruit_id = cit.recruit_id ), flow_data AS ( diff --git a/mappings/info_recruits/citizen_tables/child/branching_child.hpl b/mappings_new/info_recruits/citizen_tables/citizen_address/row_last_recruit_update_date.hpl similarity index 60% rename from mappings/info_recruits/citizen_tables/child/branching_child.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_address/row_last_recruit_update_date.hpl index d25a7a0..5597125 100644 --- a/mappings/info_recruits/citizen_tables/child/branching_child.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_address/row_last_recruit_update_date.hpl @@ -1,7 +1,7 @@ - branching_child + row_last_recruit_update_date Y @@ -13,26 +13,43 @@ 1000 100 - - 2025/06/09 09:54:43.724 + 2025/06/02 14:51:59.611 - - 2025/06/09 09:54:43.724 + 2025/06/02 14:51:59.611 - Set variables 2 - Write to log 2 - N + Copy rows to result + Set variables + Y Table input - Set variables 2 + Copy rows to result Y - Set variables 2 + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 992 + 320 + + + + Set variables SetVariable Y @@ -44,21 +61,17 @@
- pipeline - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW + + MAX_RECRUIT_UPDATE_DATE + M_R_UP_DATE + GP_WORKFLOW Y - 1056 - 256 + 1232 + 320 @@ -75,47 +88,19 @@ ervu-dashboard N 0 - select - status as STATUS, - job_name AS PIPELINE -from public.etl_checkpoints -where job_name = 'job_child' + SELECT + system_update_date AS MAX_RECRUIT_UPDATE_DATE--, +--record_created +FROM public.recruit_create +WHERE system_update_date = (select max(system_update_date) from public.recruit_create) +and workflow = 'job_recruits_info' +order by record_created desc +limit 1 N - 816 - 256 - - - - Write to log 2 - WriteToLog - - Y - - 1 - - none - - - Y - - - pipeline - - - status - - - N - 0 - Basic - ${PIPE} -${STATUS} - - - 1280 - 256 + 688 + 320 diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/branching_citizen_guardianship.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/branching_citizen_guardianship.hpl similarity index 55% rename from mappings/info_recruits/citizen_tables/citizen_guardianship/branching_citizen_guardianship.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_guardianship/branching_citizen_guardianship.hpl index 06f8364..dae18eb 100644 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/branching_citizen_guardianship.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/branching_citizen_guardianship.hpl @@ -21,18 +21,93 @@ - Set variables 2 - Write to log 2 - N + JSON input state_job_citizen_guardianship.json + Set variables + Y - Table input - Set variables 2 - Y + Set variables + Write to log + N - Set variables 2 + JSON input state_job_citizen_guardianship.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_job_citizen_guardianship.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 816 + 448 + + + + Set variables SetVariable Y @@ -57,38 +132,12 @@ Y - 1040 - 416 + 1072 + 448 - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - select - status as STATUS, - job_name AS PIPELINE -from public.etl_checkpoints -where job_name = 'job_citizen_guardianship' - N - - - 800 - 416 - - - - Write to log 2 + Write to log WriteToLog Y @@ -98,7 +147,12 @@ where job_name = 'job_citizen_guardianship' none + Basic Y + N + 0 + ${PIPE} +${STATUS} pipeline @@ -107,15 +161,10 @@ where job_name = 'job_citizen_guardianship' status - N - 0 - Basic - ${PIPE} -${STATUS} - 1264 - 416 + 1296 + 448 diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_citizen_guardianship_error.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_citizen_guardianship_error.hpl similarity index 98% rename from mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_citizen_guardianship_error.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_citizen_guardianship_error.hpl index a1db818..cb265cc 100644 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_citizen_guardianship_error.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_citizen_guardianship_error.hpl @@ -112,7 +112,7 @@ flow_ranges AS ( recr_inf AS ( SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id + join ervu_dashboard.citizen_guardianship cg on cg.recruit_id = cit.recruit_id ), flow_data AS ( SELECT @@ -252,11 +252,14 @@ select * from for_checkpoints N N N + Y + N public N etl_checkpoints
+ N Y N diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl similarity index 79% rename from mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl index 0413a04..4805ac7 100644 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl @@ -23,61 +23,31 @@ Filter rows Abort - N + Y - JSON input state_child_flow1.json + JSON input state_citizen_guardianship_flow1.json Filter rows - N + Y - JSON input state_child_flow2.json + JSON input state_citizen_guardianship_flow2.json Filter rows - N + Y - JSON input state_child_flow3.json + JSON input state_citizen_guardianship_flow3.json Filter rows - N + Y - JSON input state_child_flow4.json + JSON input state_citizen_guardianship_flow4.json Filter rows - N + Y - JSON input state_child_flow5.json + JSON input state_citizen_guardianship_flow5.json Filter rows - N - - - Dummy (do nothing) - JSON input state_child_flow1.json - N - - - Dummy (do nothing) - JSON input state_child_flow2.json - N - - - Dummy (do nothing) - JSON input state_child_flow3.json - N - - - Dummy (do nothing) - JSON input state_child_flow4.json - N - - - Dummy (do nothing) - JSON input state_child_flow5.json - N - - - Table input - Insert / update Y @@ -127,9 +97,10 @@ N -1 + constant -1 - child_flow1 + citizen_guardianship_flow1 String @@ -175,9 +146,10 @@ N -1 + constant -1 - child_flow2 + citizen_guardianship_flow2 String @@ -223,9 +195,10 @@ N -1 + constant -1 - child_flow3 + citizen_guardianship_flow3 String @@ -271,9 +244,10 @@ N -1 + constant -1 - child_flow4 + citizen_guardianship_flow4 String @@ -319,9 +293,10 @@ N -1 + constant -1 - child_flow5 + citizen_guardianship_flow5 String @@ -378,7 +353,7 @@ - JSON input state_child_flow1.json + JSON input state_citizen_guardianship_flow1.json JsonInput Y @@ -400,7 +375,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow1.json N @@ -453,7 +428,7 @@ - JSON input state_child_flow2.json + JSON input state_citizen_guardianship_flow2.json JsonInput Y @@ -475,7 +450,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow2.json N @@ -528,7 +503,7 @@ - JSON input state_child_flow3.json + JSON input state_citizen_guardianship_flow3.json JsonInput Y @@ -550,7 +525,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow3.json N @@ -603,7 +578,7 @@ - JSON input state_child_flow4.json + JSON input state_citizen_guardianship_flow4.json JsonInput Y @@ -625,7 +600,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow4.json N @@ -678,7 +653,7 @@ - JSON input state_child_flow5.json + JSON input state_citizen_guardianship_flow5.json JsonInput Y @@ -700,7 +675,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow5.json N @@ -752,117 +727,6 @@ 752 - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 336 - 592 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1312 - 272 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'citizen_guardianship_flow1', - 'citizen_guardianship_flow2', - 'citizen_guardianship_flow3', - 'citizen_guardianship_flow4', - 'citizen_guardianship_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'citizen_guardianship_flow1', - 'citizen_guardianship_flow2', - 'citizen_guardianship_flow3', - 'citizen_guardianship_flow4', - 'citizen_guardianship_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_citizen_guardianship' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 944 - 272 - - diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/xxjob_create_files_child.hwf b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/job_create_files_citizen_guardianship.hwf similarity index 70% rename from mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/xxjob_create_files_child.hwf rename to mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/job_create_files_citizen_guardianship.hwf index b31ca9f..dea1e91 100644 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/xxjob_create_files_child.hwf +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/job_create_files_citizen_guardianship.hwf @@ -1,6 +1,6 @@ - job_create_files_child + job_create_files_citizen_guardianship Y @@ -31,90 +31,90 @@
- state_child_flow2_new + state_citizen_guardianship_flow2_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow2" + "pipeline": "citizen_guardianship_flow2" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow2.json N 848 416 - state_child_flow1_new + state_citizen_guardianship_flow1_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow1" + "pipeline": "citizen_guardianship_flow1" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow1.json N 848 336 - state_child_flow3_new + state_citizen_guardianship_flow3_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow3" + "pipeline": "citizen_guardianship_flow3" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow3.json N 848 496 - state_child_flow4_new + state_citizen_guardianship_flow4_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow4" + "pipeline": "citizen_guardianship_flow4" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow4.json N 848 576 - state_child_flow5_new + state_citizen_guardianship_flow5_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow5" + "pipeline": "citizen_guardianship_flow5" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow5.json N 848 656 @@ -131,12 +131,12 @@ - Delete file state_job_child + Delete file state_job_citizen_guardianship DELETE_FILE N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_job_citizen_guardianship.json N 848 256 @@ -146,69 +146,69 @@ Start - state_child_flow3_new + state_citizen_guardianship_flow3_new Y Y Y Start - state_child_flow2_new + state_citizen_guardianship_flow2_new Y Y Y Start - state_child_flow1_new + state_citizen_guardianship_flow1_new Y Y Y Start - state_child_flow4_new + state_citizen_guardianship_flow4_new Y Y Y Start - state_child_flow5_new + state_citizen_guardianship_flow5_new Y Y Y - state_child_flow5_new + state_citizen_guardianship_flow5_new Success Y Y N - state_child_flow4_new + state_citizen_guardianship_flow4_new Success Y Y N - state_child_flow3_new + state_citizen_guardianship_flow3_new Success Y Y N - state_child_flow2_new + state_citizen_guardianship_flow2_new Success Y Y N - state_child_flow1_new + state_citizen_guardianship_flow1_new Success Y Y @@ -216,13 +216,13 @@ Start - Delete file state_job_child + Delete file state_job_citizen_guardianship Y Y Y - Delete file state_job_child + Delete file state_job_citizen_guardianship Success Y Y diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_delta.json b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_delta.json new file mode 100644 index 0000000..902aa7c --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_delta.json @@ -0,0 +1,6 @@ +{ + "status": "SUCCESS", + "pipeline": "delta_citizen_guardianship", + "max_create_date": "3001-01-01 00:00:00", + "max_update_date": "2025/04/09 00:25:46.935442000" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow1.json b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow1.json new file mode 100644 index 0000000..92c9271 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow1.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow1" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow2.json b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow2.json new file mode 100644 index 0000000..c23c438 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow2.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow2" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow3.json b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow3.json new file mode 100644 index 0000000..d1a6c97 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow3.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow3" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow4.json b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow4.json new file mode 100644 index 0000000..1d934c4 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow4.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow4" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow5.json b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow5.json new file mode 100644 index 0000000..fb2c0f4 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow5.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow5" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/delta_citizen_guardianship.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/delta_citizen_guardianship.hpl new file mode 100644 index 0000000..b3c9385 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/delta_citizen_guardianship.hpl @@ -0,0 +1,343 @@ + + + + delta_citizen_guardianship + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/06/03 16:10:48.509 + - + 2025/06/03 16:10:48.509 + + + + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + Add constants + Update + Y + + + Group by + Add constants + Y + + + Table input + Group by + Y + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + is_guardian + true + -1 + N + Boolean + + + + + 960 + 208 + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + first_name + + + full_name + + + snils + + + last_name + + + middle_name + + + guardianship_external_id + + + guardian_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_guardianship ( + recruit_id, + birth_date, + first_name, + full_name, + snils, + last_name, + middle_name, + guardianship_external_id, + guardian_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, guardianship_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + snils = EXCLUDED.snils, + last_name = EXCLUDED.last_name, + middle_name = EXCLUDED.middle_name, + guardian_id_ern = EXCLUDED.guardian_id_ern; + + + 752 + 224 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 848 + 256 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + guardianship_external_id + guardianship_external_id + + ervu_dashboard + citizen_guardianship
+ + recruit_id + recruit_id + N + + + first_name + first_name + Y + + + last_name + last_name + Y + + + middle_name + middle_name + Y + + + birth_date + birth_date + Y + + + full_name + full_name + Y + + + guardian_id_ern + guardian_id_ern + Y + + + guardianship_external_id + guardianship_external_id + N + + + snils + snils + Y + +
+ N + + + 1168 + 352 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id AS recruit_id, + ch->>'id' AS guardianship_external_id, + NULLIF(ch->>'idERN', '') AS guardian_id_ern, + ch->'fioOpek'->>'familiya' AS last_name, + ch->'fioOpek'->>'imya' AS first_name, + ch->'fioOpek'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'fioOpek'->>'familiya', + ch->'fioOpek'->>'imya', + ch->'fioOpek'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(ch->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + ch->>'snils' AS snils +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') AS ch +WHERE + --'${ID_F1}' != '' -- Проверка на пустую строку + --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' + '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date + AND r.update_date >= '${M_R_UP_DATE}'::timestamp + AND jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array'; + Y + + + 624 + 352 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_guardian + is_guardian + +
+ N + Y + + + 1056 + 160 + +
+ + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/job_citizen_guardianship.hwf b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/job_citizen_guardianship.hwf similarity index 57% rename from mappings/info_recruits/citizen_tables/citizen_guardianship/job_citizen_guardianship.hwf rename to mappings_new/info_recruits/citizen_tables/citizen_guardianship/job_citizen_guardianship.hwf index 3e49ea5..94e6505 100644 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/job_citizen_guardianship.hwf +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/job_citizen_guardianship.hwf @@ -5,23 +5,12 @@ - 0 - 2025/06/05 14:27:15.055 - 2025/06/05 14:27:15.055 - - M_R_CR_DATE - 3001-01-01 00:00:00 - - - - M_R_UP_DATE - - - - + Start @@ -37,10 +26,52 @@ 0 1 N - 416 + 624 400 + + Checks if files exist state_job_citizen_guardianship.json + + FILES_EXIST + + + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_job_citizen_guardianship.json + + + N + 848 + 400 + + + + checkpoint_job_citizen_guardianship.hpl (2) + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl + Basic + + Y + + N + local + N + N + Y + N + 1136 + 1280 + + recruitment_rows_five_flow_citizen_guardianship.hpl @@ -53,6 +84,8 @@ N N ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_guardianship.hpl + + Basic Y @@ -63,7 +96,7 @@ N Y Y - 2384 + 1488 400 @@ -93,7 +126,7 @@ N Y N - 2704 + 1808 80
@@ -123,7 +156,7 @@ N Y N - 2704 + 1808 240 @@ -153,7 +186,7 @@ N Y N - 2704 + 1808 400 @@ -183,7 +216,7 @@ N Y N - 2704 + 1808 560 @@ -213,10 +246,180 @@ N Y N - 2704 + 1808 720 + + Write state_citizen_guardianship_flow1 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow1.json + N + 2096 + 80 + + + + Write state_citizen_guardianship_flow1 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_guardianship_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow1.json + N + 2096 + 160 + + + + Write state_citizen_guardianship_flow2 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow2.json + N + 2096 + 240 + + + + Write state_citizen_guardianship_flow2 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_guardianship_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow2.json + N + 2096 + 320 + + + + Write state_citizen_guardianship_flow3 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow3.json + N + 2096 + 400 + + + + Write state_citizen_guardianship_flow3 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_guardianship_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow3.json + N + 2096 + 480 + + + + Write state_citizen_guardianship_flow4 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow4.json + N + 2096 + 560 + + + + Write state_citizen_guardianship_flow4 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_guardianship_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow4.json + N + 2096 + 640 + + + + Write state_citizen_guardianship_flow5 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow5.json + N + 2096 + 720 + + + + Write state_citizen_guardianship_flow5 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_guardianship_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow5.json + N + 2096 + 800 + + Abort workflow @@ -224,7 +427,7 @@ N N - 2368 + 1472 208 @@ -250,8 +453,8 @@ N Y N - 3424 - 416 + 2496 + 384 @@ -260,8 +463,80 @@ SUCCESS N - 3872 - 416 + 3024 + 384 + + + + state_job_citizen_guardianship_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_citizen_guardianship" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_job_citizen_guardianship.json + N + 2784 + 384 + + + + state_job_citizen_guardianship_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_citizen_guardianship" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_job_citizen_guardianship.json + N + 2784 + 480 + + + + state_job_citizen_guardianship_success 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_citizen_guardianship" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_job_citizen_guardianship.json + N + 1360 + 1280 + + + + state_job_citizen_guardianship_error 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_citizen_guardianship" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_job_citizen_guardianship.json + N + 1360 + 1376 @@ -291,7 +566,7 @@ - Simple child WHERE SUCCESS + Simple citizen_guardianship WHERE SUCCESS SIMPLE_EVAL @@ -304,12 +579,12 @@ variable STATUS N - 1888 + 2240 1792 - Simple child WHERE ERROR + Simple citizen_guardianship WHERE ERROR SIMPLE_EVAL @@ -326,6 +601,32 @@ 1280 + + checkpoint_citizen_guardianship_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_citizen_guardianship_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 2064 + 1280 + + recruitment_rows_five_flow_if_error.hpl @@ -337,7 +638,7 @@ N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/recruitment_rows_five_flow_if_error.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/recruitment_rows_five_flow_if_error.hpl Basic Y @@ -363,412 +664,6 @@ 1040 - - delta_citizen_guardianship.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/delta_citizen_guardianship.hpl - Basic - - - M_R_UP_DATE - ${M_R_UP_DATE} - - Y - - N - local - N - N - Y - N - 2704 - 1792 - - - - Success delta_citizen - - SUCCESS - - N - 3328 - 1792 - - - - error delta_citizen - - SUCCESS - - N - 3328 - 1872 - - - - check_if_job_citizen_guardianship_exists.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_job_citizen_guardianship_exists.hpl - Basic - - Y - - N - local - N - N - Y - N - 656 - 400 - - - - Simple job_citizen_guardianship_exists check NEW - - SIMPLE_EVAL - - NEW - string - true - equal - equal - N - variable - STATUS - N - 1008 - 400 - - - - change_status_to_processing.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 1424 - 400 - - - - change_status_citizen_guardianship_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3024 - 80 - - - - change_status_citizen_guardianship_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3024 - 160 - - - - change_status_citizen_guardianship_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3024 - 240 - - - - change_status_citizen_guardianship_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3024 - 320 - - - - change_status_citizen_guardianship_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3024 - 400 - - - - change_status_citizen_guardianship_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3024 - 480 - - - - change_status_citizen_guardianship_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3024 - 560 - - - - change_status_citizen_guardianship_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3024 - 640 - - - - change_status_citizen_guardianship_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3024 - 720 - - - - change_status_citizen_guardianship_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 3024 - 800 - - - - checkpoint_job_citizen_guardianship.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl - Basic - - Y - - N - local - N - N - Y - N - 1296 - 1280 - - citizen_guardianship_flow1.hpl 2 @@ -795,7 +690,7 @@ N Y N - 2704 + 2672 960 @@ -825,7 +720,7 @@ N Y N - 2704 + 2672 1120 @@ -855,7 +750,7 @@ N Y N - 2704 + 2672 1280 @@ -885,7 +780,7 @@ N Y N - 2704 + 2672 1440 @@ -915,345 +810,291 @@ N Y N - 2704 + 2672 1600 - checkpoint_job_citizen_guardianship.hpl 3 + Write state_citizen_guardianship_flow1 SUCCESS 2 - PIPELINE + WRITE_TO_FILE - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl - Basic - - Y - - N - local - N - N - Y + N + { + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow1.json N - 3424 - 1296 - - - - Success new citizen 2 - - SUCCESS - - N - 3728 - 1296 - - - - change_status_citizen_guardianship_flow1_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 3024 + 2960 960 - change_status_citizen_guardianship_flow1_error.hpl 2 + Write state_citizen_guardianship_flow1 ERROR 2 - PIPELINE + WRITE_TO_FILE - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y + N + { + "status": "ERROR", + "pipeline": "citizen_guardianship_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow1.json N - 3024 + 2960 1040 - change_status_citizen_guardianship_flow2_success.hpl 2 + Write state_citizen_guardianship_flow2 SUCCESS 2 - PIPELINE + WRITE_TO_FILE - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y + N + { + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow2.json N - 3024 + 2960 1120 - change_status_citizen_guardianship_flow2_error.hpl 2 + Write state_citizen_guardianship_flow2 ERROR 2 - PIPELINE + WRITE_TO_FILE - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y + N + { + "status": "ERROR", + "pipeline": "citizen_guardianship_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow2.json N - 3024 + 2960 1200 - change_status_citizen_guardianship_flow3_success.hpl 2 + Write state_citizen_guardianship_flow3 SUCCESS 2 - PIPELINE + WRITE_TO_FILE - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y + N + { + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow3.json N - 3024 + 2960 1280 - change_status_citizen_guardianship_flow3_error.hpl 2 + Write state_citizen_guardianship_flow3 ERROR 2 - PIPELINE + WRITE_TO_FILE - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y + N + { + "status": "ERROR", + "pipeline": "citizen_guardianship_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow3.json N - 3024 + 2960 1360 - change_status_citizen_guardianship_flow4_success.hpl 2 + Write state_citizen_guardianship_flow4 SUCCESS 2 - PIPELINE + WRITE_TO_FILE - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y + N + { + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow4.json N - 3024 + 2960 1440 - change_status_citizen_guardianship_flow4_error.hpl 2 + Write state_citizen_guardianship_flow4 ERROR 2 - PIPELINE + WRITE_TO_FILE - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y + N + { + "status": "ERROR", + "pipeline": "citizen_guardianship_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow4.json N - 3024 + 2960 1520 - change_status_citizen_guardianship_flow5_success.hpl 2 + Write state_citizen_guardianship_flow5 SUCCESS 2 - PIPELINE + WRITE_TO_FILE - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y + N + { + "status": "SUCCESS", + "pipeline": "citizen_guardianship_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow5.json N - 3024 + 2960 1600 - change_status_citizen_guardianship_flow5_error.hpl 2 + Write state_citizen_guardianship_flow5 ERROR 2 - PIPELINE + WRITE_TO_FILE - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y + N + { + "status": "ERROR", + "pipeline": "citizen_guardianship_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_flow5.json N - 3024 + 2960 1680 - change_status_to_processing.hpl 2 + Success after_error_citizen_guardianship_flow1 - PIPELINE + SUCCESS - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y N - 2096 + 3216 + 960 + + + + error after_error_citizen_guardianship_flow1 + + SUCCESS + + N + 3216 + 1040 + + + + Success after_error_citizen_guardianship_flow2 + + SUCCESS + + N + 3216 + 1120 + + + + error after_error_citizen_guardianship_flow2 + + SUCCESS + + N + 3216 + 1200 + + + + Success after_error_citizen_guardianship_flow3 + + SUCCESS + + N + 3216 1280 - change_status_to_processing_delta.hpl + error after_error_citizen_guardianship_flow3 - PIPELINE + SUCCESS + + N + 3216 + 1360 + + + + Success after_error_citizen_guardianship_flow4 + + SUCCESS + + N + 3216 + 1440 + + + + error after_error_citizen_guardianship_flow4 + + SUCCESS + + N + 3216 + 1520 + + + + Success after_error_citizen_guardianship_flow5 + + SUCCESS + + N + 3216 + 1600 + + + + error after_error_citizen_guardianship_flow5 + + SUCCESS + + N + 3216 + 1680 + + + + job_recruit_last_update_date.hwf + + WORKFLOW N N - N - N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing_delta.hpl - Basic + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/job_recruit_last_update_date.hwf + Nothing Y @@ -1263,12 +1104,12 @@ N Y N - 2160 + 2544 1792 - change_status_delta_citizen_guardianship_success.hpl + delta_citizen_guardianship.hpl PIPELINE @@ -1278,9 +1119,13 @@ N N N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_success.hpl + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/delta_citizen_guardianship.hpl Basic + + M_R_UP_DATE + ${M_R_UP_DATE} + Y N @@ -1289,38 +1134,93 @@ N Y N - 3024 + 2768 1792 - change_status_delta_citizen_guardianship_error.hpl + Success delta_citizen_guardianship - PIPELINE + SUCCESS - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_error.hpl - Basic - - Y - - N - local - N - N - Y N - 3024 + 3216 + 1792 + + + + state_delta_citizen_guardianship_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "delta_citizen_guardianship", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_delta.json + N + 2960 + 1792 + + + + state_delta_citizen_guardianship_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "delta_citizen_guardianship", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/state_citizen_guardianship_delta.json + N + 2960 + 1872 + + + + error delta_citizen_guardianship + + SUCCESS + + N + 3216 1872 + + Start + Checks if files exist state_job_citizen_guardianship.json + Y + Y + Y + + + Checks if files exist state_job_citizen_guardianship.json + checkpoint_job_citizen_guardianship.hpl (2) + Y + Y + N + + + Checks if files exist state_job_citizen_guardianship.json + recruitment_rows_five_flow_citizen_guardianship.hpl + Y + N + N + recruitment_rows_five_flow_citizen_guardianship.hpl citizen_guardianship_flow1.hpl @@ -1356,6 +1256,76 @@ Y N + + citizen_guardianship_flow1.hpl + Write state_citizen_guardianship_flow1 SUCCESS + Y + Y + N + + + citizen_guardianship_flow1.hpl + Write state_citizen_guardianship_flow1 ERROR + Y + N + N + + + citizen_guardianship_flow2.hpl + Write state_citizen_guardianship_flow2 SUCCESS + Y + Y + N + + + citizen_guardianship_flow2.hpl + Write state_citizen_guardianship_flow2 ERROR + Y + N + N + + + citizen_guardianship_flow3.hpl + Write state_citizen_guardianship_flow3 SUCCESS + Y + Y + N + + + citizen_guardianship_flow3.hpl + Write state_citizen_guardianship_flow3 ERROR + Y + N + N + + + citizen_guardianship_flow4.hpl + Write state_citizen_guardianship_flow4 SUCCESS + Y + Y + N + + + citizen_guardianship_flow4.hpl + Write state_citizen_guardianship_flow4 ERROR + Y + N + N + + + citizen_guardianship_flow5.hpl + Write state_citizen_guardianship_flow5 SUCCESS + Y + Y + N + + + citizen_guardianship_flow5.hpl + Write state_citizen_guardianship_flow5 ERROR + Y + N + N + recruitment_rows_five_flow_citizen_guardianship.hpl Abort workflow @@ -1364,12 +1334,159 @@ N - branching_citizen_guardianship.hpl - Simple child WHERE SUCCESS + Write state_citizen_guardianship_flow1 SUCCESS + checkpoint_job_citizen_guardianship.hpl Y N Y + + Write state_citizen_guardianship_flow1 ERROR + checkpoint_job_citizen_guardianship.hpl + Y + N + Y + + + Write state_citizen_guardianship_flow2 SUCCESS + checkpoint_job_citizen_guardianship.hpl + Y + N + Y + + + Write state_citizen_guardianship_flow2 ERROR + checkpoint_job_citizen_guardianship.hpl + Y + N + Y + + + Write state_citizen_guardianship_flow3 SUCCESS + checkpoint_job_citizen_guardianship.hpl + Y + N + Y + + + Write state_citizen_guardianship_flow3 ERROR + checkpoint_job_citizen_guardianship.hpl + Y + N + Y + + + Write state_citizen_guardianship_flow4 SUCCESS + checkpoint_job_citizen_guardianship.hpl + Y + N + Y + + + Write state_citizen_guardianship_flow4 ERROR + checkpoint_job_citizen_guardianship.hpl + Y + N + Y + + + Write state_citizen_guardianship_flow5 SUCCESS + checkpoint_job_citizen_guardianship.hpl + Y + N + Y + + + Write state_citizen_guardianship_flow5 ERROR + checkpoint_job_citizen_guardianship.hpl + Y + N + Y + + + state_job_citizen_guardianship_success + Success new citizen + Y + Y + N + + + state_job_citizen_guardianship_error + Success new citizen + Y + Y + N + + + checkpoint_job_citizen_guardianship.hpl + state_job_citizen_guardianship_success + Y + Y + N + + + checkpoint_job_citizen_guardianship.hpl + state_job_citizen_guardianship_error + Y + N + N + + + checkpoint_job_citizen_guardianship.hpl (2) + state_job_citizen_guardianship_success 2 + Y + Y + N + + + checkpoint_job_citizen_guardianship.hpl (2) + state_job_citizen_guardianship_error 2 + Y + N + N + + + state_job_citizen_guardianship_success 2 + branching_citizen_guardianship.hpl + Y + Y + N + + + state_job_citizen_guardianship_error 2 + branching_citizen_guardianship.hpl + Y + Y + N + + + Simple citizen_guardianship WHERE ERROR + checkpoint_citizen_guardianship_error.hpl + Y + N + Y + + + branching_citizen_guardianship.hpl + Simple citizen_guardianship WHERE ERROR + Y + N + N + + + branching_citizen_guardianship.hpl + Simple citizen_guardianship WHERE SUCCESS + Y + Y + N + + + checkpoint_citizen_guardianship_error.hpl + recruitment_rows_five_flow_if_error.hpl + Y + Y + N + recruitment_rows_five_flow_if_error.hpl Abort workflow 2 @@ -1378,334 +1495,75 @@ N - check_if_job_citizen_guardianship_exists.hpl - Simple job_citizen_guardianship_exists check NEW - Y - Y - N - - - Simple job_citizen_guardianship_exists check NEW - change_status_to_processing.hpl - Y - Y - N - - - change_status_to_processing.hpl - recruitment_rows_five_flow_citizen_guardianship.hpl - Y - Y - N - - - citizen_guardianship_flow1.hpl - change_status_citizen_guardianship_flow1_success.hpl - Y - Y - N - - - citizen_guardianship_flow1.hpl - change_status_citizen_guardianship_flow1_error.hpl - Y - N - N - - - citizen_guardianship_flow2.hpl - change_status_citizen_guardianship_flow2_success.hpl - Y - Y - N - - - citizen_guardianship_flow2.hpl - change_status_citizen_guardianship_flow2_error.hpl - Y - N - N - - - citizen_guardianship_flow3.hpl - change_status_citizen_guardianship_flow3_success.hpl - Y - Y - N - - - citizen_guardianship_flow3.hpl - change_status_citizen_guardianship_flow3_error.hpl - Y - N - N - - - citizen_guardianship_flow4.hpl - change_status_citizen_guardianship_flow4_success.hpl - Y - Y - N - - - citizen_guardianship_flow4.hpl - change_status_citizen_guardianship_flow4_error.hpl - Y - N - N - - - citizen_guardianship_flow5.hpl - change_status_citizen_guardianship_flow5_success.hpl - Y - Y - N - - - citizen_guardianship_flow5.hpl - change_status_citizen_guardianship_flow5_error.hpl - Y - N - N - - - change_status_citizen_guardianship_flow1_success.hpl - checkpoint_job_citizen_guardianship.hpl - Y - N - Y - - - change_status_citizen_guardianship_flow1_error.hpl - checkpoint_job_citizen_guardianship.hpl - Y - N - Y - - - change_status_citizen_guardianship_flow2_success.hpl - checkpoint_job_citizen_guardianship.hpl - Y - N - Y - - - change_status_citizen_guardianship_flow2_error.hpl - checkpoint_job_citizen_guardianship.hpl - Y - N - Y - - - change_status_citizen_guardianship_flow3_success.hpl - checkpoint_job_citizen_guardianship.hpl - Y - N - Y - - - change_status_citizen_guardianship_flow3_error.hpl - checkpoint_job_citizen_guardianship.hpl - Y - N - Y - - - change_status_citizen_guardianship_flow4_success.hpl - checkpoint_job_citizen_guardianship.hpl - Y - N - Y - - - change_status_citizen_guardianship_flow4_error.hpl - checkpoint_job_citizen_guardianship.hpl - Y - N - Y - - - change_status_citizen_guardianship_flow5_success.hpl - checkpoint_job_citizen_guardianship.hpl - Y - N - Y - - - change_status_citizen_guardianship_flow5_error.hpl - checkpoint_job_citizen_guardianship.hpl - Y - N - Y - - - checkpoint_job_citizen_guardianship.hpl - Success new citizen - Y - Y - N - - - Simple job_citizen_guardianship_exists check NEW - checkpoint_job_citizen_guardianship.hpl 2 - Y - N - N - - - checkpoint_job_citizen_guardianship.hpl 2 - branching_citizen_guardianship.hpl + citizen_guardianship_flow1.hpl 2 + Write state_citizen_guardianship_flow1 SUCCESS 2 Y Y N citizen_guardianship_flow1.hpl 2 - change_status_citizen_guardianship_flow1_success.hpl 2 - Y - Y - N - - - citizen_guardianship_flow1.hpl 2 - change_status_citizen_guardianship_flow1_error.hpl 2 + Write state_citizen_guardianship_flow1 ERROR 2 Y N N citizen_guardianship_flow2.hpl 2 - change_status_citizen_guardianship_flow2_success.hpl 2 + Write state_citizen_guardianship_flow2 SUCCESS 2 Y Y N citizen_guardianship_flow2.hpl 2 - change_status_citizen_guardianship_flow2_error.hpl 2 + Write state_citizen_guardianship_flow2 ERROR 2 Y N N citizen_guardianship_flow3.hpl 2 - change_status_citizen_guardianship_flow3_success.hpl 2 + Write state_citizen_guardianship_flow3 SUCCESS 2 Y Y N citizen_guardianship_flow3.hpl 2 - change_status_citizen_guardianship_flow3_error.hpl 2 + Write state_citizen_guardianship_flow3 ERROR 2 Y N N citizen_guardianship_flow4.hpl 2 - change_status_citizen_guardianship_flow4_success.hpl 2 + Write state_citizen_guardianship_flow4 SUCCESS 2 Y Y N citizen_guardianship_flow4.hpl 2 - change_status_citizen_guardianship_flow4_error.hpl 2 + Write state_citizen_guardianship_flow4 ERROR 2 Y N N citizen_guardianship_flow5.hpl 2 - change_status_citizen_guardianship_flow5_success.hpl 2 + Write state_citizen_guardianship_flow5 SUCCESS 2 Y Y N citizen_guardianship_flow5.hpl 2 - change_status_citizen_guardianship_flow5_error.hpl 2 + Write state_citizen_guardianship_flow5 ERROR 2 Y N N - - checkpoint_job_citizen_guardianship.hpl 3 - Success new citizen 2 - Y - Y - N - - - change_status_citizen_guardianship_flow1_success.hpl 2 - checkpoint_job_citizen_guardianship.hpl 3 - Y - N - Y - - - change_status_citizen_guardianship_flow1_error.hpl 2 - checkpoint_job_citizen_guardianship.hpl 3 - Y - N - Y - - - change_status_citizen_guardianship_flow2_success.hpl 2 - checkpoint_job_citizen_guardianship.hpl 3 - Y - N - Y - - - change_status_citizen_guardianship_flow2_error.hpl 2 - checkpoint_job_citizen_guardianship.hpl 3 - Y - N - Y - - - change_status_citizen_guardianship_flow3_success.hpl 2 - checkpoint_job_citizen_guardianship.hpl 3 - Y - N - Y - - - change_status_citizen_guardianship_flow3_error.hpl 2 - checkpoint_job_citizen_guardianship.hpl 3 - Y - N - Y - - - change_status_citizen_guardianship_flow4_success.hpl 2 - checkpoint_job_citizen_guardianship.hpl 3 - Y - N - Y - - - change_status_citizen_guardianship_flow4_error.hpl 2 - checkpoint_job_citizen_guardianship.hpl 3 - Y - N - Y - - - change_status_citizen_guardianship_flow5_success.hpl 2 - checkpoint_job_citizen_guardianship.hpl 3 - Y - N - Y - - - change_status_citizen_guardianship_flow5_error.hpl 2 - checkpoint_job_citizen_guardianship.hpl 3 - Y - N - Y - recruitment_rows_five_flow_if_error.hpl citizen_guardianship_flow3.hpl 2 @@ -1742,64 +1600,113 @@ N - change_status_to_processing.hpl 2 - recruitment_rows_five_flow_if_error.hpl + Write state_citizen_guardianship_flow1 SUCCESS 2 + Success after_error_citizen_guardianship_flow1 Y Y N - Simple child WHERE ERROR - change_status_to_processing.hpl 2 + Write state_citizen_guardianship_flow1 ERROR 2 + error after_error_citizen_guardianship_flow1 Y Y N - branching_citizen_guardianship.hpl - Simple child WHERE ERROR - Y - N - Y - - - Simple child WHERE SUCCESS - change_status_to_processing_delta.hpl + Write state_citizen_guardianship_flow2 SUCCESS 2 + Success after_error_citizen_guardianship_flow2 Y Y N - delta_citizen_guardianship.hpl - change_status_delta_citizen_guardianship_success.hpl + Write state_citizen_guardianship_flow2 ERROR 2 + error after_error_citizen_guardianship_flow2 Y Y N - change_status_delta_citizen_guardianship_success.hpl - Success delta_citizen + Write state_citizen_guardianship_flow3 SUCCESS 2 + Success after_error_citizen_guardianship_flow3 Y Y N - change_status_delta_citizen_guardianship_error.hpl - error delta_citizen + Write state_citizen_guardianship_flow3 ERROR 2 + error after_error_citizen_guardianship_flow3 Y Y N - change_status_to_processing_delta.hpl + Write state_citizen_guardianship_flow4 SUCCESS 2 + Success after_error_citizen_guardianship_flow4 + Y + Y + N + + + Write state_citizen_guardianship_flow4 ERROR 2 + error after_error_citizen_guardianship_flow4 + Y + Y + N + + + Write state_citizen_guardianship_flow5 SUCCESS 2 + Success after_error_citizen_guardianship_flow5 + Y + Y + N + + + Write state_citizen_guardianship_flow5 ERROR 2 + error after_error_citizen_guardianship_flow5 + Y + Y + N + + + Simple citizen_guardianship WHERE SUCCESS + job_recruit_last_update_date.hwf + Y + Y + N + + + job_recruit_last_update_date.hwf delta_citizen_guardianship.hpl Y Y N + + state_delta_citizen_guardianship_success + Success delta_citizen_guardianship + Y + Y + N + + + state_delta_citizen_guardianship_error + error delta_citizen_guardianship + Y + Y + N + delta_citizen_guardianship.hpl - change_status_delta_citizen_guardianship_error.hpl + state_delta_citizen_guardianship_success + Y + Y + N + + + delta_citizen_guardianship.hpl + state_delta_citizen_guardianship_error Y N N diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/job_recruit_last_update_date.hwf b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/job_recruit_last_update_date.hwf new file mode 100644 index 0000000..e2dc7c9 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/job_recruit_last_update_date.hwf @@ -0,0 +1,124 @@ + + + job_recruit_last_update_date + Y + + + + - + 2025/06/02 14:48:05.666 + - + 2025/06/02 14:48:05.666 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 592 + 352 + + + + recruit_update_date_ervu_dashboard.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/recruit_update_date_ervu_dashboard.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 784 + 352 + + + + row_last_recruit_update_date.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/row_last_recruit_update_date.hpl + Basic + + Y + + N + local + N + N + Y + N + 1056 + 352 + + + + Success + + SUCCESS + + N + 1232 + 352 + + + + + + Start + recruit_update_date_ervu_dashboard.hpl + Y + Y + Y + + + recruit_update_date_ervu_dashboard.hpl + row_last_recruit_update_date.hpl + Y + Y + N + + + row_last_recruit_update_date.hpl + Success + Y + Y + N + + + + + + diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow1.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow1.hpl new file mode 100644 index 0000000..f41ddc7 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow1.hpl @@ -0,0 +1,429 @@ + + + + citizen_guardianship_flow1 + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Select values 4 2 + N + + + Select values 4 2 + Get variables + N + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + Table input + Group by + Y + + + Add constants + Update + Y + + + Group by + Add constants + Y + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + is_guardian + true + -1 + N + Boolean + + + + + 752 + 160 + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + first_name + + + full_name + + + snils + + + last_name + + + middle_name + + + guardianship_external_id + + + guardian_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_guardianship ( + recruit_id, + birth_date, + first_name, + full_name, + snils, + last_name, + middle_name, + guardianship_external_id, + guardian_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, guardianship_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + snils = EXCLUDED.snils, + last_name = EXCLUDED.last_name, + middle_name = EXCLUDED.middle_name, + guardian_id_ern = EXCLUDED.guardian_id_ern; + + + 448 + 48 + + + + Get variables + GetVariable + + Y + + 1 + + none + + + + + -1 + recruitment_id + -1 + none + String + ID_F1 + + + + + 976 + 400 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 640 + 208 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + guardianship_external_id + guardianship_external_id + + ervu_dashboard + citizen_guardianship
+ + recruit_id + recruit_id + N + + + first_name + first_name + Y + + + last_name + last_name + Y + + + middle_name + middle_name + Y + + + birth_date + birth_date + Y + + + full_name + full_name + Y + + + guardian_id_ern + guardian_id_ern + Y + + + guardianship_external_id + guardianship_external_id + N + + + snils + snils + Y + +
+ N + + + 928 + 288 + +
+ + Select values 4 2 + SelectValues + + Y + + 1 + + none + + + + N + + ID_F1 + ID_F1 + String + -2 + -2 + + false + + + false + + + + + + + + + + 720 + 400 + + + + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id AS recruit_id, + ch->>'id' AS guardianship_external_id, + NULLIF(ch->>'idERN', '') AS guardian_id_ern, + ch->'fioOpek'->>'familiya' AS last_name, + ch->'fioOpek'->>'imya' AS first_name, + ch->'fioOpek'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'fioOpek'->>'familiya', + ch->'fioOpek'->>'imya', + ch->'fioOpek'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(ch->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + ch->>'snils' AS snils +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') AS ch +WHERE + '${ID_F1}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array'; + Y + + + 448 + 288 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_guardian + is_guardian + +
+ N + Y + + + 848 + 112 + +
+ + + Select values 4 2 + Get variables + Y + + + + + + + + + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow2.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow2.hpl new file mode 100644 index 0000000..f1e3d1c --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow2.hpl @@ -0,0 +1,342 @@ + + + + citizen_guardianship_flow2 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + Add constants + Update + Y + + + Group by + Add constants + Y + + + Table input + Group by + Y + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + is_guardian + true + -1 + N + Boolean + + + + + 864 + 160 + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + first_name + + + full_name + + + snils + + + last_name + + + middle_name + + + guardianship_external_id + + + guardian_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_guardianship ( + recruit_id, + birth_date, + first_name, + full_name, + snils, + last_name, + middle_name, + guardianship_external_id, + guardian_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, guardianship_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + snils = EXCLUDED.snils, + last_name = EXCLUDED.last_name, + middle_name = EXCLUDED.middle_name, + guardian_id_ern = EXCLUDED.guardian_id_ern; + + + 688 + 144 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 752 + 208 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + guardianship_external_id + guardianship_external_id + + ervu_dashboard + citizen_guardianship
+ + recruit_id + recruit_id + N + + + first_name + first_name + Y + + + last_name + last_name + Y + + + middle_name + middle_name + Y + + + birth_date + birth_date + Y + + + full_name + full_name + Y + + + guardian_id_ern + guardian_id_ern + Y + + + guardianship_external_id + guardianship_external_id + N + + + snils + snils + Y + +
+ N + + + 1088 + 288 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id AS recruit_id, + ch->>'id' AS guardianship_external_id, + NULLIF(ch->>'idERN', '') AS guardian_id_ern, + ch->'fioOpek'->>'familiya' AS last_name, + ch->'fioOpek'->>'imya' AS first_name, + ch->'fioOpek'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'fioOpek'->>'familiya', + ch->'fioOpek'->>'imya', + ch->'fioOpek'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(ch->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + ch->>'snils' AS snils +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') AS ch +WHERE + '${ID_F2}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array'; + Y + + + 560 + 288 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_guardian + is_guardian + +
+ N + Y + + + 960 + 112 + +
+ + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow3.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow3.hpl new file mode 100644 index 0000000..8f99ec3 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow3.hpl @@ -0,0 +1,342 @@ + + + + citizen_guardianship_flow3 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + Add constants + Update + Y + + + Group by + Add constants + Y + + + Table input + Group by + Y + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + is_guardian + true + -1 + N + Boolean + + + + + 992 + 208 + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + first_name + + + full_name + + + snils + + + last_name + + + middle_name + + + guardianship_external_id + + + guardian_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_guardianship ( + recruit_id, + birth_date, + first_name, + full_name, + snils, + last_name, + middle_name, + guardianship_external_id, + guardian_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, guardianship_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + snils = EXCLUDED.snils, + last_name = EXCLUDED.last_name, + middle_name = EXCLUDED.middle_name, + guardian_id_ern = EXCLUDED.guardian_id_ern; + + + 784 + 192 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 880 + 256 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + guardianship_external_id + guardianship_external_id + + ervu_dashboard + citizen_guardianship
+ + recruit_id + recruit_id + N + + + first_name + first_name + Y + + + last_name + last_name + Y + + + middle_name + middle_name + Y + + + birth_date + birth_date + Y + + + full_name + full_name + Y + + + guardian_id_ern + guardian_id_ern + Y + + + guardianship_external_id + guardianship_external_id + N + + + snils + snils + Y + +
+ N + + + 1216 + 352 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id AS recruit_id, + ch->>'id' AS guardianship_external_id, + NULLIF(ch->>'idERN', '') AS guardian_id_ern, + ch->'fioOpek'->>'familiya' AS last_name, + ch->'fioOpek'->>'imya' AS first_name, + ch->'fioOpek'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'fioOpek'->>'familiya', + ch->'fioOpek'->>'imya', + ch->'fioOpek'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(ch->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + ch->>'snils' AS snils +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') AS ch +WHERE + '${ID_F3}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array'; + Y + + + 672 + 352 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_guardian + is_guardian + +
+ N + Y + + + 1088 + 160 + +
+ + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow4.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow4.hpl new file mode 100644 index 0000000..11335b4 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow4.hpl @@ -0,0 +1,342 @@ + + + + citizen_guardianship_flow4 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + Add constants + Update + Y + + + Group by + Add constants + Y + + + Table input + Group by + Y + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + is_guardian + true + -1 + N + Boolean + + + + + 832 + 192 + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + first_name + + + full_name + + + snils + + + last_name + + + middle_name + + + guardianship_external_id + + + guardian_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_guardianship ( + recruit_id, + birth_date, + first_name, + full_name, + snils, + last_name, + middle_name, + guardianship_external_id, + guardian_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, guardianship_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + snils = EXCLUDED.snils, + last_name = EXCLUDED.last_name, + middle_name = EXCLUDED.middle_name, + guardian_id_ern = EXCLUDED.guardian_id_ern; + + + 640 + 176 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 720 + 240 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + guardianship_external_id + guardianship_external_id + + ervu_dashboard + citizen_guardianship
+ + recruit_id + recruit_id + N + + + first_name + first_name + Y + + + last_name + last_name + Y + + + middle_name + middle_name + Y + + + birth_date + birth_date + Y + + + full_name + full_name + Y + + + guardian_id_ern + guardian_id_ern + Y + + + guardianship_external_id + guardianship_external_id + N + + + snils + snils + Y + +
+ N + + + 1072 + 320 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id AS recruit_id, + ch->>'id' AS guardianship_external_id, + NULLIF(ch->>'idERN', '') AS guardian_id_ern, + ch->'fioOpek'->>'familiya' AS last_name, + ch->'fioOpek'->>'imya' AS first_name, + ch->'fioOpek'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'fioOpek'->>'familiya', + ch->'fioOpek'->>'imya', + ch->'fioOpek'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(ch->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + ch->>'snils' AS snils +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') AS ch +WHERE + '${ID_F4}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array'; + Y + + + 528 + 320 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_guardian + is_guardian + +
+ N + Y + + + 928 + 144 + +
+ + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow5.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow5.hpl new file mode 100644 index 0000000..505f657 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow5.hpl @@ -0,0 +1,342 @@ + + + + citizen_guardianship_flow5 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + Add constants + Update + Y + + + Group by + Add constants + Y + + + Table input + Group by + Y + + + + Add constants + Constant + + Y + + 1 + + none + + + + + -1 + is_guardian + true + -1 + N + Boolean + + + + + 864 + 240 + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + first_name + + + full_name + + + snils + + + last_name + + + middle_name + + + guardianship_external_id + + + guardian_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_guardianship ( + recruit_id, + birth_date, + first_name, + full_name, + snils, + last_name, + middle_name, + guardianship_external_id, + guardian_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, guardianship_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + snils = EXCLUDED.snils, + last_name = EXCLUDED.last_name, + middle_name = EXCLUDED.middle_name, + guardian_id_ern = EXCLUDED.guardian_id_ern; + + + 688 + 240 + + + + Group by + GroupBy + + Y + + 1 + + none + + + N + N + ${java.io.tmpdir} + + + N + + + recruit_id + + + N + grp + + + 752 + 288 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + guardianship_external_id + guardianship_external_id + + ervu_dashboard + citizen_guardianship
+ + recruit_id + recruit_id + N + + + first_name + first_name + Y + + + last_name + last_name + Y + + + middle_name + middle_name + Y + + + birth_date + birth_date + Y + + + full_name + full_name + Y + + + guardian_id_ern + guardian_id_ern + Y + + + guardianship_external_id + guardianship_external_id + N + + + snils + snils + Y + +
+ N + + + 1040 + 368 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id AS recruit_id, + ch->>'id' AS guardianship_external_id, + NULLIF(ch->>'idERN', '') AS guardian_id_ern, + ch->'fioOpek'->>'familiya' AS last_name, + ch->'fioOpek'->>'imya' AS first_name, + ch->'fioOpek'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + ch->'fioOpek'->>'familiya', + ch->'fioOpek'->>'imya', + ch->'fioOpek'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(ch->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(ch->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + ch->>'snils' AS snils +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') AS ch +WHERE + '${ID_F5}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date + AND jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array'; + Y + + + 560 + 368 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_guardian + is_guardian + +
+ N + Y + + + 960 + 192 + +
+ + + +
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_success.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/recruit_update_date_ervu_dashboard.hpl similarity index 56% rename from mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_success.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_guardianship/recruit_update_date_ervu_dashboard.hpl index 7a7dc06..6f63f21 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_success.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/recruit_update_date_ervu_dashboard.hpl @@ -1,7 +1,7 @@ - change_status_delta_child_flow1_success + recruit_update_date_ervu_dashboard Y @@ -13,63 +13,19 @@ 1000 100 - - 2025/06/16 12:20:06.191 + 2025/06/02 14:50:31.833 - - 2025/06/16 12:20:06.191 + 2025/06/02 14:50:31.833 Table input - Insert / update + Table output Y - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1152 - 304 - -
Table input TableInput @@ -84,16 +40,55 @@ ervu-dashboard N 0 - SELECT - 'delta_child_flow1' as job_name, - 'SUCCESS' as status, - current_timestamp as record_created - - + SELECT + created_at AS system_create_date, + updated_at AS system_update_date, + current_timestamp AS record_created, + 'job_recruits_info' AS workflow +FROM ervu_dashboard.recruits_info +WHERE updated_at = (SELECT MAX(updated_at) FROM ervu_dashboard.recruits_info) +limit 1 N - 784 + 896 + 304 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + N + N + N + N + + Y + + N + public + N + recruit_create
+ + N + Y + N + Y + + + 1216 304
diff --git a/mappings/info_recruits/citizen_tables/prosecution/recruitment_rows_five_flow_if_error.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/recruitment_rows_five_flow_if_error.hpl similarity index 98% rename from mappings/info_recruits/citizen_tables/prosecution/recruitment_rows_five_flow_if_error.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_guardianship/recruitment_rows_five_flow_if_error.hpl index 2b2626f..dc89572 100644 --- a/mappings/info_recruits/citizen_tables/prosecution/recruitment_rows_five_flow_if_error.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/recruitment_rows_five_flow_if_error.hpl @@ -82,7 +82,7 @@ flow_ranges AS ( recr_inf AS ( SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id FROM ervu_dashboard.citizen cit - join ervu_dashboard.prosecution ch on ch.recruit_id = cit.recruit_id + join ervu_dashboard.citizen_guardianship cg on cg.recruit_id = cit.recruit_id ), flow_data AS ( diff --git a/mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn.hpl b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/row_last_recruit_update_date.hpl similarity index 60% rename from mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_guardianship/row_last_recruit_update_date.hpl index aacbef5..5597125 100644 --- a/mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_guardianship/row_last_recruit_update_date.hpl @@ -1,7 +1,7 @@ - branching_snils_inn + row_last_recruit_update_date Y @@ -13,26 +13,43 @@ 1000 100 - - 2025/06/09 09:54:43.724 + 2025/06/02 14:51:59.611 - - 2025/06/09 09:54:43.724 + 2025/06/02 14:51:59.611 - Set variables 2 - Write to log 2 - N + Copy rows to result + Set variables + Y Table input - Set variables 2 + Copy rows to result Y - Set variables 2 + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 992 + 320 + + + + Set variables SetVariable Y @@ -44,21 +61,17 @@ - pipeline - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW + + MAX_RECRUIT_UPDATE_DATE + M_R_UP_DATE + GP_WORKFLOW Y - 1056 - 256 + 1232 + 320 @@ -75,47 +88,19 @@ ervu-dashboard N 0 - select - status as STATUS, - job_name AS PIPELINE -from public.etl_checkpoints -where job_name = 'job_snils_inn' + SELECT + system_update_date AS MAX_RECRUIT_UPDATE_DATE--, +--record_created +FROM public.recruit_create +WHERE system_update_date = (select max(system_update_date) from public.recruit_create) +and workflow = 'job_recruits_info' +order by record_created desc +limit 1 N - 816 - 256 - - - - Write to log 2 - WriteToLog - - Y - - 1 - - none - - - Y - - - pipeline - - - status - - - N - 0 - Basic - ${PIPE} -${STATUS} - - - 1280 - 256 + 688 + 320 diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/branching_citizen_spouse.hpl b/mappings_new/info_recruits/citizen_tables/citizen_spouse/branching_citizen_spouse.hpl similarity index 55% rename from mappings/info_recruits/citizen_tables/citizen_spouse/branching_citizen_spouse.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_spouse/branching_citizen_spouse.hpl index a4251dd..0987acb 100644 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/branching_citizen_spouse.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/branching_citizen_spouse.hpl @@ -21,18 +21,93 @@ - Set variables 2 - Write to log 2 - N + JSON input state_job_citizen_spouse.json + Set variables + Y - Table input - Set variables 2 - Y + Set variables + Write to log + N - Set variables 2 + JSON input state_job_citizen_spouse.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_job_citizen_spouse.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 816 + 448 + + + + Set variables SetVariable Y @@ -44,11 +119,13 @@ + pipeline PIPE PARENT_WORKFLOW + status STATUS PARENT_WORKFLOW @@ -57,38 +134,12 @@ Y - 1056 - 256 + 1072 + 448 - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - select - status as STATUS, - job_name AS PIPELINE -from public.etl_checkpoints -where job_name = 'job_citizen_spouse' - N - - - 816 - 256 - - - - Write to log 2 + Write to log WriteToLog Y @@ -98,7 +149,12 @@ where job_name = 'job_citizen_spouse' none + Basic Y + N + 0 + ${PIPE} +${STATUS} pipeline @@ -107,15 +163,10 @@ where job_name = 'job_citizen_spouse' status - N - 0 - Basic - ${PIPE} -${STATUS} - 1280 - 256 + 1296 + 448 diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_citizen_spouse_error.hpl b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_citizen_spouse_error.hpl new file mode 100644 index 0000000..b1b8e7d --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_citizen_spouse_error.hpl @@ -0,0 +1,276 @@ + + + + checkpoint_citizen_spouse_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/06/09 10:01:04.895 + - + 2025/06/09 10:01:04.895 + + + + + + Select values + Table output + N + + + Table input + Select values + N + + + Table input + Table output + Y + + + + Select values + SelectValues + + Y + + 1 + + none + + + + N + + idm_id + idm_id + String + -2 + -2 + + false + + + false + + + + + + + + + + 1008 + 608 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH ordered AS ( + SELECT + idm_id, + created_at, + ROW_NUMBER() OVER (ORDER BY created_at) AS rn, + COUNT(*) OVER () AS total_rows + FROM ervu_dashboard.recruitment +), + splitted AS ( + SELECT *, + CEIL(total_rows / 5.0) AS part_size, + FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num + FROM ordered + ), + flow_ranges AS ( + SELECT + flow_num, + MIN(created_at) AS min_date, + MAX(created_at) AS max_date + FROM splitted + GROUP BY flow_num + ), + recr_inf AS ( + SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id + FROM ervu_dashboard.citizen cit + join ervu_dashboard.citizen_spouse sp ON sp.recruit_id = cit.recruit_id + ), + flow_data AS ( + SELECT + fr.flow_num, + ri.idm_id, + (SELECT r.created_at FROM ervu_dashboard.recruitment r + WHERE r.idm_id = ri.idm_id + AND r.created_at BETWEEN fr.min_date AND fr.max_date + LIMIT 1) AS created_at + FROM recr_inf ri + CROSS JOIN flow_ranges fr + WHERE EXISTS ( + SELECT 1 FROM ervu_dashboard.recruitment r + WHERE r.idm_id = ri.idm_id + ) + ), + result_ma as ( + SELECT + MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1, + (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1, + + MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2, + (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2, + + MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3, + (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3, + + MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4, + (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4, + + MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5, + (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5 + FROM flow_data + ), + result_max as ( --костыль + SELECT + CASE + WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp + ELSE cr_flow1 + END AS cr_flow1, + idm_flow1, + CASE + WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp + ELSE cr_flow2 + END AS cr_flow2, + idm_flow2, + CASE + WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp + ELSE cr_flow3 + END AS cr_flow3, + idm_flow3, + CASE + WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp + ELSE cr_flow4 + END AS cr_flow4, + idm_flow4, + CASE + WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp + ELSE cr_flow5 + END AS cr_flow5, + idm_flow5 + FROM result_ma + ), + for_checkpoints as ( + SELECT + 'job_citizen_spouse_flow1' as job_name, + idm_flow1 as last_recruitment_id, + cr_flow1 as recruitment_created_date, + 'ERROR' as status, + current_timestamp as record_created + from result_max + + union all + + SELECT + 'job_citizen_spouse_flow2' as job_name, + idm_flow2 as last_recruitment_id, + cr_flow2 as recruitment_created_date, + 'ERROR' as status, + current_timestamp as record_created + from result_max + + union all + + SELECT + 'job_citizen_spouse_flow3' as job_name, + idm_flow3 as last_recruitment_id, + cr_flow3 as recruitment_created_date, + 'ERROR' as status, + current_timestamp as record_created + from result_max + + union all + + SELECT + 'job_citizen_spouse_flow4' as job_name, + idm_flow4 as last_recruitment_id, + cr_flow4 as recruitment_created_date, + 'ERROR' as status, + current_timestamp as record_created + from result_max + + union all + + SELECT + 'job_citizen_spouse_flow5' as job_name, + idm_flow5 as last_recruitment_id, + cr_flow5 as recruitment_created_date, + 'ERROR' as status, + current_timestamp as record_created + from result_max + ) +select * from for_checkpoints + N + + + 736 + 448 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + N + N + N + N + + Y + + N + public + N + etl_checkpoints
+ + N + Y + N + Y + + + 1248 + 448 + +
+ + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl similarity index 79% rename from mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl index ed32b9f..0b4d1d5 100644 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl @@ -23,62 +23,32 @@ Filter rows Abort - N - - - JSON input state_child_flow1.json - Filter rows - N - - - JSON input state_child_flow2.json - Filter rows - N - - - JSON input state_child_flow3.json - Filter rows - N - - - JSON input state_child_flow4.json - Filter rows - N - - - JSON input state_child_flow5.json - Filter rows - N - - - Table input - Insert / update Y - Dummy (do nothing) - JSON input state_child_flow1.json - N + JSON input state_citizen_spouse_flow1.json + Filter rows + Y - Dummy (do nothing) - JSON input state_child_flow2.json - N + JSON input state_citizen_spouse_flow2.json + Filter rows + Y - Dummy (do nothing) - JSON input state_child_flow3.json - N + JSON input state_citizen_spouse_flow3.json + Filter rows + Y - Dummy (do nothing) - JSON input state_child_flow4.json - N + JSON input state_citizen_spouse_flow4.json + Filter rows + Y - Dummy (do nothing) - JSON input state_child_flow5.json - N + JSON input state_citizen_spouse_flow5.json + Filter rows + Y @@ -101,23 +71,6 @@ 592 - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 352 - 592 - - Filter rows FilterRows @@ -144,9 +97,10 @@ N -1 + constant -1 - child_flow1 + citizen_spouse_flow1 String @@ -192,9 +146,10 @@ N -1 + constant -1 - child_flow2 + citizen_spouse_flow2 String @@ -240,9 +195,10 @@ N -1 + constant -1 - child_flow3 + citizen_spouse_flow3 String @@ -288,9 +244,10 @@ N -1 + constant -1 - child_flow4 + citizen_spouse_flow4 String @@ -336,9 +293,10 @@ N -1 + constant -1 - child_flow5 + citizen_spouse_flow5 String @@ -395,51 +353,7 @@ - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - job_name - job_name - - public - etl_checkpoints
- - job_name - job_name - N - - - record_created - record_created - Y - - - status - status - Y - -
- N - - - 1264 - 208 - -
- - JSON input state_child_flow1.json + JSON input state_citizen_spouse_flow1.json JsonInput Y @@ -461,7 +375,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow1.json N @@ -514,7 +428,7 @@ - JSON input state_child_flow2.json + JSON input state_citizen_spouse_flow2.json JsonInput Y @@ -536,7 +450,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow2.json N @@ -589,7 +503,7 @@ - JSON input state_child_flow3.json + JSON input state_citizen_spouse_flow3.json JsonInput Y @@ -611,7 +525,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow3.json N @@ -664,7 +578,7 @@ - JSON input state_child_flow4.json + JSON input state_citizen_spouse_flow4.json JsonInput Y @@ -686,7 +600,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow4.json N @@ -739,7 +653,7 @@ - JSON input state_child_flow5.json + JSON input state_citizen_spouse_flow5.json JsonInput Y @@ -761,7 +675,7 @@ Y - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow5.json N @@ -813,56 +727,6 @@ 752 - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH status_check AS ( - SELECT - bool_or(status = 'ERROR' AND job_name IN ( - 'citizen_spouse_flow1', - 'citizen_spouse_flow2', - 'citizen_spouse_flow3', - 'citizen_spouse_flow4', - 'citizen_spouse_flow5' - )) AS has_error, - count(*) FILTER ( - WHERE status = 'SUCCESS' AND job_name IN ( - 'citizen_spouse_flow1', - 'citizen_spouse_flow2', - 'citizen_spouse_flow3', - 'citizen_spouse_flow4', - 'citizen_spouse_flow5' - ) - ) = 5 AS all_success - FROM public.etl_checkpoints -) -SELECT - 'job_citizen_spouse' as job_name, - CASE - WHEN has_error THEN 'ERROR' - WHEN all_success THEN 'SUCCESS' - ELSE 'ERROR' - END AS status, - current_timestamp AS record_created -FROM status_check; - N - - - 896 - 208 - - diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/job_create_files_citizen_guardianship.hwf b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/job_create_files_citizen_spouse.hwf similarity index 72% rename from mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/job_create_files_citizen_guardianship.hwf rename to mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/job_create_files_citizen_spouse.hwf index 1a90995..b88bb8f 100644 --- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/job_create_files_citizen_guardianship.hwf +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/job_create_files_citizen_spouse.hwf @@ -1,6 +1,6 @@ - job_create_files_citizen_guardianship + job_create_files_citizen_spouse Y @@ -31,90 +31,90 @@ - state_child_flow2_new + state_citizen_spouse_flow2_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow2" + "pipeline": "citizen_spouse_flow2" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow2.json N 848 416 - state_child_flow1_new + state_citizen_spouse_flow1_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow1" + "pipeline": "citizen_spouse_flow1" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow1.json N 848 336 - state_child_flow3_new + state_citizen_spouse_flow3_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow3" + "pipeline": "citizen_spouse_flow3" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow3.json N 848 496 - state_child_flow4_new + state_citizen_spouse_flow4_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow4" + "pipeline": "citizen_spouse_flow4" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow4.json N 848 576 - state_child_flow5_new + state_citizen_spouse_flow5_new WRITE_TO_FILE N { "status": "NEW", - "pipeline": "child_flow5" + "pipeline": "citizen_spouse_flow5" } N UTF-8 - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow5.json N 848 656 @@ -131,12 +131,12 @@ - Delete file state_job_child + Delete file state_job_citizen_spouse DELETE_FILE N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouset/checkpoints/state_job_citizen_spouse.json N 848 256 @@ -146,69 +146,69 @@ Start - state_child_flow3_new + state_citizen_spouse_flow3_new Y Y Y Start - state_child_flow2_new + state_citizen_spouse_flow2_new Y Y Y Start - state_child_flow1_new + state_citizen_spouse_flow1_new Y Y Y Start - state_child_flow4_new + state_citizen_spouse_flow4_new Y Y Y Start - state_child_flow5_new + state_citizen_spouse_flow5_new Y Y Y - state_child_flow5_new + state_citizen_spouse_flow5_new Success Y Y N - state_child_flow4_new + state_citizen_spouse_flow4_new Success Y Y N - state_child_flow3_new + state_citizen_spouse_flow3_new Success Y Y N - state_child_flow2_new + state_citizen_spouse_flow2_new Success Y Y N - state_child_flow1_new + state_citizen_spouse_flow1_new Success Y Y @@ -216,13 +216,13 @@ Start - Delete file state_job_child + Delete file state_job_citizen_spouse Y Y Y - Delete file state_job_child + Delete file state_job_citizen_spouse Success Y Y diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_delta.json b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_delta.json new file mode 100644 index 0000000..8c841ea --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_delta.json @@ -0,0 +1,6 @@ +{ + "status": "SUCCESS", + "pipeline": "delta_citizen_spouse", + "max_create_date": "3001-01-01 00:00:00", + "max_update_date": "2025/04/09 00:25:46.935442000" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow1.json b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow1.json new file mode 100644 index 0000000..2162550 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow1.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow1" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow2.json b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow2.json new file mode 100644 index 0000000..943630e --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow2.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow2" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow3.json b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow3.json new file mode 100644 index 0000000..e7fb9ad --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow3.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow3" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow4.json b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow4.json new file mode 100644 index 0000000..38ad6be --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow4.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow4" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow5.json b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow5.json new file mode 100644 index 0000000..a28f63b --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow5.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow5" +} \ No newline at end of file diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/delta_citizen_spouse.hpl b/mappings_new/info_recruits/citizen_tables/citizen_spouse/delta_citizen_spouse.hpl new file mode 100644 index 0000000..c000182 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/delta_citizen_spouse.hpl @@ -0,0 +1,309 @@ + + + + delta_citizen_spouse + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/06/03 16:10:48.509 + - + 2025/06/03 16:10:48.509 + + + + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + death_az_number + + + death_date + + + divorce_az_number + + + first_name + + + full_name + + + information_excluded + + + kinship_type + + + last_name + + + marriage_az_number + + + marriage_date + + + middle_name + + + spouse_external_id + + + spouse_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_spouse ( + recruit_id, + birth_date, + death_az_number, + death_date, + divorce_az_number, + first_name, + full_name, + information_excluded, + kinship_type, + last_name, + marriage_az_number, + marriage_date, + middle_name, + spouse_external_id, + spouse_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, spouse_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + death_az_number = EXCLUDED.death_az_number, + death_date = EXCLUDED.death_date, + divorce_az_number = EXCLUDED.divorce_az_number, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + information_excluded = EXCLUDED.information_excluded, + kinship_type = EXCLUDED.kinship_type, + last_name = EXCLUDED.last_name, + marriage_az_number = EXCLUDED.marriage_az_number, + marriage_date = EXCLUDED.marriage_date, + middle_name = EXCLUDED.middle_name, + spouse_id_ern = EXCLUDED.spouse_id_ern; + + + 816 + 176 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + spouse_external_id + spouse_external_id + + ervu_dashboard + citizen_spouse
+ + recruit_id + recruit_id + N + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + divorce_az_number + divorce_az_number + Y + + + first_name + first_name + Y + + + full_name + full_name + Y + + + information_excluded + information_excluded + Y + + + kinship_type + kinship_type + Y + + + last_name + last_name + Y + + + marriage_az_number + marriage_az_number + Y + + + marriage_date + marriage_date + Y + + + middle_name + middle_name + Y + + + spouse_external_id + spouse_external_id + N + + + spouse_id_ern + spouse_id_ern + Y + +
+ N + + + 1168 + 352 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id, + supr->>'id' AS spouse_external_id, + NULLIF(supr->>'idERN', '') AS spouse_id_ern, + NULLIF(supr->>'rodstvSvyazSuprug', '')::int AS kinship_type, + supr->'svedFLBS'->'fio'->>'familiya' AS last_name, + supr->'svedFLBS'->'fio'->>'imya' AS first_name, + supr->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + supr->'svedFLBS'->'fio'->>'familiya', + supr->'svedFLBS'->'fio'->>'imya', + supr->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, + supr->'svedSmert'->>'nomerZapis' AS death_az_number, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend')::date AS marriage_date, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend')::date AS divorce_date, + CASE + WHEN ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1' THEN true + ELSE false + END AS information_excluded +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL ( + SELECT supri + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' +) AS supr(supr) +WHERE + --'${ID_F1}' != '' + --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' + '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date + AND r.update_date >= '${M_R_UP_DATE}'::timestamp; + Y + + + 624 + 352 + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/job_citizen_spouse.hwf b/mappings_new/info_recruits/citizen_tables/citizen_spouse/job_citizen_spouse.hwf similarity index 58% rename from mappings/info_recruits/citizen_tables/citizen_spouse/job_citizen_spouse.hwf rename to mappings_new/info_recruits/citizen_tables/citizen_spouse/job_citizen_spouse.hwf index c3c8681..15f461a 100644 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/job_citizen_spouse.hwf +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/job_citizen_spouse.hwf @@ -5,23 +5,12 @@ - 0 - 2025/06/05 14:27:15.055 - 2025/06/05 14:27:15.055 - - M_R_CR_DATE - 3001-01-01 00:00:00 - - - - M_R_UP_DATE - - - - + Start @@ -37,7 +26,23 @@ 0 1 N - 368 + 624 + 400 + + + + Checks if files exist state_job_citizen_spouse.json + + FILES_EXIST + + + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_job_citizen_spouse.json + + + N + 848 400 @@ -89,7 +94,7 @@ N Y Y - 2352 + 1488 400
@@ -105,21 +110,24 @@ N Y ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow1.hpl + + Basic ID_F1 IDM_FLOW1 + Y - Y + N local N N Y N - 2672 + 1808 80 @@ -135,21 +143,24 @@ N Y ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl + + Basic ID_F2 IDM_FLOW2 + Y - Y + N local N N Y N - 2672 + 1808 240 @@ -165,21 +176,24 @@ N Y ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl + + Basic ID_F3 IDM_FLOW3 + Y - Y + N local N N Y N - 2672 + 1808 400 @@ -195,21 +209,24 @@ N Y ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl + + Basic ID_F4 IDM_FLOW4 + Y - Y + N local N N Y N - 2672 + 1808 560 @@ -225,24 +242,197 @@ N Y ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl + + Basic ID_F5 IDM_FLOW5 + Y - Y + N local N N Y N - 2672 + 1808 720 + + Write state_citizen_spouse_flow1 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow1.json + N + 2096 + 80 + + + + Write state_citizen_spouse_flow1 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_spouse_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow1.json + N + 2096 + 160 + + + + Write state_citizen_spouse_flow2 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow2.json + N + 2096 + 240 + + + + Write state_citizen_spouse_flow2 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_spouse_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow2.json + N + 2096 + 320 + + + + Write state_citizen_spouse_flow3 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow3.json + N + 2096 + 400 + + + + Write state_citizen_spouse_flow3 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_spouse_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow3.json + N + 2096 + 480 + + + + Write state_citizen_spouse_flow4 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow4.json + N + 2096 + 560 + + + + Write state_citizen_spouse_flow4 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_spouse_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow4.json + N + 2096 + 640 + + + + Write state_citizen_spouse_flow5 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow5.json + N + 2096 + 720 + + + + Write state_citizen_spouse_flow5 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_spouse_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow5.json + N + 2096 + 800 + + Abort workflow @@ -250,18 +440,116 @@ N N - 2336 + 1472 208 - Success new citizen + checkpoint_job_citizen_spouse.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl + Basic + + Y + + N + local + N + N + Y + N + 2496 + 384 + + + + Success new citizen_spouse SUCCESS N - 3728 - 432 + 3024 + 384 + + + + state_job_citizen_spouse_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_citizen_spouse" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_job_citizen_spouse.json + N + 2784 + 384 + + + + state_job_citizen_spouse_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_citizen_spouse" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_job_citizen_spouse.json + N + 2784 + 480 + + + + state_job_citizen_spouse_success 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_citizen_spouse" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_job_citizen_spouse.json + N + 1360 + 1280 + + + + state_job_citizen_spouse_error 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_citizen_spouse" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_job_citizen_spouse.json + N + 1360 + 1376 @@ -304,7 +592,7 @@ variable STATUS N - 1840 + 2240 1792 @@ -326,6 +614,32 @@ 1280 + + checkpoint_citizen_spouse_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_citizen_spouse_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 2064 + 1280 + + recruitment_rows_five_flow_if_error.hpl @@ -363,6 +677,465 @@ 1040 + + citizen_spouse_flow1.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow1.hpl + + + Basic + + + ID_F1 + IDM_FLOW1 + + + Y + + N + local + N + N + Y + N + 2672 + 960 + + + + citizen_spouse_flow2.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl + + + Basic + + + ID_F2 + IDM_FLOW2 + + + Y + + N + local + N + N + Y + N + 2672 + 1120 + + + + citizen_spouse_flow3.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl + + + Basic + + + ID_F3 + IDM_FLOW3 + + + Y + + N + local + N + N + Y + N + 2672 + 1280 + + + + citizen_spouse_flow4.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl + + + Basic + + + ID_F4 + IDM_FLOW4 + + + Y + + N + local + N + N + Y + N + 2704 + 1424 + + + + citizen_spouse_flow5.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl + + + Basic + + + ID_F5 + IDM_FLOW5 + + + Y + + N + local + N + N + Y + N + 2672 + 1600 + + + + Write state_citizen_spouse_flow1 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow1.json + N + 2960 + 960 + + + + Write state_citizen_spouse_flow1 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_spouse_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow1.json + N + 2960 + 1040 + + + + Write state_citizen_spouse_flow2 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow2.json + N + 2960 + 1120 + + + + Write state_citizen_spouse_flow2 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_spouse_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow2.json + N + 2960 + 1200 + + + + Write state_citizen_spouse_flow3 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow3.json + N + 2960 + 1280 + + + + Write state_citizen_spouse_flow3 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_spouse_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow3.json + N + 2960 + 1360 + + + + Write state_citizen_spouse_flow4 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow4.json + N + 2960 + 1440 + + + + Write state_citizen_spouse_flow4 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_spouse_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow4.json + N + 2960 + 1520 + + + + Write state_citizen_spouse_flow5 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_spouse_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow5.json + N + 2960 + 1600 + + + + Write state_citizen_spouse_flow5 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_spouse_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_flow5.json + N + 2960 + 1680 + + + + Success after_error_citizen_spouse_flow1 + + SUCCESS + + N + 3216 + 960 + + + + error after_error_citizen_spouse_flow1 + + SUCCESS + + N + 3216 + 1040 + + + + Success after_error_citizen_spouse_flow2 + + SUCCESS + + N + 3216 + 1120 + + + + error after_error_citizen_spouse_flow2 + + SUCCESS + + N + 3216 + 1200 + + + + Success after_error_citizen_spouse_flow3 + + SUCCESS + + N + 3216 + 1280 + + + + error after_error_citizen_spouse_flow3 + + SUCCESS + + N + 3216 + 1360 + + + + Success after_error_citizen_spouse_flow4 + + SUCCESS + + N + 3216 + 1440 + + + + error after_error_citizen_spouse_flow4 + + SUCCESS + + N + 3216 + 1520 + + + + Success after_error_citizen_spouse_flow5 + + SUCCESS + + N + 3216 + 1600 + + + + error after_error_citizen_spouse_flow5 + + SUCCESS + + N + 3216 + 1680 + + + + job_recruit_last_update_date.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/job_recruit_last_update_date.hwf + Nothing + + Y + + N + local + N + N + Y + N + 2544 + 1792 + + delta_citizen_spouse.hpl @@ -389,938 +1162,93 @@ N Y N - 2640 + 2768 1792 - Success delta_citizen + Success delta_citizen_spouse SUCCESS N - 3280 + 3216 1792 - error delta_citizen + state_delta_citizen_spouse_success - SUCCESS + WRITE_TO_FILE + N + { + "status": "SUCCESS", + "pipeline": "delta_citizen_spouse", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_delta.json N - 3280 + 2960 + 1792 + + + + state_delta_citizen_spouse_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "delta_citizen_spouse", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/state_citizen_spouse_delta.json + N + 2960 1872 - check_if_job_citizen_spouse_exists.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_job_citizen_spouse_exists.hpl - Basic - - Y - - N - local - N - N - Y - N - 576 - 400 - - - - Simple job_citizen_spouse_exists check NEW - - SIMPLE_EVAL - - NEW - string - true - equal - equal - N - variable - STATUS - N - 896 - 400 - - - - change_status_to_processing.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 1264 - 400 - - - - change_status_citizen_spouse_flow1_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 80 - - - - change_status_citizen_spouse_flow1_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 160 - - - - change_status_citizen_spouse_flow2_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 240 - - - - change_status_citizen_spouse_flow2_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 320 - - - - change_status_citizen_spouse_flow3_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 400 - - - - change_status_citizen_spouse_flow3_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 480 - - - - change_status_citizen_spouse_flow4_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 560 - - - - change_status_citizen_spouse_flow4_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 640 - - - - change_status_citizen_spouse_flow5_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 720 - - - - change_status_citizen_spouse_flow5_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 800 - - - - checkpoint_job_citizen_spouse.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl - Basic - - Y - - N - local - N - N - Y - N - 3456 - 432 - - - - change_status_to_processing.hpl (2) - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing.hpl - Basic - - Y - - N - local - N - N - Y - N - 2112 - 1280 - - - - change_status_to_processing_delta.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing_delta.hpl - Basic - - Y - - N - local - N - N - Y - N - 2144 - 1792 - - - - change_status_delta_citizen_spouse_success.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1792 - - - - change_status_delta_citizen_spouse_error.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1872 - - - - citizen_spouse_flow1.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow1.hpl - Basic - - - ID_F1 - IDM_FLOW1 - - Y - - Y - local - N - N - Y - N - 2672 - 960 - - - - citizen_spouse_flow2.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl - Basic - - - ID_F2 - IDM_FLOW2 - - Y - - Y - local - N - N - Y - N - 2672 - 1120 - - - - citizen_spouse_flow3.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl - Basic - - - ID_F3 - IDM_FLOW3 - - Y - - Y - local - N - N - Y - N - 2672 - 1280 - - - - citizen_spouse_flow4.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl - Basic - - - ID_F4 - IDM_FLOW4 - - Y - - Y - local - N - N - Y - N - 2672 - 1440 - - - - citizen_spouse_flow5.hpl 2 - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl - Basic - - - ID_F5 - IDM_FLOW5 - - Y - - Y - local - N - N - Y - N - 2672 - 1600 - - - - Success new citizen 2 + error delta_citizen_spouse SUCCESS N - 3728 - 1312 - - - - change_status_citizen_spouse_flow1_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 960 - - - - change_status_citizen_spouse_flow1_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1040 - - - - change_status_citizen_spouse_flow2_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1120 - - - - change_status_citizen_spouse_flow2_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1200 - - - - change_status_citizen_spouse_flow3_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1280 - - - - change_status_citizen_spouse_flow3_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1360 - - - - change_status_citizen_spouse_flow4_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1440 - - - - change_status_citizen_spouse_flow4_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1520 - - - - change_status_citizen_spouse_flow5_success.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_success.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1600 - - - - change_status_citizen_spouse_flow5_error.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_error.hpl - Basic - - Y - - N - local - N - N - Y - N - 2992 - 1680 - - - - checkpoint_job_citizen_spouse.hpl 2 - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl - Basic - - Y - - N - local - N - N - Y - N - 3456 - 1312 + 3216 + 1872 + + Start + Checks if files exist state_job_citizen_spouse.json + Y + Y + Y + + + Checks if files exist state_job_citizen_spouse.json + checkpoint_job_citizen_spouse.hpl (2) + Y + Y + N + + + Checks if files exist state_job_citizen_spouse.json + recruitment_rows_five_flow_citizen_spouse.hpl + Y + N + N + recruitment_rows_five_flow_citizen_spouse.hpl citizen_spouse_flow1.hpl @@ -1356,6 +1284,76 @@ Y N + + citizen_spouse_flow1.hpl + Write state_citizen_spouse_flow1 SUCCESS + Y + Y + N + + + citizen_spouse_flow1.hpl + Write state_citizen_spouse_flow1 ERROR + Y + N + N + + + citizen_spouse_flow2.hpl + Write state_citizen_spouse_flow2 SUCCESS + Y + Y + N + + + citizen_spouse_flow2.hpl + Write state_citizen_spouse_flow2 ERROR + Y + N + N + + + citizen_spouse_flow3.hpl + Write state_citizen_spouse_flow3 SUCCESS + Y + Y + N + + + citizen_spouse_flow3.hpl + Write state_citizen_spouse_flow3 ERROR + Y + N + N + + + citizen_spouse_flow4.hpl + Write state_citizen_spouse_flow4 SUCCESS + Y + Y + N + + + citizen_spouse_flow4.hpl + Write state_citizen_spouse_flow4 ERROR + Y + N + N + + + citizen_spouse_flow5.hpl + Write state_citizen_spouse_flow5 SUCCESS + Y + Y + N + + + citizen_spouse_flow5.hpl + Write state_citizen_spouse_flow5 ERROR + Y + N + N + recruitment_rows_five_flow_citizen_spouse.hpl Abort workflow @@ -1364,18 +1362,158 @@ N - branching_citizen_spouse.hpl - Simple citizen_spouse WHERE ERROR + Write state_citizen_spouse_flow1 SUCCESS + checkpoint_job_citizen_spouse.hpl + Y + N + Y + + + Write state_citizen_spouse_flow1 ERROR + checkpoint_job_citizen_spouse.hpl + Y + N + Y + + + Write state_citizen_spouse_flow2 SUCCESS + checkpoint_job_citizen_spouse.hpl + Y + N + Y + + + Write state_citizen_spouse_flow2 ERROR + checkpoint_job_citizen_spouse.hpl + Y + N + Y + + + Write state_citizen_spouse_flow3 SUCCESS + checkpoint_job_citizen_spouse.hpl + Y + N + Y + + + Write state_citizen_spouse_flow3 ERROR + checkpoint_job_citizen_spouse.hpl + Y + N + Y + + + Write state_citizen_spouse_flow4 SUCCESS + checkpoint_job_citizen_spouse.hpl + Y + N + Y + + + Write state_citizen_spouse_flow4 ERROR + checkpoint_job_citizen_spouse.hpl + Y + N + Y + + + Write state_citizen_spouse_flow5 SUCCESS + checkpoint_job_citizen_spouse.hpl + Y + N + Y + + + Write state_citizen_spouse_flow5 ERROR + checkpoint_job_citizen_spouse.hpl + Y + N + Y + + + state_job_citizen_spouse_success + Success new citizen_spouse + Y + Y + N + + + state_job_citizen_spouse_error + Success new citizen_spouse + Y + Y + N + + + checkpoint_job_citizen_spouse.hpl + state_job_citizen_spouse_success + Y + Y + N + + + checkpoint_job_citizen_spouse.hpl + state_job_citizen_spouse_error + Y + N + N + + + checkpoint_job_citizen_spouse.hpl (2) + state_job_citizen_spouse_success 2 + Y + Y + N + + + checkpoint_job_citizen_spouse.hpl (2) + state_job_citizen_spouse_error 2 + Y + N + N + + + state_job_citizen_spouse_success 2 + branching_citizen_spouse.hpl + Y + Y + N + + + state_job_citizen_spouse_error 2 + branching_citizen_spouse.hpl + Y + Y + N + + + Simple citizen_spouse WHERE ERROR + checkpoint_citizen_spouse_error.hpl Y N Y branching_citizen_spouse.hpl - Simple citizen_spouse WHERE SUCCESS + Simple citizen_spouse WHERE ERROR Y N - Y + N + + + branching_citizen_spouse.hpl + Simple citizen_spouse WHERE SUCCESS + Y + Y + N + + + checkpoint_citizen_spouse_error.hpl + recruitment_rows_five_flow_if_error.hpl + Y + Y + N recruitment_rows_five_flow_if_error.hpl @@ -1385,397 +1523,75 @@ N - Start - check_if_job_citizen_spouse_exists.hpl - Y - Y - Y - - - check_if_job_citizen_spouse_exists.hpl - Simple job_citizen_spouse_exists check NEW - Y - Y - N - - - Simple job_citizen_spouse_exists check NEW - change_status_to_processing.hpl - Y - Y - N - - - change_status_to_processing.hpl - recruitment_rows_five_flow_citizen_spouse.hpl - Y - Y - N - - - citizen_spouse_flow1.hpl - change_status_citizen_spouse_flow1_success.hpl - Y - Y - N - - - citizen_spouse_flow1.hpl - change_status_citizen_spouse_flow1_error.hpl - Y - N - N - - - citizen_spouse_flow2.hpl - change_status_citizen_spouse_flow2_success.hpl - Y - Y - N - - - citizen_spouse_flow2.hpl - change_status_citizen_spouse_flow2_error.hpl - Y - N - N - - - citizen_spouse_flow3.hpl - change_status_citizen_spouse_flow3_success.hpl - Y - Y - N - - - citizen_spouse_flow3.hpl - change_status_citizen_spouse_flow3_error.hpl - Y - N - N - - - citizen_spouse_flow4.hpl - change_status_citizen_spouse_flow4_success.hpl - Y - Y - N - - - citizen_spouse_flow4.hpl - change_status_citizen_spouse_flow4_error.hpl - Y - N - N - - - citizen_spouse_flow5.hpl - change_status_citizen_spouse_flow5_success.hpl - Y - Y - N - - - citizen_spouse_flow5.hpl - change_status_citizen_spouse_flow5_error.hpl - Y - N - N - - - change_status_citizen_spouse_flow5_error.hpl - checkpoint_job_citizen_spouse.hpl - Y - N - Y - - - change_status_citizen_spouse_flow5_success.hpl - checkpoint_job_citizen_spouse.hpl - Y - N - Y - - - change_status_citizen_spouse_flow4_error.hpl - checkpoint_job_citizen_spouse.hpl - Y - N - Y - - - change_status_citizen_spouse_flow4_success.hpl - checkpoint_job_citizen_spouse.hpl - Y - N - Y - - - change_status_citizen_spouse_flow3_error.hpl - checkpoint_job_citizen_spouse.hpl - Y - N - Y - - - change_status_citizen_spouse_flow3_success.hpl - checkpoint_job_citizen_spouse.hpl - Y - N - Y - - - change_status_citizen_spouse_flow2_error.hpl - checkpoint_job_citizen_spouse.hpl - Y - N - Y - - - change_status_citizen_spouse_flow2_success.hpl - checkpoint_job_citizen_spouse.hpl - Y - N - Y - - - change_status_citizen_spouse_flow1_error.hpl - checkpoint_job_citizen_spouse.hpl - Y - N - Y - - - change_status_citizen_spouse_flow1_success.hpl - checkpoint_job_citizen_spouse.hpl - Y - N - Y - - - checkpoint_job_citizen_spouse.hpl - Success new citizen - Y - Y - N - - - checkpoint_job_citizen_spouse.hpl (2) - branching_citizen_spouse.hpl - Y - N - Y - - - Simple job_citizen_spouse_exists check NEW - checkpoint_job_citizen_spouse.hpl (2) - Y - N - N - - - Simple citizen_spouse WHERE ERROR - change_status_to_processing.hpl (2) - Y - Y - N - - - change_status_to_processing.hpl (2) - recruitment_rows_five_flow_if_error.hpl - Y - Y - N - - - Simple citizen_spouse WHERE SUCCESS - change_status_to_processing_delta.hpl - Y - Y - N - - - delta_citizen_spouse.hpl - change_status_delta_citizen_spouse_success.hpl - Y - Y - N - - - change_status_delta_citizen_spouse_success.hpl - Success delta_citizen - Y - Y - N - - - delta_citizen_spouse.hpl - change_status_delta_citizen_spouse_error.hpl - Y - N - N - - - change_status_delta_citizen_spouse_error.hpl - error delta_citizen - Y - Y - N - - - change_status_to_processing_delta.hpl - delta_citizen_spouse.hpl + citizen_spouse_flow1.hpl 2 + Write state_citizen_spouse_flow1 SUCCESS 2 Y Y N citizen_spouse_flow1.hpl 2 - change_status_citizen_spouse_flow1_success.hpl 2 - Y - Y - N - - - citizen_spouse_flow1.hpl 2 - change_status_citizen_spouse_flow1_error.hpl 2 + Write state_citizen_spouse_flow1 ERROR 2 Y N N citizen_spouse_flow2.hpl 2 - change_status_citizen_spouse_flow2_success.hpl 2 + Write state_citizen_spouse_flow2 SUCCESS 2 Y Y N citizen_spouse_flow2.hpl 2 - change_status_citizen_spouse_flow2_error.hpl 2 + Write state_citizen_spouse_flow2 ERROR 2 Y N N citizen_spouse_flow3.hpl 2 - change_status_citizen_spouse_flow3_success.hpl 2 + Write state_citizen_spouse_flow3 SUCCESS 2 Y Y N citizen_spouse_flow3.hpl 2 - change_status_citizen_spouse_flow3_error.hpl 2 + Write state_citizen_spouse_flow3 ERROR 2 Y N N citizen_spouse_flow4.hpl 2 - change_status_citizen_spouse_flow4_success.hpl 2 + Write state_citizen_spouse_flow4 SUCCESS 2 Y Y N citizen_spouse_flow4.hpl 2 - change_status_citizen_spouse_flow4_error.hpl 2 + Write state_citizen_spouse_flow4 ERROR 2 Y N N citizen_spouse_flow5.hpl 2 - change_status_citizen_spouse_flow5_success.hpl 2 + Write state_citizen_spouse_flow5 SUCCESS 2 Y Y N citizen_spouse_flow5.hpl 2 - change_status_citizen_spouse_flow5_error.hpl 2 + Write state_citizen_spouse_flow5 ERROR 2 Y N N - - change_status_citizen_spouse_flow1_success.hpl 2 - checkpoint_job_citizen_spouse.hpl 2 - Y - N - Y - - - change_status_citizen_spouse_flow1_error.hpl 2 - checkpoint_job_citizen_spouse.hpl 2 - Y - N - Y - - - change_status_citizen_spouse_flow2_success.hpl 2 - checkpoint_job_citizen_spouse.hpl 2 - Y - N - Y - - - change_status_citizen_spouse_flow2_error.hpl 2 - checkpoint_job_citizen_spouse.hpl 2 - Y - N - Y - - - change_status_citizen_spouse_flow3_success.hpl 2 - checkpoint_job_citizen_spouse.hpl 2 - Y - N - Y - - - change_status_citizen_spouse_flow3_error.hpl 2 - checkpoint_job_citizen_spouse.hpl 2 - Y - N - Y - - - change_status_citizen_spouse_flow4_success.hpl 2 - checkpoint_job_citizen_spouse.hpl 2 - Y - N - Y - - - change_status_citizen_spouse_flow4_error.hpl 2 - checkpoint_job_citizen_spouse.hpl 2 - Y - N - Y - - - change_status_citizen_spouse_flow5_success.hpl 2 - checkpoint_job_citizen_spouse.hpl 2 - Y - N - Y - - - change_status_citizen_spouse_flow5_error.hpl 2 - checkpoint_job_citizen_spouse.hpl 2 - Y - N - Y - - - checkpoint_job_citizen_spouse.hpl 2 - Success new citizen 2 - Y - Y - N - recruitment_rows_five_flow_if_error.hpl citizen_spouse_flow3.hpl 2 @@ -1811,31 +1627,120 @@ Y N + + Write state_citizen_spouse_flow1 SUCCESS 2 + Success after_error_citizen_spouse_flow1 + Y + Y + N + + + Write state_citizen_spouse_flow1 ERROR 2 + error after_error_citizen_spouse_flow1 + Y + Y + N + + + Write state_citizen_spouse_flow2 SUCCESS 2 + Success after_error_citizen_spouse_flow2 + Y + Y + N + + + Write state_citizen_spouse_flow2 ERROR 2 + error after_error_citizen_spouse_flow2 + Y + Y + N + + + Write state_citizen_spouse_flow3 SUCCESS 2 + Success after_error_citizen_spouse_flow3 + Y + Y + N + + + Write state_citizen_spouse_flow3 ERROR 2 + error after_error_citizen_spouse_flow3 + Y + Y + N + + + Write state_citizen_spouse_flow4 SUCCESS 2 + Success after_error_citizen_spouse_flow4 + Y + Y + N + + + Write state_citizen_spouse_flow4 ERROR 2 + error after_error_citizen_spouse_flow4 + Y + Y + N + + + Write state_citizen_spouse_flow5 SUCCESS 2 + Success after_error_citizen_spouse_flow5 + Y + Y + N + + + Write state_citizen_spouse_flow5 ERROR 2 + error after_error_citizen_spouse_flow5 + Y + Y + N + + + Simple citizen_spouse WHERE SUCCESS + job_recruit_last_update_date.hwf + Y + Y + N + + + job_recruit_last_update_date.hwf + delta_citizen_spouse.hpl + Y + Y + N + + + state_delta_citizen_spouse_success + Success delta_citizen_spouse + Y + Y + N + + + state_delta_citizen_spouse_error + error delta_citizen_spouse + Y + Y + N + + + delta_citizen_spouse.hpl + state_delta_citizen_spouse_success + Y + Y + N + + + delta_citizen_spouse.hpl + state_delta_citizen_spouse_error + Y + N + N + - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 72 - 1088 - 176 - 0001-01-01 00:00:00 - -3001-01-01 00:00:00 - - 114 -
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/job_recruit_last_update_date.hwf b/mappings_new/info_recruits/citizen_tables/citizen_spouse/job_recruit_last_update_date.hwf new file mode 100644 index 0000000..544c1c7 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/job_recruit_last_update_date.hwf @@ -0,0 +1,124 @@ + + + job_recruit_last_update_date + Y + + + + - + 2025/06/02 14:48:05.666 + - + 2025/06/02 14:48:05.666 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 592 + 352 + + + + recruit_update_date_ervu_dashboard.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/recruit_update_date_ervu_dashboard.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 784 + 352 + + + + row_last_recruit_update_date.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/row_last_recruit_update_date.hpl + Basic + + Y + + N + local + N + N + Y + N + 1056 + 352 + + + + Success + + SUCCESS + + N + 1232 + 352 + + + + + + Start + recruit_update_date_ervu_dashboard.hpl + Y + Y + Y + + + recruit_update_date_ervu_dashboard.hpl + row_last_recruit_update_date.hpl + Y + Y + N + + + row_last_recruit_update_date.hpl + Success + Y + Y + N + + + + + + diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow1.hpl b/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow1.hpl new file mode 100644 index 0000000..7de69cd --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow1.hpl @@ -0,0 +1,395 @@ + + + + citizen_spouse_flow1 + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Select values 4 2 + N + + + Select values 4 2 + Get variables + N + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + death_az_number + + + death_date + + + divorce_az_number + + + first_name + + + full_name + + + information_excluded + + + kinship_type + + + last_name + + + marriage_az_number + + + marriage_date + + + middle_name + + + spouse_external_id + + + spouse_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_spouse ( + recruit_id, + birth_date, + death_az_number, + death_date, + divorce_az_number, + first_name, + full_name, + information_excluded, + kinship_type, + last_name, + marriage_az_number, + marriage_date, + middle_name, + spouse_external_id, + spouse_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, spouse_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + death_az_number = EXCLUDED.death_az_number, + death_date = EXCLUDED.death_date, + divorce_az_number = EXCLUDED.divorce_az_number, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + information_excluded = EXCLUDED.information_excluded, + kinship_type = EXCLUDED.kinship_type, + last_name = EXCLUDED.last_name, + marriage_az_number = EXCLUDED.marriage_az_number, + marriage_date = EXCLUDED.marriage_date, + middle_name = EXCLUDED.middle_name, + spouse_id_ern = EXCLUDED.spouse_id_ern; + + + 704 + 144 + + + + Get variables + GetVariable + + Y + + 1 + + none + + + + + -1 + recruitment_id + -1 + none + String + ID_F1 + + + + + 976 + 400 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + spouse_external_id + spouse_external_id + + ervu_dashboard + citizen_spouse
+ + recruit_id + recruit_id + N + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + divorce_az_number + divorce_az_number + Y + + + first_name + first_name + Y + + + full_name + full_name + Y + + + information_excluded + information_excluded + Y + + + kinship_type + kinship_type + Y + + + last_name + last_name + Y + + + marriage_az_number + marriage_az_number + Y + + + marriage_date + marriage_date + Y + + + middle_name + middle_name + Y + + + spouse_external_id + spouse_external_id + N + + + spouse_id_ern + spouse_id_ern + Y + +
+ N + + + 944 + 288 + +
+ + Select values 4 2 + SelectValues + + Y + + 1 + + none + + + + N + + ID_F1 + ID_F1 + String + -2 + -2 + + false + + + false + + + + + + + + + + 720 + 400 + + + + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id, + supr->>'id' AS spouse_external_id, + NULLIF(supr->>'idERN', '') AS spouse_id_ern, + NULLIF(supr->>'rodstvSvyazSuprug', '')::int AS kinship_type, + supr->'svedFLBS'->'fio'->>'familiya' AS last_name, + supr->'svedFLBS'->'fio'->>'imya' AS first_name, + supr->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + supr->'svedFLBS'->'fio'->>'familiya', + supr->'svedFLBS'->'fio'->>'imya', + supr->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, + supr->'svedSmert'->>'nomerZapis' AS death_az_number, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend')::date AS marriage_date, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend')::date AS divorce_date, + CASE + WHEN ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1' THEN true + ELSE false + END AS information_excluded +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL ( + SELECT supri + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' +) AS supr(supr) +WHERE + '${ID_F1}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date; + Y + + + 448 + 288 + + + + + Select values 4 2 + Get variables + Y + + + + + + + + + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl b/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl new file mode 100644 index 0000000..7d8150e --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl @@ -0,0 +1,308 @@ + + + + citizen_spouse_flow2 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + death_az_number + + + death_date + + + divorce_az_number + + + first_name + + + full_name + + + information_excluded + + + kinship_type + + + last_name + + + marriage_az_number + + + marriage_date + + + middle_name + + + spouse_external_id + + + spouse_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_spouse ( + recruit_id, + birth_date, + death_az_number, + death_date, + divorce_az_number, + first_name, + full_name, + information_excluded, + kinship_type, + last_name, + marriage_az_number, + marriage_date, + middle_name, + spouse_external_id, + spouse_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, spouse_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + death_az_number = EXCLUDED.death_az_number, + death_date = EXCLUDED.death_date, + divorce_az_number = EXCLUDED.divorce_az_number, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + information_excluded = EXCLUDED.information_excluded, + kinship_type = EXCLUDED.kinship_type, + last_name = EXCLUDED.last_name, + marriage_az_number = EXCLUDED.marriage_az_number, + marriage_date = EXCLUDED.marriage_date, + middle_name = EXCLUDED.middle_name, + spouse_id_ern = EXCLUDED.spouse_id_ern; + + + 720 + 176 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + spouse_external_id + spouse_external_id + + ervu_dashboard + citizen_spouse
+ + recruit_id + recruit_id + N + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + divorce_az_number + divorce_az_number + Y + + + first_name + first_name + Y + + + full_name + full_name + Y + + + information_excluded + information_excluded + Y + + + kinship_type + kinship_type + Y + + + last_name + last_name + Y + + + marriage_az_number + marriage_az_number + Y + + + marriage_date + marriage_date + Y + + + middle_name + middle_name + Y + + + spouse_external_id + spouse_external_id + N + + + spouse_id_ern + spouse_id_ern + Y + +
+ N + + + 1088 + 288 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id, + supr->>'id' AS spouse_external_id, + NULLIF(supr->>'idERN', '') AS spouse_id_ern, + NULLIF(supr->>'rodstvSvyazSuprug', '')::int AS kinship_type, + supr->'svedFLBS'->'fio'->>'familiya' AS last_name, + supr->'svedFLBS'->'fio'->>'imya' AS first_name, + supr->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + supr->'svedFLBS'->'fio'->>'familiya', + supr->'svedFLBS'->'fio'->>'imya', + supr->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, + supr->'svedSmert'->>'nomerZapis' AS death_az_number, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend')::date AS marriage_date, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend')::date AS divorce_date, + CASE + WHEN ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1' THEN true + ELSE false + END AS information_excluded +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL ( + SELECT supri + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' +) AS supr(supr) +WHERE + '${ID_F2}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date; + Y + + + 560 + 288 + + + + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl b/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl new file mode 100644 index 0000000..51a6b3d --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl @@ -0,0 +1,308 @@ + + + + citizen_spouse_flow3 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + death_az_number + + + death_date + + + divorce_az_number + + + first_name + + + full_name + + + information_excluded + + + kinship_type + + + last_name + + + marriage_az_number + + + marriage_date + + + middle_name + + + spouse_external_id + + + spouse_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_spouse ( + recruit_id, + birth_date, + death_az_number, + death_date, + divorce_az_number, + first_name, + full_name, + information_excluded, + kinship_type, + last_name, + marriage_az_number, + marriage_date, + middle_name, + spouse_external_id, + spouse_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, spouse_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + death_az_number = EXCLUDED.death_az_number, + death_date = EXCLUDED.death_date, + divorce_az_number = EXCLUDED.divorce_az_number, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + information_excluded = EXCLUDED.information_excluded, + kinship_type = EXCLUDED.kinship_type, + last_name = EXCLUDED.last_name, + marriage_az_number = EXCLUDED.marriage_az_number, + marriage_date = EXCLUDED.marriage_date, + middle_name = EXCLUDED.middle_name, + spouse_id_ern = EXCLUDED.spouse_id_ern; + + + 848 + 208 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + spouse_external_id + spouse_external_id + + ervu_dashboard + citizen_spouse
+ + recruit_id + recruit_id + N + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + divorce_az_number + divorce_az_number + Y + + + first_name + first_name + Y + + + full_name + full_name + Y + + + information_excluded + information_excluded + Y + + + kinship_type + kinship_type + Y + + + last_name + last_name + Y + + + marriage_az_number + marriage_az_number + Y + + + marriage_date + marriage_date + Y + + + middle_name + middle_name + Y + + + spouse_external_id + spouse_external_id + N + + + spouse_id_ern + spouse_id_ern + Y + +
+ N + + + 1216 + 352 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id, + supr->>'id' AS spouse_external_id, + NULLIF(supr->>'idERN', '') AS spouse_id_ern, + NULLIF(supr->>'rodstvSvyazSuprug', '')::int AS kinship_type, + supr->'svedFLBS'->'fio'->>'familiya' AS last_name, + supr->'svedFLBS'->'fio'->>'imya' AS first_name, + supr->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + supr->'svedFLBS'->'fio'->>'familiya', + supr->'svedFLBS'->'fio'->>'imya', + supr->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, + supr->'svedSmert'->>'nomerZapis' AS death_az_number, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend')::date AS marriage_date, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend')::date AS divorce_date, + CASE + WHEN ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1' THEN true + ELSE false + END AS information_excluded +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL ( + SELECT supri + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' +) AS supr(supr) +WHERE + '${ID_F3}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date; + Y + + + 672 + 352 + + + + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl b/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl new file mode 100644 index 0000000..9e40571 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl @@ -0,0 +1,308 @@ + + + + citizen_spouse_flow4 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + death_az_number + + + death_date + + + divorce_az_number + + + first_name + + + full_name + + + information_excluded + + + kinship_type + + + last_name + + + marriage_az_number + + + marriage_date + + + middle_name + + + spouse_external_id + + + spouse_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_spouse ( + recruit_id, + birth_date, + death_az_number, + death_date, + divorce_az_number, + first_name, + full_name, + information_excluded, + kinship_type, + last_name, + marriage_az_number, + marriage_date, + middle_name, + spouse_external_id, + spouse_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, spouse_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + death_az_number = EXCLUDED.death_az_number, + death_date = EXCLUDED.death_date, + divorce_az_number = EXCLUDED.divorce_az_number, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + information_excluded = EXCLUDED.information_excluded, + kinship_type = EXCLUDED.kinship_type, + last_name = EXCLUDED.last_name, + marriage_az_number = EXCLUDED.marriage_az_number, + marriage_date = EXCLUDED.marriage_date, + middle_name = EXCLUDED.middle_name, + spouse_id_ern = EXCLUDED.spouse_id_ern; + + + 688 + 176 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + spouse_external_id + spouse_external_id + + ervu_dashboard + citizen_spouse
+ + recruit_id + recruit_id + N + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + divorce_az_number + divorce_az_number + Y + + + first_name + first_name + Y + + + full_name + full_name + Y + + + information_excluded + information_excluded + Y + + + kinship_type + kinship_type + Y + + + last_name + last_name + Y + + + marriage_az_number + marriage_az_number + Y + + + marriage_date + marriage_date + Y + + + middle_name + middle_name + Y + + + spouse_external_id + spouse_external_id + N + + + spouse_id_ern + spouse_id_ern + Y + +
+ N + + + 1072 + 320 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id, + supr->>'id' AS spouse_external_id, + NULLIF(supr->>'idERN', '') AS spouse_id_ern, + NULLIF(supr->>'rodstvSvyazSuprug', '')::int AS kinship_type, + supr->'svedFLBS'->'fio'->>'familiya' AS last_name, + supr->'svedFLBS'->'fio'->>'imya' AS first_name, + supr->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + supr->'svedFLBS'->'fio'->>'familiya', + supr->'svedFLBS'->'fio'->>'imya', + supr->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, + supr->'svedSmert'->>'nomerZapis' AS death_az_number, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend')::date AS marriage_date, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend')::date AS divorce_date, + CASE + WHEN ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1' THEN true + ELSE false + END AS information_excluded +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL ( + SELECT supri + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' +) AS supr(supr) +WHERE + '${ID_F4}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date; + Y + + + 528 + 320 + + + + + +
diff --git a/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl b/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl new file mode 100644 index 0000000..0f3a748 --- /dev/null +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl @@ -0,0 +1,308 @@ + + + + citizen_spouse_flow5 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + N + + + Table input + Execute SQL script + Y + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + recruit_id + + + birth_date + + + death_az_number + + + death_date + + + divorce_az_number + + + first_name + + + full_name + + + information_excluded + + + kinship_type + + + last_name + + + marriage_az_number + + + marriage_date + + + middle_name + + + spouse_external_id + + + spouse_id_ern + + + ervu-dashboard + Y + N + N + Y + N + INSERT INTO ervu_dashboard.citizen_spouse ( + recruit_id, + birth_date, + death_az_number, + death_date, + divorce_az_number, + first_name, + full_name, + information_excluded, + kinship_type, + last_name, + marriage_az_number, + marriage_date, + middle_name, + spouse_external_id, + spouse_id_ern +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +ON CONFLICT (recruit_id, spouse_external_id) +DO UPDATE SET + birth_date = EXCLUDED.birth_date, + death_az_number = EXCLUDED.death_az_number, + death_date = EXCLUDED.death_date, + divorce_az_number = EXCLUDED.divorce_az_number, + first_name = EXCLUDED.first_name, + full_name = EXCLUDED.full_name, + information_excluded = EXCLUDED.information_excluded, + kinship_type = EXCLUDED.kinship_type, + last_name = EXCLUDED.last_name, + marriage_az_number = EXCLUDED.marriage_az_number, + marriage_date = EXCLUDED.marriage_date, + middle_name = EXCLUDED.middle_name, + spouse_id_ern = EXCLUDED.spouse_id_ern; + + + 736 + 192 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + spouse_external_id + spouse_external_id + + ervu_dashboard + citizen_spouse
+ + recruit_id + recruit_id + N + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + divorce_az_number + divorce_az_number + Y + + + first_name + first_name + Y + + + full_name + full_name + Y + + + information_excluded + information_excluded + Y + + + kinship_type + kinship_type + Y + + + last_name + last_name + Y + + + marriage_az_number + marriage_az_number + Y + + + marriage_date + marriage_date + Y + + + middle_name + middle_name + Y + + + spouse_external_id + spouse_external_id + N + + + spouse_id_ern + spouse_id_ern + Y + +
+ N + + + 1040 + 368 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + r.recruit_id, + supr->>'id' AS spouse_external_id, + NULLIF(supr->>'idERN', '') AS spouse_id_ern, + NULLIF(supr->>'rodstvSvyazSuprug', '')::int AS kinship_type, + supr->'svedFLBS'->'fio'->>'familiya' AS last_name, + supr->'svedFLBS'->'fio'->>'imya' AS first_name, + supr->'svedFLBS'->'fio'->>'otchestvo' AS middle_name, + CONCAT_WS(' ', + supr->'svedFLBS'->'fio'->>'familiya', + supr->'svedFLBS'->'fio'->>'imya', + supr->'svedFLBS'->'fio'->>'otchestvo' + ) AS full_name, + MAKE_DATE( + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int, + NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den', '')::int + ) AS birth_date, + (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date, + supr->'svedSmert'->>'nomerZapis' AS death_az_number, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend')::date AS marriage_date, + ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number, + (ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend')::date AS divorce_date, + CASE + WHEN ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1' THEN true + ELSE false + END AS information_excluded +FROM ervu_dashboard.citizen r +JOIN ervu_dashboard.recruits_info ri ON ri.recruit_id = r.recruit_id +CROSS JOIN LATERAL ( + SELECT supri + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array' +) AS supr(supr) +WHERE + '${ID_F5}' != '' + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' + AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date; + Y + + + 560 + 368 + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_rows_five_flow_if_error.hpl b/mappings_new/info_recruits/citizen_tables/citizen_spouse/recruitment_rows_five_flow_if_error.hpl similarity index 99% rename from mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_rows_five_flow_if_error.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_spouse/recruitment_rows_five_flow_if_error.hpl index 95a193c..4483bc8 100644 --- a/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_rows_five_flow_if_error.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/recruitment_rows_five_flow_if_error.hpl @@ -82,7 +82,7 @@ flow_ranges AS ( recr_inf AS ( SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id FROM ervu_dashboard.citizen cit - join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id + join ervu_dashboard.citizen_spouse sp on sp.recruit_id = cit.recruit_id ), flow_data AS ( diff --git a/mappings/info_recruits/citizen_tables/prosecution/branching_prosecution.hpl b/mappings_new/info_recruits/citizen_tables/citizen_spouse/row_last_recruit_update_date.hpl similarity index 60% rename from mappings/info_recruits/citizen_tables/prosecution/branching_prosecution.hpl rename to mappings_new/info_recruits/citizen_tables/citizen_spouse/row_last_recruit_update_date.hpl index 9d0672e..5597125 100644 --- a/mappings/info_recruits/citizen_tables/prosecution/branching_prosecution.hpl +++ b/mappings_new/info_recruits/citizen_tables/citizen_spouse/row_last_recruit_update_date.hpl @@ -1,7 +1,7 @@ - branching_prosecution + row_last_recruit_update_date Y @@ -13,26 +13,43 @@ 1000 100 - - 2025/06/09 09:54:43.724 + 2025/06/02 14:51:59.611 - - 2025/06/09 09:54:43.724 + 2025/06/02 14:51:59.611 - Set variables 2 - Write to log 2 - N + Copy rows to result + Set variables + Y Table input - Set variables 2 + Copy rows to result Y - Set variables 2 + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 992 + 320 + + + + Set variables SetVariable Y @@ -44,21 +61,17 @@ - pipeline - PIPE - PARENT_WORKFLOW - - - status - STATUS - PARENT_WORKFLOW + + MAX_RECRUIT_UPDATE_DATE + M_R_UP_DATE + GP_WORKFLOW Y - 1056 - 256 + 1232 + 320 @@ -75,47 +88,19 @@ ervu-dashboard N 0 - select - status as STATUS, - job_name AS PIPELINE -from public.etl_checkpoints -where job_name = 'job_prosecution' + SELECT + system_update_date AS MAX_RECRUIT_UPDATE_DATE--, +--record_created +FROM public.recruit_create +WHERE system_update_date = (select max(system_update_date) from public.recruit_create) +and workflow = 'job_recruits_info' +order by record_created desc +limit 1 N - 816 - 256 - - - - Write to log 2 - WriteToLog - - Y - - 1 - - none - - - Y - - - pipeline - - - status - - - N - 0 - Basic - ${PIPE} -${STATUS} - - - 1280 - 256 + 688 + 320 diff --git a/mappings_new/info_recruits/job_info_recruits_from_json.hwf b/mappings_new/info_recruits/job_info_recruits_from_json.hwf index 967cb3a..4ede347 100644 --- a/mappings_new/info_recruits/job_info_recruits_from_json.hwf +++ b/mappings_new/info_recruits/job_info_recruits_from_json.hwf @@ -40,13 +40,10 @@ N N ${PROJECT_HOME}/info_recruits/citizen_tables/child/job_child.hwf - - Nothing M_R_CR_DATE - ${M_R_CR_DATE} Y @@ -62,7 +59,7 @@ - Workflow 2 + job_passport.hwf WORKFLOW @@ -70,10 +67,20 @@ N N N + ${PROJECT_HOME}/info_recruits/citizen_tables/passport/job_passport.hwf + + + Nothing + + M_R_CR_DATE + + ${M_R_CR_DATE} + Y N + local N N Y @@ -250,8 +257,8 @@
Start - Workflow 2 - N + job_passport.hwf + Y Y Y @@ -326,7 +333,7 @@ N - Workflow 2 + job_passport.hwf Success Y Y diff --git a/mappings_new/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl b/mappings_new/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl index a32fa45..deae1ac 100644 --- a/mappings_new/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl +++ b/mappings_new/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl @@ -99,6 +99,11 @@ info Y + + addresses + addresses + Y + N @@ -125,7 +130,8 @@ r.system_create_date AS created_at, r.system_update_date AS updated_at, ri.recruit_id, - ri.info, + ri.info, + r.addresses, ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, diff --git a/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl b/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl index 71a7b98..42a28d1 100644 --- a/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl +++ b/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl @@ -131,6 +131,11 @@ full_name Y + + addresses + addresses + Y + N @@ -194,7 +199,8 @@ r.system_create_date AS created_at, r.system_update_date AS updated_at, ri.recruit_id, - ri.info, + ri.info, + r.addresses, ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, diff --git a/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl b/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl index 068d2c1..5f0ebdc 100644 --- a/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl +++ b/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl @@ -88,6 +88,11 @@ full_name Y + + addresses + addresses + Y + N @@ -112,9 +117,10 @@ 0 SELECT r.system_create_date AS created_at, - r.system_update_date AS updated_at, + r.system_update_date AS updated_at, ri.recruit_id, - ri.info, + ri.info, + r.addresses, ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, diff --git a/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl b/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl index 78ca857..0b7e07f 100644 --- a/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl +++ b/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl @@ -88,6 +88,11 @@ full_name Y + + addresses + addresses + Y + N @@ -114,7 +119,8 @@ r.system_create_date AS created_at, r.system_update_date AS updated_at, ri.recruit_id, - ri.info, + ri.info, + r.addresses, ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, diff --git a/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl b/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl index 1201625..d88b916 100644 --- a/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl +++ b/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl @@ -88,6 +88,11 @@ full_name Y + + addresses + addresses + Y + N @@ -114,7 +119,8 @@ r.system_create_date AS created_at, r.system_update_date AS updated_at, ri.recruit_id, - ri.info, + ri.info, + r.addresses, ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, diff --git a/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl b/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl index 332bc6e..0b18455 100644 --- a/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl +++ b/mappings_new/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl @@ -88,6 +88,11 @@ full_name Y + + addresses + addresses + Y + N @@ -112,9 +117,10 @@ 0 SELECT r.system_create_date AS created_at, - r.system_update_date AS updated_at, + r.system_update_date AS updated_at, ri.recruit_id, - ri.info, + ri.info, + r.addresses, ri.gir_import_data_version_id, r.current_recruitment_id, r.target_recruitment_id, diff --git a/mappings_new/info_recruits/supportive_jobs/job_create_files.hwf b/mappings_new/info_recruits/supportive_jobs/job_create_files.hwf index 3e8f21c..ec76164 100644 --- a/mappings_new/info_recruits/supportive_jobs/job_create_files.hwf +++ b/mappings_new/info_recruits/supportive_jobs/job_create_files.hwf @@ -98,6 +98,8 @@ N N ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/job_create_files_child.hwf + + Nothing Y @@ -127,6 +129,32 @@ ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json N 944 + 880 + + + + job_create_files_passport.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/job_create_files_passport.hwf + + + Nothing + + Y + + N + local + N + N + Y + N + 944 768 @@ -188,6 +216,20 @@ Y N + + Start + job_create_files_passport.hwf + Y + Y + Y + + + job_create_files_passport.hwf + Success job_create_files_recruits_info.hwf + Y + Y + N +
diff --git a/mappings_new/info_recruits/supportive_jobs/job_create_files_for_test.hwf b/mappings_new/info_recruits/supportive_jobs/job_create_files_for_test.hwf index 8367208..4a41633 100644 --- a/mappings_new/info_recruits/supportive_jobs/job_create_files_for_test.hwf +++ b/mappings_new/info_recruits/supportive_jobs/job_create_files_for_test.hwf @@ -63,7 +63,7 @@ ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_job_recruits_info.json N 752 - 448 + 512 @@ -87,13 +87,31 @@ "pipeline": "job_child" } N - UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json N 752 288 + + state_job_passport_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_passport" +} + N + + ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/state_job_passport.json + N + 752 + 432 + + @@ -138,6 +156,20 @@ Y N + + Start + state_job_passport_success + Y + Y + Y + + + state_job_passport_success + Success + Y + Y + N + diff --git a/mappings_new/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_address.hpl b/mappings_new/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_address.hpl new file mode 100644 index 0000000..d51fed4 --- /dev/null +++ b/mappings_new/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_address.hpl @@ -0,0 +1,121 @@ + + + + recruitment_rows_five_flow_child + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 832 + 304 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH ordered AS ( + SELECT + idm_id, + created_at, + ROW_NUMBER() OVER (ORDER BY created_at) AS rn, + COUNT(*) OVER () AS total_rows + from ervu_dashboard.recruitment +), +splitted AS ( + SELECT *, + CEIL(total_rows / 5.0) AS part_size, + FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, + ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position + FROM ordered +), +pivoted AS ( + SELECT + position, + + MAX(CASE WHEN flow_num = 1 THEN created_at END) AS cr_flow1, + MAX(CASE WHEN flow_num = 1 THEN idm_id::text END) AS idm_flow1, + + MAX(CASE WHEN flow_num = 2 THEN created_at END) AS cr_flow2, + MAX(CASE WHEN flow_num = 2 THEN idm_id::text END) AS idm_flow2, + + MAX(CASE WHEN flow_num = 3 THEN created_at END) AS cr_flow3, + MAX(CASE WHEN flow_num = 3 THEN idm_id::text END) AS idm_flow3, + + MAX(CASE WHEN flow_num = 4 THEN created_at END) AS cr_flow4, + MAX(CASE WHEN flow_num = 4 THEN idm_id::text END) AS idm_flow4, + + MAX(CASE WHEN flow_num = 5 THEN created_at END) AS cr_flow5, + MAX(CASE WHEN flow_num = 5 THEN idm_id::text END) AS idm_flow5 + + FROM splitted + GROUP BY position + ORDER BY position +) +SELECT + cr_flow1, + IDM_FLOW1::uuid, + cr_flow2, + IDM_FLOW2::uuid, + cr_flow3, + IDM_FLOW3::uuid, + cr_flow4, + IDM_FLOW4::uuid, + cr_flow5, + IDM_FLOW5::uuid +FROM pivoted +limit 3 + N + + + 464 + 304 + + + + + + diff --git a/mappings_new/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_guardianship.hpl b/mappings_new/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_guardianship.hpl new file mode 100644 index 0000000..d51fed4 --- /dev/null +++ b/mappings_new/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_guardianship.hpl @@ -0,0 +1,121 @@ + + + + recruitment_rows_five_flow_child + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 832 + 304 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH ordered AS ( + SELECT + idm_id, + created_at, + ROW_NUMBER() OVER (ORDER BY created_at) AS rn, + COUNT(*) OVER () AS total_rows + from ervu_dashboard.recruitment +), +splitted AS ( + SELECT *, + CEIL(total_rows / 5.0) AS part_size, + FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, + ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position + FROM ordered +), +pivoted AS ( + SELECT + position, + + MAX(CASE WHEN flow_num = 1 THEN created_at END) AS cr_flow1, + MAX(CASE WHEN flow_num = 1 THEN idm_id::text END) AS idm_flow1, + + MAX(CASE WHEN flow_num = 2 THEN created_at END) AS cr_flow2, + MAX(CASE WHEN flow_num = 2 THEN idm_id::text END) AS idm_flow2, + + MAX(CASE WHEN flow_num = 3 THEN created_at END) AS cr_flow3, + MAX(CASE WHEN flow_num = 3 THEN idm_id::text END) AS idm_flow3, + + MAX(CASE WHEN flow_num = 4 THEN created_at END) AS cr_flow4, + MAX(CASE WHEN flow_num = 4 THEN idm_id::text END) AS idm_flow4, + + MAX(CASE WHEN flow_num = 5 THEN created_at END) AS cr_flow5, + MAX(CASE WHEN flow_num = 5 THEN idm_id::text END) AS idm_flow5 + + FROM splitted + GROUP BY position + ORDER BY position +) +SELECT + cr_flow1, + IDM_FLOW1::uuid, + cr_flow2, + IDM_FLOW2::uuid, + cr_flow3, + IDM_FLOW3::uuid, + cr_flow4, + IDM_FLOW4::uuid, + cr_flow5, + IDM_FLOW5::uuid +FROM pivoted +limit 3 + N + + + 464 + 304 + + + + + + diff --git a/mappings_new/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_spouse.hpl b/mappings_new/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_spouse.hpl new file mode 100644 index 0000000..d51fed4 --- /dev/null +++ b/mappings_new/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_spouse.hpl @@ -0,0 +1,121 @@ + + + + recruitment_rows_five_flow_child + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 832 + 304 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH ordered AS ( + SELECT + idm_id, + created_at, + ROW_NUMBER() OVER (ORDER BY created_at) AS rn, + COUNT(*) OVER () AS total_rows + from ervu_dashboard.recruitment +), +splitted AS ( + SELECT *, + CEIL(total_rows / 5.0) AS part_size, + FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, + ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position + FROM ordered +), +pivoted AS ( + SELECT + position, + + MAX(CASE WHEN flow_num = 1 THEN created_at END) AS cr_flow1, + MAX(CASE WHEN flow_num = 1 THEN idm_id::text END) AS idm_flow1, + + MAX(CASE WHEN flow_num = 2 THEN created_at END) AS cr_flow2, + MAX(CASE WHEN flow_num = 2 THEN idm_id::text END) AS idm_flow2, + + MAX(CASE WHEN flow_num = 3 THEN created_at END) AS cr_flow3, + MAX(CASE WHEN flow_num = 3 THEN idm_id::text END) AS idm_flow3, + + MAX(CASE WHEN flow_num = 4 THEN created_at END) AS cr_flow4, + MAX(CASE WHEN flow_num = 4 THEN idm_id::text END) AS idm_flow4, + + MAX(CASE WHEN flow_num = 5 THEN created_at END) AS cr_flow5, + MAX(CASE WHEN flow_num = 5 THEN idm_id::text END) AS idm_flow5 + + FROM splitted + GROUP BY position + ORDER BY position +) +SELECT + cr_flow1, + IDM_FLOW1::uuid, + cr_flow2, + IDM_FLOW2::uuid, + cr_flow3, + IDM_FLOW3::uuid, + cr_flow4, + IDM_FLOW4::uuid, + cr_flow5, + IDM_FLOW5::uuid +FROM pivoted +limit 3 + N + + + 464 + 304 + + + + + +