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_registrationY
-
- 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_ernid_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -295,29 +265,8 @@
ervu_person_registryN0
- 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_registrationY
-
- 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_ernid_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -215,29 +185,8 @@
ervu_person_registryN0
- 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_registrationY
-
- 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_ernid_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -215,29 +185,8 @@
ervu_person_registryN0
- 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_registrationY
-
- 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_ernid_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -215,29 +185,8 @@
ervu_person_registryN0
- 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_registrationY
-
- 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_ernid_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -215,29 +185,8 @@
ervu_person_registryN0
- 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_idrecruit_id
+ ervu_dashboard
citizen
@@ -152,46 +153,16 @@
reason_registrationY
-
- 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_ernid_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -214,30 +185,8 @@
ervu_person_registryN0
- 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_idrecruit_id
+ ervu_dashboard
citizen
@@ -152,46 +153,16 @@
reason_registrationY
-
- 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_ernid_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -214,30 +185,8 @@
ervu_person_registryN0
- 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_idrecruit_id
+ ervu_dashboard
citizen
@@ -152,46 +153,16 @@
reason_registrationY
-
- 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_ernid_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -214,30 +185,8 @@
ervu_person_registryN0
- 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_idrecruit_id
+ ervu_dashboard
citizen
@@ -152,46 +153,16 @@
reason_registrationY
-
- 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_ernid_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -214,30 +185,8 @@
ervu_person_registryN0
- 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_idrecruit_id
+ ervu_dashboard
citizen
@@ -152,46 +153,16 @@
reason_registrationY
-
- 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_ernid_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -214,30 +185,8 @@
ervu_person_registryN0
- 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..17d98b1 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
@@ -87,8 +87,7 @@
SELECT
'delta_citizen_liability_fz53_flow2' as job_name,
'ERROR' as status,
- current_timestamp as record_created
-
+ current_timestamp as record_createdN
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_idrecruit_id
+ ervu_dashboard
recruits_info
@@ -98,6 +99,11 @@
infoY
+
+ 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_idrecruit_id
+ ervu_dashboard
recruits_info
@@ -98,6 +99,11 @@
infoY
+
+ 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_idrecruit_id
+ ervu_dashboard
recruits_info
@@ -98,6 +99,11 @@
infoY
+
+ 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_idrecruit_id
+ ervu_dashboard
recruits_info
@@ -98,6 +99,11 @@
infoY
+
+ 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_idrecruit_id
+ ervu_dashboard
recruits_info
@@ -98,6 +99,11 @@
infoY
+
+ 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_nameY
+
+ 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_nameY
+
+ 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_nameY
+
+ 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_nameY
+
+ 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_nameY
+
+ 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/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_jobY
@@ -13,22 +13,22 @@
1000100-
- 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.630Table input
- Insert / update
+ Set variablesY
- Insert / update
- InsertUpdate
+ Set variables
+ SetVariableY
@@ -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-dashboardN0
- 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_flow1_success.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_success.hpl
deleted file mode 100644
index 7a7dc06..0000000
--- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_success.hpl
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-
- change_status_delta_child_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_child_flow1' 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_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/passport/checkpoints/check_if_job_passport_exists.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_child_job_exists.hpl
similarity index 70%
rename from mappings/info_recruits/citizen_tables/passport/checkpoints/check_if_job_passport_exists.hpl
rename to mappings/info_recruits/citizen_tables/child/checkpoints/check_if_child_job_exists.hpl
index 4f21ffb..de6f58a 100644
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/check_if_job_passport_exists.hpl
+++ b/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_child_job_exists.hpl
@@ -1,7 +1,7 @@
- check_if_job_passport_exists
+ check_if_child_job_existsY
@@ -13,23 +13,23 @@
1000100-
- 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 variablesWrite to logN
+
+ Table input
+ Set variables
+ Y
+ Set variables
@@ -44,21 +44,16 @@
- job_name
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
+ job_executed_flag
+ JOB_EXECUTED_FLAGPARENT_WORKFLOWY
- 688
- 352
+ 672
+ 336
@@ -75,29 +70,17 @@
ervu-dashboardN0
- SELECT
- COALESCE(job_name, 'job_passport') 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_passport'
-
- UNION ALL
-
- SELECT NULL, NULL
- WHERE NOT EXISTS (
- SELECT 1
- FROM public.etl_checkpoints
- WHERE job_name = 'job_passport'
- )
-) t
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'child_job'
+ limit 1
+ ) AS job_executed_flag;N
- 400
- 352
+ 384
+ 336
@@ -111,17 +94,17 @@ FROM (
none
+ BasicY
-
-N0
- Basic${STATUS}
+
+
- 960
- 240
+ 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/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 @@
01N
- 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
+ 416208
- Success new citizen
-
- SUCCESS
-
- N
- 3728
- 432
-
-
-
- branching_child.hpl
+ check_if_child_job_exists.hplPIPELINE
@@ -275,7 +52,7 @@
NNN
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/branching_child.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/check_if_child_job_exists.hplBasicY
@@ -286,48 +63,29 @@
NYN
- 1584
- 1280
+ 608
+ 208
- Simple child WHERE SUCCESS
+ child_job_exists_checkSIMPLE_EVAL
- SUCCESS
- string
- true
+ boolean
+ falseequalequalNvariable
- STATUS
+ JOB_EXECUTED_FLAGN
- 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.hplPIPELINE
@@ -337,7 +95,7 @@
NNN
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/recruitment_rows_five_flow_if_error.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/recruitments_five_flow.hplBasicY
@@ -348,207 +106,12 @@
NYY
- 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.hplPIPELINE
@@ -558,7 +121,7 @@
NNN
- ${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.hplBasicY
@@ -569,30 +132,55 @@
NYN
- 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 evaluationSIMPLE_EVAL
- NEW
- string
+ booleantrueequalequalNvariable
- STATUS
+ NEED_TO_REPEAT_JOBN
- 784
- 400
+ 880
+ 512
- change_status_to_processing.hpl
+ recruitment_five_flow_delta.hplPIPELINE
@@ -602,7 +190,7 @@
NNN
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/change_status_to_processing.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/recruitment_five_flow_delta.hplBasicY
@@ -613,1866 +201,63 @@
NYN
- 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.hplYYY
- check_if_job_child_exists.hpl
- Simple job_child_exists check NEW
+ check_if_child_job_exists.hpl
+ child_job_exists_checkYYN
- child_flow1.hpl
- change_status_child_flow1_success.hpl
+ child_job_exists_check
+ recruitments_five_flow.hplYYN
- child_flow1.hpl
- change_status_child_flow1_error.hpl
+ child_job_exists_check
+ check_if_need_to_repeat_job.hplYNN
- child_flow2.hpl
- change_status_child_flow2_success.hpl
+ check_if_need_to_repeat_job.hpl
+ Simple evaluationYYN
- 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.hplYYN
- child_flow3.hpl
- change_status_child_flow3_error.hpl
+ Simple evaluation
+ recruitment_five_flow_delta.hplYNN
-
- 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
+
-
- 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/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing_delta.hpl
deleted file mode 100644
index 8be76b7..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/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_child' 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_guardianship/checkpoints/check_if_citizen_guardianship_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_guardianship/checkpoints/check_if_citizen_guardianship_job_exists.hpl
index 3a00226..8ff4ff0 100644
--- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/check_if_job_prosecution_exists.hpl
+++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_citizen_guardianship_job_exists.hpl
@@ -1,7 +1,7 @@
- check_if_job_prosecution_exists
+ check_if_citizen_guardianship_job_existsY
@@ -13,23 +13,23 @@
1000100-
- 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 variablesWrite to logN
+
+ Table input
+ Set variables
+ Y
+ Set variables
@@ -44,21 +44,16 @@
- job_name
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
+ job_executed_flag
+ JOB_EXECUTED_FLAGPARENT_WORKFLOWY
- 688
- 352
+ 672
+ 336
@@ -75,29 +70,17 @@
ervu-dashboardN0
- 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_guardianship_job'
+ limit 1
+ ) AS job_executed_flag;N
- 400
- 352
+ 384
+ 336
@@ -111,17 +94,17 @@ FROM (
none
+ BasicY
-
-N0
- Basic${STATUS}
+
+
- 960
- 240
+ 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
+
-
- 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/check_if_job_citizen_spouse_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_job_citizen_spouse_exists.hpl
deleted file mode 100644
index d1c2864..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_job_citizen_spouse_exists.hpl
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
- check_if_job_citizen_spouse_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_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
- 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_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
+
-
- 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_passport' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
-union all
-
- SELECT
- 'job_passport' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_delta_passport_success.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_delta_passport_success.hpl
deleted file mode 100644
index bed6c3f..0000000
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_delta_passport_success.hpl
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
- change_status_delta_passport_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_passport' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
-
-union all
-
- SELECT
- 'job_passport' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
-
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow1_error.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow1_error.hpl
deleted file mode 100644
index 11a8f7c..0000000
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow1_error.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_passport_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.passport 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
- 'passport_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/passport/checkpoints/change_status_passport_flow1_success.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow1_success.hpl
deleted file mode 100644
index 3615a2d..0000000
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow1_success.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_passport_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.passport 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
- 'passport_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/passport/checkpoints/change_status_passport_flow2_error.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow2_error.hpl
deleted file mode 100644
index 37d5e94..0000000
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow2_error.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_passport_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.passport 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
- 'passport_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/passport/checkpoints/change_status_passport_flow2_success.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow2_success.hpl
deleted file mode 100644
index 1248307..0000000
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow2_success.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_passport_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.passport 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
- 'passport_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/passport/checkpoints/change_status_passport_flow3_error.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow3_error.hpl
deleted file mode 100644
index 8d7d458..0000000
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow3_error.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_passport_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.passport 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
- 'passport_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/passport/checkpoints/change_status_passport_flow3_success.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow3_success.hpl
deleted file mode 100644
index be0921a..0000000
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow3_success.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_passport_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.passport 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
- 'passport_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/passport/checkpoints/change_status_passport_flow4_error.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow4_error.hpl
deleted file mode 100644
index 3065833..0000000
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow4_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_passport_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.passport 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
- 'passport_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/passport/checkpoints/change_status_passport_flow4_success.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow4_success.hpl
deleted file mode 100644
index 3df9671..0000000
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow4_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_passport_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.passport 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
- 'passport_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/passport/checkpoints/change_status_passport_flow5_error.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow5_error.hpl
deleted file mode 100644
index 5728a91..0000000
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow5_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_passport_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.passport 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
- 'passport_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/passport/checkpoints/change_status_passport_flow5_success.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow5_success.hpl
deleted file mode 100644
index e6e205c..0000000
--- a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow5_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_passport_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.passport 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
- 'passport_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/passport/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_to_processing.hpl
deleted file mode 100644
index fa312e9..0000000
--- a/mappings/info_recruits/citizen_tables/passport/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_passport' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'passport_flow1' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'passport_flow2' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'passport_flow3' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'passport_flow4' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'passport_flow5' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 368
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/change_status_to_processing_delta.hpl
deleted file mode 100644
index 451d2a8..0000000
--- a/mappings/info_recruits/citizen_tables/passport/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_passport' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 832
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/passport/checkpoints/check_if_passport_job_exists.hpl b/mappings/info_recruits/citizen_tables/passport/checkpoints/check_if_passport_job_exists.hpl
new file mode 100644
index 0000000..9081aed
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/passport/checkpoints/check_if_passport_job_exists.hpl
@@ -0,0 +1,113 @@
+
+
+
+ check_if_passport_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 = 'passport_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/passport/job_passport.hwf b/mappings/info_recruits/citizen_tables/passport/job_passport.hwf
index cd6680c..fbe26dd 100644
--- a/mappings/info_recruits/citizen_tables/passport/job_passport.hwf
+++ b/mappings/info_recruits/citizen_tables/passport/job_passport.hwf
@@ -37,235 +37,12 @@
01N
- 368
- 400
-
-
-
- checkpoint_job_passport.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/checkpoint_job_passport.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1136
- 1280
-
-
-
- recruitment_rows_five_flow_passport.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_passport.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2352
- 400
-
-
-
- passport_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/parallel/passport_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 80
-
-
-
- passport_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/parallel/passport_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 240
-
-
-
- passport_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/parallel/passport_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 400
-
-
-
- passport_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/parallel/passport_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 560
-
-
-
- passport_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/parallel/passport_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 720
-
-
-
- Abort workflow
-
- ABORT
-
- N
- N
- 2336
+ 416208
- Success new citizen
-
- SUCCESS
-
- N
- 3728
- 432
-
-
-
- branching_passport.hpl
+ check_if_passport_job_exists.hplPIPELINE
@@ -275,7 +52,7 @@
NNN
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/branching_passport.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/check_if_passport_job_exists.hplBasicY
@@ -286,48 +63,29 @@
NYN
- 1584
- 1280
+ 608
+ 208
- Simple passport WHERE SUCCESS
+ passport_job_exists_checkSIMPLE_EVAL
- SUCCESS
- string
- true
+ boolean
+ falseequalequalNvariable
- STATUS
+ JOB_EXECUTED_FLAGN
- 1840
- 1792
+ 880
+ 208
- Simple passport 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.hplPIPELINE
@@ -337,7 +95,7 @@
NNN
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/recruitment_rows_five_flow_if_error.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/passport/recruitments_five_flow.hplBasicY
@@ -348,23 +106,12 @@
NYY
- 2384
- 1280
+ 1120
+ 208
- Abort workflow 2
-
- ABORT
-
- N
- N
- 2288
- 1040
-
-
-
- delta_passport.hpl
+ recruitment_five_flow_on_error.hplPIPELINE
@@ -374,57 +121,7 @@
NNN
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/delta_passport.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2640
- 1792
-
-
-
- Success delta_citizen
-
- SUCCESS
-
- N
- 3216
- 1792
-
-
-
- error delta_citizen
-
- SUCCESS
-
- N
- 3216
- 1872
-
-
-
- check_if_job_passport_exists.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/check_if_job_passport_exists.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/passport/recruitment_five_flow_on_error.hplBasicY
@@ -435,30 +132,60 @@
NYN
- 544
- 400
+ 1120
+ 512
- Simple job_passport_exists check NEW
+ check_if_need_to_repeat_job.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/passport/check_if_need_to_repeat_job.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 880
+ 368
+
+
+
+ Simple evaluationSIMPLE_EVAL
- NEW
- string
+
+
+ boolean
+
+
+ trueequalequalNvariable
- STATUS
+ NEED_TO_REPEAT_JOBN
- 784
- 400
+ 880
+ 512
- change_status_to_processing.hpl
+ recruitment_five_flow_delta.hplPIPELINE
@@ -468,7 +195,7 @@
NNN
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_to_processing.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/passport/recruitment_five_flow_delta.hplBasicY
@@ -479,1367 +206,63 @@
NYN
- 1136
- 400
-
-
-
- change_status_passport_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 80
-
-
-
- change_status_passport_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 160
-
-
-
- change_status_passport_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 240
-
-
-
- change_status_passport_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 320
-
-
-
- change_status_passport_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 400
-
-
-
- change_status_passport_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 480
-
-
-
- change_status_passport_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 560
-
-
-
- change_status_passport_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 640
-
-
-
- change_status_passport_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 720
-
-
-
- change_status_passport_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 800
-
-
-
- checkpoint_job_passport.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/checkpoint_job_passport.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/passport/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/passport/checkpoints/change_status_to_processing_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2144
- 1792
-
-
-
- change_status_delta_passport_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_delta_passport_success.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1792
-
-
-
- change_status_delta_passport_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_delta_passport_error.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1872
-
-
-
- passport_flow1.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/parallel/passport_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 960
-
-
-
- passport_flow2.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/parallel/passport_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1120
-
-
-
- passport_flow3.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/parallel/passport_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1280
-
-
-
- passport_flow4.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/parallel/passport_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1440
-
-
-
- passport_flow5.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/parallel/passport_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1600
-
-
-
- Success new citizen 2
-
- SUCCESS
-
- N
- 3728
- 1312
-
-
-
- change_status_passport_flow1_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 960
-
-
-
- change_status_passport_flow1_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1040
-
-
-
- change_status_passport_flow2_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1120
-
-
-
- change_status_passport_flow2_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1200
-
-
-
- change_status_passport_flow3_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1280
-
-
-
- change_status_passport_flow3_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1360
-
-
-
- change_status_passport_flow4_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1440
-
-
-
- change_status_passport_flow4_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1520
-
-
-
- change_status_passport_flow5_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1600
-
-
-
- change_status_passport_flow5_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/change_status_passport_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1680
-
-
-
- checkpoint_job_passport.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/passport/checkpoints/checkpoint_job_passport.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3456
- 1312
+ 880
+ 704
-
- recruitment_rows_five_flow_passport.hpl
- passport_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_passport.hpl
- passport_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_passport.hpl
- passport_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_passport.hpl
- passport_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_passport.hpl
- passport_flow5.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_passport.hpl
- Abort workflow
- Y
- N
- N
-
-
- branching_passport.hpl
- Simple passport WHERE ERROR
- Y
- N
- Y
-
-
- branching_passport.hpl
- Simple passport WHERE SUCCESS
- Y
- N
- Y
-
-
- recruitment_rows_five_flow_if_error.hpl
- Abort workflow 2
- Y
- N
- N
- Start
- check_if_job_passport_exists.hpl
+ check_if_passport_job_exists.hplYYY
- check_if_job_passport_exists.hpl
- Simple job_passport_exists check NEW
+ check_if_passport_job_exists.hpl
+ passport_job_exists_checkYYN
- Simple job_passport_exists check NEW
- change_status_to_processing.hpl
+ passport_job_exists_check
+ recruitments_five_flow.hplYYN
- change_status_to_processing.hpl
- recruitment_rows_five_flow_passport.hpl
+ passport_job_exists_check
+ check_if_need_to_repeat_job.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat_job.hpl
+ Simple evaluationYYN
- passport_flow1.hpl
- change_status_passport_flow1_success.hpl
+ Simple evaluation
+ recruitment_five_flow_on_error.hplYYN
- passport_flow1.hpl
- change_status_passport_flow1_error.hpl
+ Simple evaluation
+ recruitment_five_flow_delta.hplYNN
-
- passport_flow2.hpl
- change_status_passport_flow2_success.hpl
- Y
- Y
- N
-
-
- passport_flow2.hpl
- change_status_passport_flow2_error.hpl
- Y
- N
- N
-
-
- passport_flow3.hpl
- change_status_passport_flow3_success.hpl
- Y
- Y
- N
-
-
- passport_flow3.hpl
- change_status_passport_flow3_error.hpl
- Y
- N
- N
-
-
- passport_flow4.hpl
- change_status_passport_flow4_success.hpl
- Y
- Y
- N
-
-
- passport_flow4.hpl
- change_status_passport_flow4_error.hpl
- Y
- N
- N
-
-
- passport_flow5.hpl
- change_status_passport_flow5_success.hpl
- Y
- Y
- N
-
-
- passport_flow5.hpl
- change_status_passport_flow5_error.hpl
- Y
- N
- N
-
-
- change_status_passport_flow5_error.hpl
- checkpoint_job_passport.hpl
- Y
- N
- Y
-
-
- change_status_passport_flow5_success.hpl
- checkpoint_job_passport.hpl
- Y
- N
- Y
-
-
- change_status_passport_flow4_error.hpl
- checkpoint_job_passport.hpl
- Y
- N
- Y
-
-
- change_status_passport_flow4_success.hpl
- checkpoint_job_passport.hpl
- Y
- N
- Y
-
-
- change_status_passport_flow3_error.hpl
- checkpoint_job_passport.hpl
- Y
- N
- Y
-
-
- change_status_passport_flow3_success.hpl
- checkpoint_job_passport.hpl
- Y
- N
- Y
-
-
- change_status_passport_flow2_error.hpl
- checkpoint_job_passport.hpl
- Y
- N
- Y
-
-
- change_status_passport_flow2_success.hpl
- checkpoint_job_passport.hpl
- Y
- N
- Y
-
-
- change_status_passport_flow1_error.hpl
- checkpoint_job_passport.hpl
- Y
- N
- Y
-
-
- change_status_passport_flow1_success.hpl
- checkpoint_job_passport.hpl
- Y
- N
- Y
-
-
- checkpoint_job_passport.hpl
- Success new citizen
- Y
- Y
- N
-
-
- checkpoint_job_passport.hpl (2)
- branching_passport.hpl
- Y
- N
- Y
-
-
- Simple job_passport_exists check NEW
- checkpoint_job_passport.hpl (2)
- Y
- N
- N
-
-
- Simple passport 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 passport WHERE SUCCESS
- change_status_to_processing_delta.hpl
- Y
- Y
- N
-
-
- delta_passport.hpl
- change_status_delta_passport_success.hpl
- Y
- Y
- N
-
-
- change_status_delta_passport_success.hpl
- Success delta_citizen
- Y
- Y
- N
-
-
- delta_passport.hpl
- change_status_delta_passport_error.hpl
- Y
- N
- N
-
-
- change_status_delta_passport_error.hpl
- error delta_citizen
- Y
- Y
- N
-
-
- passport_flow1.hpl 2
- change_status_passport_flow1_success.hpl 2
- Y
- Y
- N
-
-
- passport_flow1.hpl 2
- change_status_passport_flow1_error.hpl 2
- Y
- N
- N
-
-
- passport_flow2.hpl 2
- change_status_passport_flow2_success.hpl 2
- Y
- Y
- N
-
-
- passport_flow2.hpl 2
- change_status_passport_flow2_error.hpl 2
- Y
- N
- N
-
-
- passport_flow3.hpl 2
- change_status_passport_flow3_success.hpl 2
- Y
- Y
- N
-
-
- passport_flow3.hpl 2
- change_status_passport_flow3_error.hpl 2
- Y
- N
- N
-
-
- passport_flow4.hpl 2
- change_status_passport_flow4_success.hpl 2
- Y
- Y
- N
-
-
- passport_flow4.hpl 2
- change_status_passport_flow4_error.hpl 2
- Y
- N
- N
-
-
- passport_flow5.hpl 2
- change_status_passport_flow5_success.hpl 2
- Y
- Y
- N
-
-
- passport_flow5.hpl 2
- change_status_passport_flow5_error.hpl 2
- Y
- N
- N
-
-
- change_status_passport_flow1_success.hpl 2
- checkpoint_job_passport.hpl 2
- Y
- N
- Y
-
-
- change_status_passport_flow1_error.hpl 2
- checkpoint_job_passport.hpl 2
- Y
- N
- Y
-
-
- change_status_passport_flow2_success.hpl 2
- checkpoint_job_passport.hpl 2
- Y
- N
- Y
-
-
- change_status_passport_flow2_error.hpl 2
- checkpoint_job_passport.hpl 2
- Y
- N
- Y
-
-
- change_status_passport_flow3_success.hpl 2
- checkpoint_job_passport.hpl 2
- Y
- N
- Y
-
-
- change_status_passport_flow3_error.hpl 2
- checkpoint_job_passport.hpl 2
- Y
- N
- Y
-
-
- change_status_passport_flow4_success.hpl 2
- checkpoint_job_passport.hpl 2
- Y
- N
- Y
-
-
- change_status_passport_flow4_error.hpl 2
- checkpoint_job_passport.hpl 2
- Y
- N
- Y
-
-
- change_status_passport_flow5_success.hpl 2
- checkpoint_job_passport.hpl 2
- Y
- N
- Y
-
-
- change_status_passport_flow5_error.hpl 2
- checkpoint_job_passport.hpl 2
- Y
- N
- Y
-
-
- checkpoint_job_passport.hpl 2
- Success new citizen 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- passport_flow3.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- passport_flow2.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- passport_flow1.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- passport_flow4.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- passport_flow5.hpl 2
- Y
- Y
- N
-
-
- change_status_to_processing_delta.hpl
- delta_passport.hpl
- 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/passport/parallel/passport_flow.hpl b/mappings/info_recruits/citizen_tables/passport/parallel/passport_flow.hpl
new file mode 100644
index 0000000..cb2fe0c
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/passport/parallel/passport_flow.hpl
@@ -0,0 +1,380 @@
+
+
+
+ passport_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
+
+
+ Table output
+ 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
+ Table output
+ Y
+
+
+ Table output
+ Filter rows
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1264
+ 608
+
+
+
+ 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
+ 608
+
+
+
+ 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';
+
+
+
+
+ 1264
+ 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
+
+
+
+
+ 896
+ 176
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1264
+ 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,
+ NULLIF(p.passport_data->>'nomDok', '') AS passport_number,
+ NULLIF(p.passport_data->>'serDok', '') AS passport_series,
+ NULLIF(p.passport_data->>'vydDok', '') AS organization_name,
+ NULLIF(p.passport_data->>'kodVydDok', '') AS unit_code,
+ TO_DATE(NULLIF(p.passport_data->>'dataDok', ''), 'YYYY-MM-DD') AS issue_date,
+ CASE
+ WHEN NULLIF(p.passport_data->>'kodStatus', '') = '1' THEN TRUE
+ ELSE FALSE
+ END AS actual
+FROM 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 >= r.recruit_create_date
+JOIN LATERAL (
+ SELECT passport_data
+ FROM UNNEST(ARRAY[
+ ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF',
+ ri.info->'svedFL'->'svedBS'->'pasportRF'->'predPasportRF'
+ ]) AS passport_data
+ WHERE passport_data IS NOT NULL AND passport_data::text <> 'null'
+) AS p ON TRUE
+
+ Y
+
+
+ 496
+ 320
+
+
+
+ Table output
+ TableOutput
+
+ N
+
+ 1
+
+ none
+
+
+ 1000
+ ervu-dashboard
+
+
+ recruit_id
+ recruit_id
+
+
+ passport_number
+ passport_number
+
+
+ passport_series
+ passport_series
+
+
+ organization_name
+ organization_name
+
+
+ unit_code
+ unit_code
+
+
+ issue_date
+ issue_date
+
+
+ actual
+ actual
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
-
- 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/child/checkpoints/check_if_job_child_exists.hpl b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/check_if_prosecution_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/prosecution/checkpoints/check_if_prosecution_job_exists.hpl
index a2bc69c..d898c29 100644
--- a/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_job_child_exists.hpl
+++ b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/check_if_prosecution_job_exists.hpl
@@ -1,7 +1,7 @@
- check_if_job_child_exists
+ check_if_prosecution_job_existsY
@@ -13,23 +13,23 @@
1000100-
- 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 variablesWrite to logN
+
+ Table input
+ Set variables
+ Y
+ Set variables
@@ -44,21 +44,16 @@
- job_name
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
+ job_executed_flag
+ JOB_EXECUTED_FLAGPARENT_WORKFLOWY
- 688
- 352
+ 672
+ 336
@@ -75,29 +70,17 @@
ervu-dashboardN0
- 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 = 'prosecution_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/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/checkpoints/xxjob_create_files_child.hwf b/mappings/info_recruits/citizen_tables/prosecution/checkpoints/xxjob_create_files_child.hwf
deleted file mode 100644
index b31ca9f..0000000
--- a/mappings/info_recruits/citizen_tables/prosecution/checkpoints/xxjob_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/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
+
-
- 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
+
-
- 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_punishment' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
-union all
-
- SELECT
- 'job_punishment' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_delta_punishment_success.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_delta_punishment_success.hpl
deleted file mode 100644
index 54bcb5c..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_delta_punishment_success.hpl
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
- change_status_delta_punishment_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_punishment' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
-
-union all
-
- SELECT
- 'job_punishment' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
-
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow1_error.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow1_error.hpl
deleted file mode 100644
index 91e4623..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow1_error.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_punishment_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.punishment 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
- 'punishment_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/punishment/checkpoints/change_status_punishment_flow1_success.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow1_success.hpl
deleted file mode 100644
index 0ff574d..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow1_success.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_punishment_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.punishment 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
- 'punishment_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/punishment/checkpoints/change_status_punishment_flow2_error.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow2_error.hpl
deleted file mode 100644
index 5e28ac4..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow2_error.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_punishment_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.punishment 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
- 'punishment_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/punishment/checkpoints/change_status_punishment_flow2_success.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow2_success.hpl
deleted file mode 100644
index 25899f0..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow2_success.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_punishment_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.punishment 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
- 'punishment_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/punishment/checkpoints/change_status_punishment_flow3_error.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow3_error.hpl
deleted file mode 100644
index 3691584..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow3_error.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_punishment_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.punishment 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
- 'punishment_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/punishment/checkpoints/change_status_punishment_flow3_success.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow3_success.hpl
deleted file mode 100644
index 74aef8f..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow3_success.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_punishment_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.punishment 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
- 'punishment_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/punishment/checkpoints/change_status_punishment_flow4_error.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow4_error.hpl
deleted file mode 100644
index c7f7cf6..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow4_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_punishment_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.punishment 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
- 'punishment_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/punishment/checkpoints/change_status_punishment_flow4_success.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow4_success.hpl
deleted file mode 100644
index 752e93e..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow4_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_punishment_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.punishment 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
- 'punishment_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/punishment/checkpoints/change_status_punishment_flow5_error.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow5_error.hpl
deleted file mode 100644
index 86d3ef7..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow5_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_punishment_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.punishment 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
- 'punishment_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/punishment/checkpoints/change_status_punishment_flow5_success.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow5_success.hpl
deleted file mode 100644
index 7d1092e..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow5_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_punishment_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.punishment 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
- 'punishment_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/punishment/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_to_processing.hpl
deleted file mode 100644
index 82712b4..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/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_punishment' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'punishment_flow1' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'punishment_flow2' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'punishment_flow3' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'punishment_flow4' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'punishment_flow5' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 368
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/change_status_to_processing_delta.hpl
deleted file mode 100644
index 4408027..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/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_punishment' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 832
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/punishment/checkpoints/check_if_punishment_job_exists.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/check_if_punishment_job_exists.hpl
new file mode 100644
index 0000000..68cacfd
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/punishment/checkpoints/check_if_punishment_job_exists.hpl
@@ -0,0 +1,113 @@
+
+
+
+ check_if_punishment_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 = 'punishment_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/punishment/checkpoints/checkpoint_job_punishment.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/checkpoint_job_punishment.hpl
deleted file mode 100644
index 7a9995f..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/checkpoint_job_punishment.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_punishment
- 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 (
- 'punishment_flow1',
- 'punishment_flow2',
- 'punishment_flow3',
- 'punishment_flow4',
- 'punishment_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'punishment_flow1',
- 'punishment_flow2',
- 'punishment_flow3',
- 'punishment_flow4',
- 'punishment_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_punishment' 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/punishment/checkpoints/checkpoint_punishment_error.hpl b/mappings/info_recruits/citizen_tables/punishment/checkpoints/checkpoint_punishment_error.hpl
deleted file mode 100644
index d8db141..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/checkpoint_punishment_error.hpl
+++ /dev/null
@@ -1,273 +0,0 @@
-
-
-
- checkpoint_punishment_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/punishment/checkpoints/xxjob_create_files_child.hwf b/mappings/info_recruits/citizen_tables/punishment/checkpoints/xxjob_create_files_child.hwf
deleted file mode 100644
index b31ca9f..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/checkpoints/xxjob_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/punishment/delta_punishment.hpl b/mappings/info_recruits/citizen_tables/punishment/delta_punishment.hpl
deleted file mode 100644
index 0741988..0000000
--- a/mappings/info_recruits/citizen_tables/punishment/delta_punishment.hpl
+++ /dev/null
@@ -1,162 +0,0 @@
-
-
-
- delta_punishment
- 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
-
punishment
-
- recruit_id
- recruit_id
- N
-
-
- authority_name
- authority_name
- Y
-
-
- sentence
- sentence
- Y
-
-
- sentence_place
- sentence_place
- Y
-
-
- sentence_changed
- sentence_changed
- Y
-
-
- punishment_type
- punishment_type
- Y
-
-
- start_date
- start_date
- Y
-
-
- release_date
- release_date
- Y
-
-
- sentense_date
- sentense_date
- Y
-
-
- law_point
- law_point
- Y
-
-
- release_reason
- release_reason
- Y
-
-
- N
-
-
- 1264
- 416
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ugol AS (
- SELECT ri.recruit_id,
- jsonb_array_elements(ri.info -> 'svedFL' -> 'svedNakaz' -> 'nakaz') AS nakaz
- 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 ri.info -> 'svedFL' -> 'svedNakaz' ->> 'nakaz' != 'null'
-)
-SELECT recruit_id,
- nakaz ->> 'naimSud' AS authority_name,
- nakaz ->> 'srokNakaz' AS sentence,
- nakaz ->> 'adresOrg' AS sentence_place,
--- nakaz->>'vidNakaz' AS punishment_code,
- nakaz ->> 'naimIzmSrokNakaz' AS sentence_changed,
- nakaz ->> 'vidNakaz' AS punishment_type,
- TO_DATE(nakaz ->> 'dataNachSrok', 'YYYY-MM-DD') AS start_date,
- TO_DATE(nakaz ->> 'dataOsvob', 'YYYY-MM-DD') AS release_date,
- TO_DATE(nakaz ->> 'dataOsuzhd', 'YYYY-MM-DD') AS sentense_date,
- string_agg(statiuk_elem, ', ') AS law_point,
- nakaz ->> 'osnOsvob' AS release_reason
-FROM ugol
- LEFT JOIN LATERAL jsonb_array_elements_text(nakaz -> 'statiUK') AS statiuk_elem ON true
-GROUP BY recruit_id, nakaz;
- Y
-
-
- 768
- 416
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/punishment/job_punishment.hwf b/mappings/info_recruits/citizen_tables/punishment/job_punishment.hwf
index 04c4ac1..990e210 100644
--- a/mappings/info_recruits/citizen_tables/punishment/job_punishment.hwf
+++ b/mappings/info_recruits/citizen_tables/punishment/job_punishment.hwf
@@ -37,235 +37,12 @@
01N
- 368
- 400
-
-
-
- checkpoint_job_punishment.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/checkpoint_job_punishment.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1136
- 1280
-
-
-
- recruitment_rows_five_flow_punishment.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_punishment.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2352
- 400
-
-
-
- punishment_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/parallel/punishment_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 80
-
-
-
- punishment_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/parallel/punishment_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 240
-
-
-
- punishment_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/parallel/punishment_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 400
-
-
-
- punishment_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/parallel/punishment_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 560
-
-
-
- punishment_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/parallel/punishment_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 720
-
-
-
- Abort workflow
-
- ABORT
-
- N
- N
- 2336
+ 416208
- Success punishment
-
- SUCCESS
-
- N
- 3728
- 432
-
-
-
- branching_citizen_spouse.hpl
+ check_if_punishment_job_exists.hplPIPELINE
@@ -275,7 +52,7 @@
NNN
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/branching_citizen_spouse.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/check_if_punishment_job_exists.hplBasicY
@@ -286,48 +63,29 @@
NYN
- 1584
- 1280
+ 608
+ 208
- Simple punishment WHERE SUCCESS
+ punishment_job_exists_checkSIMPLE_EVAL
- SUCCESS
- string
- true
+ boolean
+ falseequalequalNvariable
- STATUS
+ JOB_EXECUTED_FLAGN
- 1840
- 1792
+ 880
+ 208
- Simple punishment 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.hplPIPELINE
@@ -337,7 +95,7 @@
NNN
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/recruitment_rows_five_flow_if_error.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/recruitments_five_flow.hplBasicY
@@ -348,23 +106,12 @@
NYY
- 2384
- 1280
+ 1120
+ 208
- Abort workflow 2
-
- ABORT
-
- N
- N
- 2288
- 1040
-
-
-
- delta_punishment.hpl
+ recruitment_five_flow_on_error.hplPIPELINE
@@ -374,57 +121,7 @@
NNN
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/delta_punishment.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2640
- 1792
-
-
-
- Success delta_punishment
-
- SUCCESS
-
- N
- 3280
- 1792
-
-
-
- error delta_punishment
-
- SUCCESS
-
- N
- 3280
- 1872
-
-
-
- check_if_job_punishment_exists.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/check_if_job_punishment_exists.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/recruitment_five_flow_on_error.hplBasicY
@@ -435,30 +132,55 @@
NYN
- 576
- 400
+ 1120
+ 512
- Simple job_punishment_exists check NEW
+ check_if_need_to_repeat_job.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/check_if_need_to_repeat_job.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 880
+ 368
+
+
+
+ Simple evaluationSIMPLE_EVAL
- NEW
- string
+ booleantrueequalequalNvariable
- STATUS
+ NEED_TO_REPEAT_JOBN
- 896
- 400
+ 880
+ 512
- change_status_to_processing.hpl
+ recruitment_five_flow_delta.hplPIPELINE
@@ -468,7 +190,7 @@
NNN
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_to_processing.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/recruitment_five_flow_delta.hplBasicY
@@ -479,1338 +201,61 @@
NYN
- 1264
- 400
-
-
-
- change_status_punishment_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 80
-
-
-
- change_status_punishment_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 160
-
-
-
- change_status_punishment_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 240
-
-
-
- change_status_punishment_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 320
-
-
-
- change_status_punishment_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 400
-
-
-
- change_status_punishment_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 480
-
-
-
- change_status_punishment_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 560
-
-
-
- change_status_punishment_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 640
-
-
-
- change_status_punishment_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 720
-
-
-
- change_status_punishment_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 800
-
-
-
- checkpoint_job_punishment.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/checkpoint_job_punishment.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/punishment/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/punishment/checkpoints/change_status_to_processing_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2144
- 1792
-
-
-
- change_status_delta_punishment_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_delta_punishment_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1792
-
-
-
- change_status_delta_punishment_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_delta_punishment_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1872
-
-
-
- punishment_flow1.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/parallel/punishment_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 960
-
-
-
- punishment_flow2.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/parallel/punishment_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1120
-
-
-
- punishment_flow3.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/parallel/punishment_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1280
-
-
-
- punishment_flow4.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/parallel/punishment_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1440
-
-
-
- punishment_flow5.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/parallel/punishment_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1600
-
-
-
- Success new punishment 2
-
- SUCCESS
-
- N
- 3728
- 1312
-
-
-
- change_status_punishment_flow1_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 960
-
-
-
- change_status_punishment_flow1_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1040
-
-
-
- change_status_punishment_flow2_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1120
-
-
-
- change_status_punishment_flow2_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1200
-
-
-
- change_status_punishment_flow3_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1280
-
-
-
- change_status_punishment_flow3_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1360
-
-
-
- change_status_punishment_flow4_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1440
-
-
-
- change_status_punishment_flow4_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1520
-
-
-
- change_status_punishment_flow5_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1600
-
-
-
- change_status_punishment_flow5_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/change_status_punishment_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1680
-
-
-
- checkpoint_job_punishment.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/punishment/checkpoints/checkpoint_job_punishment.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3456
- 1312
+ 880
+ 704
-
- recruitment_rows_five_flow_punishment.hpl
- punishment_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_punishment.hpl
- punishment_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_punishment.hpl
- punishment_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_punishment.hpl
- punishment_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_punishment.hpl
- punishment_flow5.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_punishment.hpl
- Abort workflow
- Y
- N
- N
-
-
- branching_citizen_spouse.hpl
- Simple punishment WHERE ERROR
- Y
- N
- Y
-
-
- branching_citizen_spouse.hpl
- Simple punishment WHERE SUCCESS
- Y
- N
- Y
-
-
- recruitment_rows_five_flow_if_error.hpl
- Abort workflow 2
- Y
- N
- N
- Start
- check_if_job_punishment_exists.hpl
+ check_if_punishment_job_exists.hplYYY
- check_if_job_punishment_exists.hpl
- Simple job_punishment_exists check NEW
+ check_if_punishment_job_exists.hpl
+ punishment_job_exists_checkYYN
- Simple job_punishment_exists check NEW
- change_status_to_processing.hpl
+ punishment_job_exists_check
+ recruitments_five_flow.hplYYN
- change_status_to_processing.hpl
- recruitment_rows_five_flow_punishment.hpl
+ punishment_job_exists_check
+ check_if_need_to_repeat_job.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat_job.hpl
+ Simple evaluationYYN
- punishment_flow1.hpl
- change_status_punishment_flow1_success.hpl
+ Simple evaluation
+ recruitment_five_flow_on_error.hplYYN
- punishment_flow1.hpl
- change_status_punishment_flow1_error.hpl
+ Simple evaluation
+ recruitment_five_flow_delta.hplYNN
-
- punishment_flow2.hpl
- change_status_punishment_flow2_success.hpl
- Y
- Y
- N
-
-
- punishment_flow2.hpl
- change_status_punishment_flow2_error.hpl
- Y
- N
- N
-
-
- punishment_flow3.hpl
- change_status_punishment_flow3_success.hpl
- Y
- Y
- N
-
-
- punishment_flow3.hpl
- change_status_punishment_flow3_error.hpl
- Y
- N
- N
-
-
- punishment_flow4.hpl
- change_status_punishment_flow4_success.hpl
- Y
- Y
- N
-
-
- punishment_flow4.hpl
- change_status_punishment_flow4_error.hpl
- Y
- N
- N
-
-
- punishment_flow5.hpl
- change_status_punishment_flow5_success.hpl
- Y
- Y
- N
-
-
- punishment_flow5.hpl
- change_status_punishment_flow5_error.hpl
- Y
- N
- N
-
-
- change_status_punishment_flow5_error.hpl
- checkpoint_job_punishment.hpl
- Y
- N
- Y
-
-
- change_status_punishment_flow5_success.hpl
- checkpoint_job_punishment.hpl
- Y
- N
- Y
-
-
- change_status_punishment_flow4_error.hpl
- checkpoint_job_punishment.hpl
- Y
- N
- Y
-
-
- change_status_punishment_flow4_success.hpl
- checkpoint_job_punishment.hpl
- Y
- N
- Y
-
-
- change_status_punishment_flow3_error.hpl
- checkpoint_job_punishment.hpl
- Y
- N
- Y
-
-
- change_status_punishment_flow3_success.hpl
- checkpoint_job_punishment.hpl
- Y
- N
- Y
-
-
- change_status_punishment_flow2_error.hpl
- checkpoint_job_punishment.hpl
- Y
- N
- Y
-
-
- change_status_punishment_flow2_success.hpl
- checkpoint_job_punishment.hpl
- Y
- N
- Y
-
-
- change_status_punishment_flow1_error.hpl
- checkpoint_job_punishment.hpl
- Y
- N
- Y
-
-
- change_status_punishment_flow1_success.hpl
- checkpoint_job_punishment.hpl
- Y
- N
- Y
-
-
- checkpoint_job_punishment.hpl
- Success punishment
- Y
- Y
- N
-
-
- checkpoint_job_punishment.hpl (2)
- branching_citizen_spouse.hpl
- Y
- N
- Y
-
-
- Simple job_punishment_exists check NEW
- checkpoint_job_punishment.hpl (2)
- Y
- N
- N
-
-
- Simple punishment 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 punishment WHERE SUCCESS
- change_status_to_processing_delta.hpl
- Y
- Y
- N
-
-
- delta_punishment.hpl
- change_status_delta_punishment_success.hpl
- Y
- Y
- N
-
-
- change_status_delta_punishment_success.hpl
- Success delta_punishment
- Y
- Y
- N
-
-
- delta_punishment.hpl
- change_status_delta_punishment_error.hpl
- Y
- N
- N
-
-
- change_status_delta_punishment_error.hpl
- error delta_punishment
- Y
- Y
- N
-
-
- change_status_to_processing_delta.hpl
- delta_punishment.hpl
- Y
- Y
- N
-
-
- punishment_flow1.hpl 2
- change_status_punishment_flow1_success.hpl 2
- Y
- Y
- N
-
-
- punishment_flow1.hpl 2
- change_status_punishment_flow1_error.hpl 2
- Y
- N
- N
-
-
- punishment_flow2.hpl 2
- change_status_punishment_flow2_success.hpl 2
- Y
- Y
- N
-
-
- punishment_flow2.hpl 2
- change_status_punishment_flow2_error.hpl 2
- Y
- N
- N
-
-
- punishment_flow3.hpl 2
- change_status_punishment_flow3_success.hpl 2
- Y
- Y
- N
-
-
- punishment_flow3.hpl 2
- change_status_punishment_flow3_error.hpl 2
- Y
- N
- N
-
-
- punishment_flow4.hpl 2
- change_status_punishment_flow4_success.hpl 2
- Y
- Y
- N
-
-
- punishment_flow4.hpl 2
- change_status_punishment_flow4_error.hpl 2
- Y
- N
- N
-
-
- punishment_flow5.hpl 2
- change_status_punishment_flow5_success.hpl 2
- Y
- Y
- N
-
-
- punishment_flow5.hpl 2
- change_status_punishment_flow5_error.hpl 2
- Y
- N
- N
-
-
- change_status_punishment_flow1_success.hpl 2
- checkpoint_job_punishment.hpl 2
- Y
- N
- Y
-
-
- change_status_punishment_flow1_error.hpl 2
- checkpoint_job_punishment.hpl 2
- Y
- N
- Y
-
-
- change_status_punishment_flow2_success.hpl 2
- checkpoint_job_punishment.hpl 2
- Y
- N
- Y
-
-
- change_status_punishment_flow2_error.hpl 2
- checkpoint_job_punishment.hpl 2
- Y
- N
- Y
-
-
- change_status_punishment_flow3_success.hpl 2
- checkpoint_job_punishment.hpl 2
- Y
- N
- Y
-
-
- change_status_punishment_flow3_error.hpl 2
- checkpoint_job_punishment.hpl 2
- Y
- N
- Y
-
-
- change_status_punishment_flow4_success.hpl 2
- checkpoint_job_punishment.hpl 2
- Y
- N
- Y
-
-
- change_status_punishment_flow4_error.hpl 2
- checkpoint_job_punishment.hpl 2
- Y
- N
- Y
-
-
- change_status_punishment_flow5_success.hpl 2
- checkpoint_job_punishment.hpl 2
- Y
- N
- Y
-
-
- change_status_punishment_flow5_error.hpl 2
- checkpoint_job_punishment.hpl 2
- Y
- N
- Y
-
-
- checkpoint_job_punishment.hpl 2
- Success new punishment 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- punishment_flow3.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- punishment_flow2.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- punishment_flow1.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- punishment_flow4.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- punishment_flow5.hpl 2
- Y
- Y
- N
-
@@ -1827,13 +272,18 @@
NSegoe UI9
- 72
- 1088
- 176
- 0001-01-01 00:00:00
+ 149
+ 976
+ 0
+
-3001-01-01 00:00:00
-
+M_R_UP_DATE
+
+M_R_CR_DATE
+
+0001-01-01 00:00:00
+
+3001-01-01 00:00:00114
diff --git a/mappings/info_recruits/citizen_tables/punishment/parallel/punishment_flow.hpl b/mappings/info_recruits/citizen_tables/punishment/parallel/punishment_flow.hpl
new file mode 100644
index 0000000..a1eb3ff
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/punishment/parallel/punishment_flow.hpl
@@ -0,0 +1,580 @@
+
+
+
+ punishment_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
+
+
+ 1168
+ 448
+
+
+
+ Add constants
+ Constant
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ -1
+ has_punishment_execution_info
+ true
+ -1
+ N
+ Boolean
+
+
+ -1
+ has_sentence_info
+ true
+ -1
+ N
+ Boolean
+
+
+
+
+ 880
+ 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}';
+
+
+
+
+ 1008
+ 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}'
+and status = 'PROCESSING';
+
+
+
+
+ 1488
+ 624
+
+
+
+ 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
+
+
+
+
+ 1488
+ 320
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1200
+ 624
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 720
+ 464
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 720
+ 624
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ WITH punishment_data AS (
+ SELECT ri.recruit_id,
+ jsonb_array_elements(ri.info -> 'svedFL' -> 'svedNakaz' -> 'nakaz') AS punishment_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
+ WHERE ri.info -> 'svedFL' -> 'svedNakaz' ->> 'nakaz' != 'null'
+)
+SELECT recruit_id,
+ (punishment_info ->> 'id')::uuid AS punishment_external_id,
+ -- Блок "Сведения о вынесенном приговоре"
+ punishment_info ->> 'vidNakaz' AS punishment_type, -- Вид наказания
+ punishment_info ->> 'kodVidNakaz' AS punishment_code, -- Код вида наказания
+ TO_DATE(punishment_info ->> 'dataOsuzhd', 'YYYY-MM-DD') AS sentense_date, -- Дата осуждения
+ punishment_info ->> 'naimSud' AS authority_name, -- Наименование суда
+ punishment_info ->> 'srokNakaz' AS sentence, -- Срок наказания
+ CASE
+ WHEN punishment_info ->> 'kodIzmSrokNakaz' = '1' THEN 'Изменений срока наказания не было'
+ WHEN punishment_info ->> 'kodIzmSrokNakaz' = '2' THEN 'Были изменения срока наказания'
+ ELSE punishment_info ->> 'kodIzmSrokNakaz'
+ END AS sentence_changed, -- Признак изменения срока
+ string_agg(law_articles, ', ') AS law_point, -- Статьи УК
+ -- Блок "Сведения об отбывании наказания"
+ punishment_info ->> 'katUcheta' AS registration_category, -- Категория учета
+ punishment_info ->> 'naimSubekt' AS region_name, -- Наименование субъекта
+ punishment_info ->> 'naimOrg' AS facility_name, -- Название учреждения
+ punishment_info ->> 'adresOrg' AS facility_address, -- Адрес учреждения
+ punishment_info ->> 'nomerUD' AS criminal_case_number, -- Номер уголовного дела
+ TO_DATE(punishment_info ->> 'dataNachSrok', 'YYYY-MM-DD') AS start_date, -- Дата начала срока
+ TO_DATE(punishment_info ->> 'dataOkonchSrok', 'YYYY-MM-DD') AS planned_date, -- Планируемая дата освобождения
+ CASE
+ WHEN punishment_info ->> 'kodPerekvalif' = '1' THEN 'Изменений статьи не было'
+ WHEN punishment_info ->> 'kodPerekvalif' = '2' THEN 'Были изменения статьи'
+ ELSE punishment_info ->> 'kodPerekvalif'
+ END AS article_modification_flag, -- Признак переквалификации
+ punishment_info ->> 'osnOsvob' AS release_reason, -- Основание освобождения
+ TO_DATE(punishment_info ->> 'dataOsvob', 'YYYY-MM-DD') AS release_date -- Фактическая дата освобождения
+FROM punishment_data
+LEFT JOIN LATERAL jsonb_array_elements_text(punishment_info -> 'statiUK') AS law_articles ON true
+GROUP BY recruit_id, punishment_info;
+ Y
+
+
+ 336
+ 320
+
+
+
+ Table output
+ TableOutput
+
+ N
+
+ 1
+
+ none
+
+
+ 1000
+ ervu-dashboard
+
+
+ recruit_id
+ recruit_id
+
+
+ punishment_external_id
+ punishment_external_id
+
+
+ punishment_type
+ punishment_type
+
+
+ punishment_code
+ punishment_code
+
+
+ sentense_date
+ sentense_date
+
+
+ authority_name
+ authority_name
+
+
+ sentence
+ sentence
+
+
+ sentence_changed
+ sentence_changed
+
+
+ law_point
+ law_point
+
+
+ registration_category
+ registration_category
+
+
+ region_name
+ region_name
+
+
+ facility_name
+ facility_name
+
+
+ facility_address
+ facility_address
+
+
+ criminal_case_number
+ criminal_case_number
+
+
+ start_date
+ start_date
+
+
+ planned_date
+ planned_date
+
+
+ article_modification_flag
+ article_modification_flag
+
+
+ release_reason
+ release_reason
+
+
+ release_date
+ release_date
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
punishment
+ N
+ Y
+ N
+ Y
+
+
+ 720
+ 320
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 1000
+ ervu-dashboard
+ N
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+