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 d40f0b3..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
@@ -201,6 +201,11 @@
id_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -261,7 +266,7 @@
N0SELECT
- r.system_pgs_status,
+ r.system_pgs_status,
r.full_name,
r.last_name,
r.first_name,
@@ -277,9 +282,9 @@
r.id AS recruit_id, --ri.recruit_id,
--ri.info,
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,
+ r.military_registration_date AS date_registration,
+ r.vu_unset_date AS date_deregistration,
+ 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,
@@ -293,9 +298,9 @@
*/
r.current_recruitment_id AS recruitment_id,
r.target_recruitment_id,
- CASE
+ CASE
WHEN ddd.hidden IS false then ddd.hidden
- ELSE true
+ ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration,
system_id_ern AS id_ern -- id единого регистра населения
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 ff56573..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
@@ -44,6 +44,7 @@
=recruit_idrecruit_id
+ ervu_dashboard
citizen
@@ -157,6 +158,11 @@
id_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -180,7 +186,7 @@
N0SELECT
- r.system_pgs_status,
+ r.system_pgs_status,
r.full_name,
r.last_name,
r.first_name,
@@ -196,9 +202,9 @@
r.id AS recruit_id, --ri.recruit_id,
--ri.info,
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,
+ r.military_registration_date AS date_registration,
+ r.vu_unset_date AS date_deregistration,
+ 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,
@@ -212,9 +218,9 @@
*/
r.current_recruitment_id AS recruitment_id,
r.target_recruitment_id,
- CASE
+ CASE
WHEN ddd.hidden IS false then ddd.hidden
- ELSE true
+ ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration,
system_id_ern AS id_ern -- id единого регистра населения
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 d511c07..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
@@ -22,12 +22,12 @@
Table input
- Insert / update
+ Insert / updateY
- Insert / update
+ Insert / updateInsertUpdateY
@@ -44,6 +44,7 @@
=recruit_idrecruit_id
+ ervu_dashboard
citizen
@@ -157,11 +158,16 @@
id_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
- 1248
+ 1264416
@@ -180,7 +186,7 @@
N0SELECT
- r.system_pgs_status,
+ r.system_pgs_status,
r.full_name,
r.last_name,
r.first_name,
@@ -196,9 +202,9 @@
r.id AS recruit_id, --ri.recruit_id,
--ri.info,
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,
+ r.military_registration_date AS date_registration,
+ r.vu_unset_date AS date_deregistration,
+ 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,
@@ -212,9 +218,9 @@
*/
r.current_recruitment_id AS recruitment_id,
r.target_recruitment_id,
- CASE
+ CASE
WHEN ddd.hidden IS false then ddd.hidden
- ELSE true
+ ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration,
system_id_ern AS id_ern -- id единого регистра населения
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 3b86f3d..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
@@ -22,12 +22,12 @@
Table input
- Insert / update
+ Insert / updateY
- Insert / update
+ Insert / updateInsertUpdateY
@@ -44,6 +44,7 @@
=recruit_idrecruit_id
+ ervu_dashboard
citizen
@@ -157,11 +158,16 @@
id_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
- 1152
+ 1216432
@@ -180,7 +186,7 @@
N0SELECT
- r.system_pgs_status,
+ r.system_pgs_status,
r.full_name,
r.last_name,
r.first_name,
@@ -196,9 +202,9 @@
r.id AS recruit_id, --ri.recruit_id,
--ri.info,
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,
+ r.military_registration_date AS date_registration,
+ r.vu_unset_date AS date_deregistration,
+ 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,
@@ -212,9 +218,9 @@
*/
r.current_recruitment_id AS recruitment_id,
r.target_recruitment_id,
- CASE
+ CASE
WHEN ddd.hidden IS false then ddd.hidden
- ELSE true
+ ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration,
system_id_ern AS id_ern -- id единого регистра населения
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 f82c0f1..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
@@ -22,12 +22,12 @@
Table input
- Insert / update
+ Insert / updateY
- Insert / update
+ Insert / updateInsertUpdateY
@@ -44,6 +44,7 @@
=recruit_idrecruit_id
+ ervu_dashboard
citizen
@@ -157,11 +158,16 @@
id_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
- 1216
+ 1248416
@@ -180,7 +186,7 @@
N0SELECT
- r.system_pgs_status,
+ r.system_pgs_status,
r.full_name,
r.last_name,
r.first_name,
@@ -196,9 +202,9 @@
r.id AS recruit_id, --ri.recruit_id,
--ri.info,
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,
+ r.military_registration_date AS date_registration,
+ r.vu_unset_date AS date_deregistration,
+ 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,
@@ -212,9 +218,9 @@
*/
r.current_recruitment_id AS recruitment_id,
r.target_recruitment_id,
- CASE
+ CASE
WHEN ddd.hidden IS false then ddd.hidden
- ELSE true
+ ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration,
system_id_ern AS id_ern -- id единого регистра населения
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 ac00781..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
@@ -158,6 +158,11 @@
id_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -181,7 +186,7 @@
N0SELECT
- r.system_pgs_status,
+ r.system_pgs_status,
r.full_name,
r.last_name,
r.first_name,
@@ -197,9 +202,9 @@
r.id AS recruit_id, --ri.recruit_id,
--ri.info,
--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,
+ r.military_registration_date AS date_registration,
+ r.vu_unset_date AS date_deregistration,
+ 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,
@@ -211,9 +216,9 @@
END AS convicts,
r.current_recruitment_id AS recruitment_id,
r.target_recruitment_id,
- CASE
+ CASE
WHEN ddd.hidden IS false then ddd.hidden
- ELSE true
+ ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration,
system_id_ern AS id_ern -- id единого регистра населения
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 01a715a..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
@@ -158,6 +158,11 @@
id_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -181,7 +186,7 @@
N0SELECT
- r.system_pgs_status,
+ r.system_pgs_status,
r.full_name,
r.last_name,
r.first_name,
@@ -197,9 +202,9 @@
r.id AS recruit_id, --ri.recruit_id,
--ri.info,
--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,
+ r.military_registration_date AS date_registration,
+ r.vu_unset_date AS date_deregistration,
+ 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,
@@ -211,9 +216,9 @@
END AS convicts,
r.current_recruitment_id AS recruitment_id,
r.target_recruitment_id,
- CASE
+ CASE
WHEN ddd.hidden IS false then ddd.hidden
- ELSE true
+ ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration,
system_id_ern AS id_ern -- id единого регистра населения
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 a1e7080..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
@@ -158,6 +158,11 @@
id_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -181,7 +186,7 @@
N0SELECT
- r.system_pgs_status,
+ r.system_pgs_status,
r.full_name,
r.last_name,
r.first_name,
@@ -197,9 +202,9 @@
r.id AS recruit_id, --ri.recruit_id,
--ri.info,
--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,
+ r.military_registration_date AS date_registration,
+ r.vu_unset_date AS date_deregistration,
+ 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,
@@ -211,9 +216,9 @@
END AS convicts,
r.current_recruitment_id AS recruitment_id,
r.target_recruitment_id,
- CASE
+ CASE
WHEN ddd.hidden IS false then ddd.hidden
- ELSE true
+ ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration,
system_id_ern AS id_ern -- id единого регистра населения
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 9831db3..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
@@ -158,6 +158,11 @@
id_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -181,7 +186,7 @@
N0SELECT
- r.system_pgs_status,
+ r.system_pgs_status,
r.full_name,
r.last_name,
r.first_name,
@@ -197,9 +202,9 @@
r.id AS recruit_id, --ri.recruit_id,
--ri.info,
--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,
+ r.military_registration_date AS date_registration,
+ r.vu_unset_date AS date_deregistration,
+ 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,
@@ -211,9 +216,9 @@
END AS convicts,
r.current_recruitment_id AS recruitment_id,
r.target_recruitment_id,
- CASE
+ CASE
WHEN ddd.hidden IS false then ddd.hidden
- ELSE true
+ ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration,
system_id_ern AS id_ern -- id единого регистра населения
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 615203a..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
@@ -158,6 +158,11 @@
id_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
@@ -181,7 +186,7 @@
N0SELECT
- r.system_pgs_status,
+ r.system_pgs_status,
r.full_name,
r.last_name,
r.first_name,
@@ -197,9 +202,9 @@
r.id AS recruit_id, --ri.recruit_id,
--ri.info,
--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,
+ r.military_registration_date AS date_registration,
+ r.vu_unset_date AS date_deregistration,
+ 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,
@@ -211,9 +216,9 @@
END AS convicts,
r.current_recruitment_id AS recruitment_id,
r.target_recruitment_id,
- CASE
+ CASE
WHEN ddd.hidden IS false then ddd.hidden
- ELSE true
+ ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration,
system_id_ern AS id_ern -- id единого регистра населения
diff --git a/map_v1/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl b/map_v1/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl
index 543c8ef..f0b4186 100644
--- a/map_v1/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl
+++ b/map_v1/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl
@@ -1,7 +1,7 @@
- change_status_delta_citizen_liability_fz53_flow2_error
+ recruit_update_date_ervu_dashboardY
@@ -13,63 +13,19 @@
1000100-
- 2025/06/16 12:20:06.191
+ 2025/06/02 14:50:31.833-
- 2025/06/16 12:20:06.191
+ 2025/06/02 14:50:31.833Table input
- Insert / update
+ Table outputY
-
- 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 inputTableInput
@@ -84,15 +40,52 @@
ervu-dashboardN0
- SELECT
- 'delta_citizen_liability_fz53_flow2' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
+ SELECT
+ created_at AS system_create_date,
+ updated_at AS system_update_date,
+ current_timestamp AS record_created,
+ 'job_recruits_info' AS workflow
+FROM ervu_dashboard.recruits_info
+WHERE updated_at = (SELECT MAX(updated_at) FROM ervu_dashboard.recruits_info)
+limit 1N
- 784
+ 896
+ 304
+
+
+
+ Table output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ 1000
+ ervu-dashboard
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ public
+ N
+
recruit_create
+ N
+ Y
+ N
+ Y
+
+
+ 1216304
diff --git a/mappings/connections/external_to_test1.json b/mappings/connections/external_to_test1.json
index 45d636b..c4da331 100644
--- a/mappings/connections/external_to_test1.json
+++ b/mappings/connections/external_to_test1.json
@@ -29,7 +29,7 @@
"description" : ""
}, {
"name" : "DB_DASHBOARD_NAME",
- "value" : "ervu-dashboard-test1",
+ "value" : "ervu-dashboard-test",
"description" : ""
}, {
"name" : "DB_DASHBOARD_USERNAME",
diff --git a/mappings/info_recruits/citizen_tables/child/branching_child.hpl b/mappings/info_recruits/citizen_tables/child/branching_child.hpl
deleted file mode 100644
index d25a7a0..0000000
--- a/mappings/info_recruits/citizen_tables/child/branching_child.hpl
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
- branching_child
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1056
- 256
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- select
- status as STATUS,
- job_name AS PIPELINE
-from public.etl_checkpoints
-where job_name = 'job_child'
- N
-
-
- 816
- 256
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1280
- 256
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/child/branching_child_delta.hpl b/mappings/info_recruits/citizen_tables/child/branching_child_delta.hpl
deleted file mode 100644
index 382688b..0000000
--- a/mappings/info_recruits/citizen_tables/child/branching_child_delta.hpl
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- branching_child_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1056
- 256
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- COALESCE(job_name, 'job_child_delta') AS PIPELINE,
- COALESCE(status, 'ERROR') AS STATUS,
- current_timestamp::timestamp as record_created
-FROM (
- select
- CASE
- WHEN status = 'PROCESSING' THEN 'ERROR'
- ELSE status
- END AS status,
- job_name
- from public.etl_checkpoints
- where job_name = 'job_child_delta'
-
- UNION ALL
-
- SELECT NULL, NULL
- WHERE NOT EXISTS (
- SELECT 1
- FROM public.etl_checkpoints
- WHERE job_name = 'job_child_delta'
- )
-) t
- N
-
-
- 816
- 256
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1280
- 256
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_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_flow1_error.hpl
rename to mappings/info_recruits/citizen_tables/child/check_if_need_to_repeat_job.hpl
index 782c038..440d53c 100644
--- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow1_error.hpl
+++ b/mappings/info_recruits/citizen_tables/child/check_if_need_to_repeat_job.hpl
@@ -1,7 +1,7 @@
- change_status_delta_child_flow1_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_flow1' 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/child/checkpoints/check_if_child_job_exists.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_child_job_exists.hpl
new file mode 100644
index 0000000..de6f58a
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_child_job_exists.hpl
@@ -0,0 +1,113 @@
+
+
+
+ check_if_child_job_exists
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 13:28:46.661
+ -
+ 2025/08/05 13:28:46.661
+
+
+
+
+
+ Set variables
+ Write to log
+ N
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ job_executed_flag
+ JOB_EXECUTED_FLAG
+ PARENT_WORKFLOW
+
+
+ Y
+
+
+ 672
+ 336
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'child_job'
+ limit 1
+ ) AS job_executed_flag;
+ N
+
+
+ 384
+ 336
+
+
+
+ Write to log
+ WriteToLog
+
+ Y
+
+ 1
+
+ none
+
+
+ Basic
+ Y
+ N
+ 0
+ ${STATUS}
+
+
+
+
+ 944
+ 224
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_child_error.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_child_error.hpl
deleted file mode 100644
index 0f593da..0000000
--- a/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_child_error.hpl
+++ /dev/null
@@ -1,273 +0,0 @@
-
-
-
- checkpoint_child_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/child/checkpoints/checkpoint_job_child.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child.hpl
deleted file mode 100644
index 06568da..0000000
--- a/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_child
- 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 (
- 'child_flow1',
- 'child_flow2',
- 'child_flow3',
- 'child_flow4',
- 'child_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'child_flow1',
- 'child_flow2',
- 'child_flow3',
- 'child_flow4',
- 'child_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_child' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 896
- 208
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child_delta.hpl b/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child_delta.hpl
deleted file mode 100644
index 9097bd1..0000000
--- a/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child_delta.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_child_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 14:19:02.590
- -
- 2025/06/03 14:19:02.590
-
-
-
-
-
- Filter rows
- Abort
- N
-
-
- JSON input state_child_flow1.json
- Filter rows
- N
-
-
- JSON input state_child_flow2.json
- Filter rows
- N
-
-
- JSON input state_child_flow3.json
- Filter rows
- N
-
-
- JSON input state_child_flow4.json
- Filter rows
- N
-
-
- JSON input state_child_flow5.json
- Filter rows
- N
-
-
- Table input
- Insert / update
- Y
-
-
- Dummy (do nothing)
- JSON input state_child_flow1.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow2.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow3.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow4.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow5.json
- N
-
-
-
- Abort
- Abort
-
- Y
-
- 1
-
- none
-
-
- ABORT_WITH_ERROR
- Y
- 0
-
-
- 1264
- 592
-
-
-
- Dummy (do nothing)
- Dummy
-
- Y
-
- 1
-
- none
-
-
-
-
- 352
- 592
-
-
-
- Filter rows
- FilterRows
-
- Y
-
- 1
-
- none
-
-
-
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow1
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow2
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow3
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow4
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow5
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- Abort
-
-
- 944
- 592
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1264
- 208
-
-
-
- JSON input state_child_flow1.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 432
-
-
-
- JSON input state_child_flow2.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 512
-
-
-
- JSON input state_child_flow3.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 592
-
-
-
- JSON input state_child_flow4.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 672
-
-
-
- JSON input state_child_flow5.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 752
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH status_check AS (
- SELECT
- bool_or(status = 'ERROR' AND job_name IN (
- 'delta_child_flow1',
- 'delta_child_flow2',
- 'delta_child_flow3',
- 'delta_child_flow4',
- 'delta_child_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'delta_child_flow1',
- 'delta_child_flow2',
- 'delta_child_flow3',
- 'delta_child_flow4',
- 'delta_child_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_child_delta' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 896
- 208
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/job_create_files_child.hwf b/mappings/info_recruits/citizen_tables/child/checkpoints/job_create_files_child.hwf
deleted file mode 100644
index b31ca9f..0000000
--- a/mappings/info_recruits/citizen_tables/child/checkpoints/job_create_files_child.hwf
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
- job_create_files_child
- Y
-
-
-
- -
- 2025/05/26 16:48:00.210
- -
- 2025/05/26 16:48:00.210
-
-
-
-
- Start
-
- SPECIAL
-
- 1
- 12
- 60
- 0
- 0
- N
- 0
- 1
- N
- 576
- 496
-
-
-
- state_child_flow2_new
-
- WRITE_TO_FILE
-
- N
- {
- "status": "NEW",
- "pipeline": "child_flow2"
-}
- N
- UTF-8
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json
- N
- 848
- 416
-
-
-
- state_child_flow1_new
-
- WRITE_TO_FILE
-
- N
- {
- "status": "NEW",
- "pipeline": "child_flow1"
-}
- N
- UTF-8
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json
- N
- 848
- 336
-
-
-
- state_child_flow3_new
-
- WRITE_TO_FILE
-
- N
- {
- "status": "NEW",
- "pipeline": "child_flow3"
-}
- N
- UTF-8
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json
- N
- 848
- 496
-
-
-
- state_child_flow4_new
-
- WRITE_TO_FILE
-
- N
- {
- "status": "NEW",
- "pipeline": "child_flow4"
-}
- N
- UTF-8
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json
- N
- 848
- 576
-
-
-
- state_child_flow5_new
-
- WRITE_TO_FILE
-
- N
- {
- "status": "NEW",
- "pipeline": "child_flow5"
-}
- N
- UTF-8
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json
- N
- 848
- 656
-
-
-
- Success
-
- SUCCESS
-
- N
- 1120
- 496
-
-
-
- Delete file state_job_child
-
- DELETE_FILE
-
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json
- N
- 848
- 256
-
-
-
-
-
- Start
- state_child_flow3_new
- Y
- Y
- Y
-
-
- Start
- state_child_flow2_new
- Y
- Y
- Y
-
-
- Start
- state_child_flow1_new
- Y
- Y
- Y
-
-
- Start
- state_child_flow4_new
- Y
- Y
- Y
-
-
- Start
- state_child_flow5_new
- Y
- Y
- Y
-
-
- state_child_flow5_new
- Success
- Y
- Y
- N
-
-
- state_child_flow4_new
- Success
- Y
- Y
- N
-
-
- state_child_flow3_new
- Success
- Y
- Y
- N
-
-
- state_child_flow2_new
- Success
- Y
- Y
- N
-
-
- state_child_flow1_new
- Success
- Y
- Y
- N
-
-
- Start
- Delete file state_job_child
- Y
- Y
- Y
-
-
- Delete file state_job_child
- Success
- Y
- Y
- N
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/child/job_child.hwf b/mappings/info_recruits/citizen_tables/child/job_child.hwf
index 9dd20b8..997b5e5 100644
--- a/mappings/info_recruits/citizen_tables/child/job_child.hwf
+++ b/mappings/info_recruits/citizen_tables/child/job_child.hwf
@@ -37,235 +37,12 @@
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
+
-
- recruit_id
- recruit_id
- N
-
-
- birth_az_number
- birth_az_number
- Y
-
-
- birth_date
- birth_date
- Y
-
-
- death_az_number
- death_az_number
- Y
-
-
- death_date
- death_date
- Y
-
-
- full_name
- full_name
- Y
-
-
- kinship_type
- kinship_type
- Y
-
-
- N
-
-
- 1168
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- with child as
-(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch,
- ri.recruit_id
-from ervu_dashboard.recruits_info ri
-join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
- AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp
-where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'
-)
-select
- r.recruit_id::uuid recruit_id,
- ch->>'naimRodstvSvyazReb' kinship_type,
- concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya',
- ch->'svedFLBS'->'fio'->>'imya',
- ch->'svedFLBS'->'fio'->>'otchestvo') full_name,
- make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int,
- NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int,
- NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date,
- make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int,
- NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int,
- NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date,
- ch->'svedSmert'->>'nomerZapis' death_az_number,
- ch->'svedAZRozhd'->>'nomerZapis' birth_az_number
-from ervu_dashboard.citizen r
-join child on r.recruit_id = child.recruit_id
- Y
-
-
- 624
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/work_activity/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/child/recruitment_five_flow_delta.hpl
similarity index 90%
rename from mappings/info_recruits/citizen_tables/work_activity/recruitment_five_flow_delta.hpl
rename to mappings/info_recruits/citizen_tables/child/recruitment_five_flow_delta.hpl
index c8787e1..71e650a 100644
--- a/mappings/info_recruits/citizen_tables/work_activity/recruitment_five_flow_delta.hpl
+++ b/mappings/info_recruits/citizen_tables/child/recruitment_five_flow_delta.hpl
@@ -22,27 +22,27 @@
Table input
- work_activity_flow_delta.hpl
+ child_flow_delta.hplYTable input
- work_activity_flow_delta.hpl 2
+ child_flow_delta.hpl 2YTable input
- work_activity_flow_delta.hpl 3
+ child_flow_delta.hpl 3YTable input
- work_activity_flow_delta.hpl 4
+ child_flow_delta.hpl 4YTable input
- work_activity_flow_delta.hpl 5
+ child_flow_delta.hpl 5Y
@@ -63,9 +63,9 @@
SELECT
r.idm_id as recruitment_id
FROM ervu_dashboard.recruitment r
- LEFT JOIN public.job_execution je
+ LEFT JOIN etl.job_execution je
ON r.idm_id = je.recruitment_id
- and job_name = 'work_activity_job'
+ and job_name = 'child_job'
where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');N
@@ -75,7 +75,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
- work_activity_flow_delta.hpl
+ child_flow_delta.hplPipelineExecutorY
@@ -86,7 +86,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
local
- ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_delta.hplN1
@@ -101,7 +101,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
JOB_NAME
- work_activity_job
+ child_job
Y
@@ -131,7 +131,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
- work_activity_flow_delta.hpl 2
+ child_flow_delta.hpl 2PipelineExecutorY
@@ -142,7 +142,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
local
- ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_delta.hplN1
@@ -157,7 +157,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
JOB_NAME
- work_activity_job
+ child_job
Y
@@ -187,7 +187,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
- work_activity_flow_delta.hpl 3
+ child_flow_delta.hpl 3PipelineExecutorY
@@ -198,7 +198,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
local
- ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_delta.hplN1
@@ -213,7 +213,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
JOB_NAME
- work_activity_job
+ child_job
Y
@@ -243,7 +243,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
- work_activity_flow_delta.hpl 4
+ child_flow_delta.hpl 4PipelineExecutorY
@@ -254,7 +254,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
local
- ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_delta.hplN1
@@ -269,7 +269,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
JOB_NAME
- work_activity_job
+ child_job
Y
@@ -299,7 +299,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
- work_activity_flow_delta.hpl 5
+ child_flow_delta.hpl 5PipelineExecutorY
@@ -310,7 +310,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
local
- ${PROJECT_HOME}/info_recruits/citizen_tables/work_activity/parallel/work_activity_flow_delta.hpl
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_delta.hplN1
@@ -325,7 +325,7 @@ where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING
JOB_NAME
- work_activity_job
+ child_job
Y
diff --git a/mappings/info_recruits/citizen_tables/child/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/child/recruitment_five_flow_on_error.hpl
new file mode 100644
index 0000000..d9d0f7a
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/child/recruitment_five_flow_on_error.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_on_error
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 12:54:50.126
+ -
+ 2025/08/05 12:54:50.126
+
+
+
+
+
+ Table input
+ child_flow_repeat.hpl
+ Y
+
+
+ Table input
+ child_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ child_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ child_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ child_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'child_job'
+where je.status is null or je.status in('ERROR', 'PROCESSING');
+ N
+
+
+ 272
+ 368
+
+
+
+ child_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ child_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 208
+
+
+
+ child_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ child_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 288
+
+
+
+ child_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ child_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 368
+
+
+
+ child_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ child_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 448
+
+
+
+ child_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ child_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 528
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/child/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/child/recruitment_rows_five_flow_if_error.hpl
deleted file mode 100644
index 0a663c3..0000000
--- a/mappings/info_recruits/citizen_tables/child/recruitment_rows_five_flow_if_error.hpl
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-
- recruitment_rows_five_flow_if_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/23 14:28:22.572
- -
- 2025/05/23 14:28:22.572
-
-
-
-
-
- Table input
- Copy rows to result
- Y
-
-
-
- Copy rows to result
- RowsToResult
-
- Y
-
- 1
-
- none
-
-
-
-
- 880
- 288
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-fr_check AS (
- SELECT
- last_recruitment_id AS recruitment_id,
- recruitment_created_date,
- status,
- job_name
- FROM public.etl_checkpoints
- WHERE status = 'ERROR' AND job_name IN ('child_flow1', 'child_flow2', 'child_flow3', 'child_flow4', 'child_flow5')
-),
-ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num,
- ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position
- FROM ordered
-),
-pivoted AS (
- SELECT
- position,
- MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow1') THEN created_at END) AS cr_flow1,
- MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow1') THEN idm_id::text END) AS idm_flow1,
- MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow2') THEN created_at END) AS cr_flow2,
- MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow2') THEN idm_id::text END) AS idm_flow2,
- MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow3') THEN created_at END) AS cr_flow3,
- MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow3') THEN idm_id::text END) AS idm_flow3,
- MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow4') THEN created_at END) AS cr_flow4,
- MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow4') THEN idm_id::text END) AS idm_flow4,
- MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow5') THEN created_at END) AS cr_flow5,
- MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'child_flow5') THEN idm_id::text END) AS idm_flow5
- FROM splitted
- GROUP BY position
-),
-remains as (
- SELECT
- position,
- cr_flow1,
- idm_flow1::uuid,
- cr_flow2,
- idm_flow2::uuid,
- cr_flow3,
- idm_flow3::uuid,
- cr_flow4,
- idm_flow4::uuid,
- cr_flow5,
- idm_flow5::uuid
- FROM pivoted
- WHERE (cr_flow1 IS NOT NULL AND idm_flow1 IS NOT NULL)
- OR (cr_flow2 IS NOT NULL AND idm_flow2 IS NOT NULL)
- OR (cr_flow3 IS NOT NULL AND idm_flow3 IS NOT NULL)
- OR (cr_flow4 IS NOT NULL AND idm_flow4 IS NOT NULL)
- OR (cr_flow5 IS NOT NULL AND idm_flow5 IS NOT NULL)
- order by position
-),
-idm1 as (
- select
- cr_flow1,
- idm_flow1
- from remains
- where cr_flow1 is not null and idm_flow1 is not null
-),
-idm2 as (
- select
- cr_flow2,
- idm_flow2
- from remains
- where cr_flow2 is not null and idm_flow2 is not null
-),
-idm3 as (
- select
- cr_flow3,
- idm_flow3
- from remains
- where cr_flow3 is not null and idm_flow3 is not null
-),
-idm4 as (
- select
- cr_flow4,
- idm_flow4
- from remains
- where cr_flow4 is not null and idm_flow4 is not null
-),
-idm5 as (
- select
- cr_flow5,
- idm_flow5
- from remains
- where cr_flow5 is not null and idm_flow5 is not null
-)
-select
- i1.*,
- i2.*,
- i3.*,
- i4.*,
- i5.*
-FROM
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn
-ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn)
-limit 2
- N
-
-
- 512
- 288
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/child/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/child/recruitments_five_flow.hpl
new file mode 100644
index 0000000..57195c7
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/child/recruitments_five_flow.hpl
@@ -0,0 +1,356 @@
+
+
+
+ recruitments_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/04/18 09:48:01.970
+ -
+ 2025/04/18 09:48:01.970
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ child_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ child_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ child_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ child_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ child_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ SELECT
+idm_id AS recruitment
+FROM ervu_dashboard.recruitment;
+ N
+
+
+ 432
+ 304
+
+
+
+ child_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ child_job
+
+ Y
+
+ Change job status on success
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+ Change job status on success
+
+ FileName
+
+
+
+ 704
+ 144
+
+
+
+ child_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ child_job
+
+ Y
+
+ Change job status on success 2
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+ Change job status on success 2
+
+ FileName
+
+
+
+ 704
+ 224
+
+
+
+ child_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ child_job
+
+ Y
+
+ Change job status on success 4
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+ Change job status on success 3
+
+ FileName
+
+
+
+ 704
+ 304
+
+
+
+ child_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ child_job
+
+ Y
+
+ Change job status on success 4
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+ Change job status on success 4
+
+ FileName
+
+
+
+ 704
+ 384
+
+
+
+ child_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ child_job
+
+ Y
+
+ Change job status on success 5
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+ Change job status on success 5
+
+ FileName
+
+
+
+ 704
+ 464
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow.hpl b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow.hpl
index 80cdd00..7ea9022 100644
--- a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow.hpl
+++ b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow.hpl
@@ -87,11 +87,8 @@
ervu-dashboard
- Y
- N
- YYN
@@ -102,7 +99,6 @@ WHERE job_name = '${JOB_NAME}'
and recruitment_id = '${IDM_ID}';
- 944
@@ -182,6 +178,7 @@ VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}');
ervu_person_registryN
+ /*
with
adresses as ( -- по одному ли адресу тут должно быть??
@@ -224,7 +221,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,
@@ -383,16 +380,23 @@ ${LIMIT_FW}id_ernid_ern
+
+ marital_status
+ marital_status
+ NNNN
+ Y
+ Nervu_dashboardY
citizen
+ NYN
diff --git a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_delta.hpl
index c504f9f..85e6b57 100644
--- a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_delta.hpl
+++ b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_delta.hpl
@@ -27,11 +27,31 @@
Table input
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a streamInsert / updateYInsert / update
+ Filter rows
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Insert / update
+ Detect empty stream
+ Y
+
+
+ Detect empty streamChange job status on successY
@@ -40,7 +60,32 @@
Change job status on errorY
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1056
+ 384
+
+ Change job status on errorExecSql
@@ -56,9 +101,6 @@
error_description
-
- error_code
- ervu-dashboardY
@@ -68,16 +110,15 @@
NUPDATE etl.job_execution
SET status = 'DELTA_ERROR',
- error_description = ?,
- error_code = ?
+ error_description = ?
WHERE job_name = '${JOB_NAME}'
and recruitment_id = '${IDM_ID}';
- 1040
- 416
+ 832
+ 384
@@ -107,8 +148,8 @@ and recruitment_id = '${IDM_ID}';
- 1040
- 224
+ 1056
+ 80
@@ -134,13 +175,83 @@ and recruitment_id = '${IDM_ID}';
SET
status = 'DELTA_PROCESSING',
execution_datetime = DEFAULT,
- error_description = NULL,
- error_code = NULL
+ error_description = NULL
where job_name = '${JOB_NAME}'
and recruitment_id = '${IDM_ID}';
- 336
+ 272
+ 224
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1056
+ 224
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 832
+ 80
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 640224
@@ -148,7 +259,7 @@ and recruitment_id = '${IDM_ID}';Insert / updateInsertUpdate
- Y
+ N1
@@ -162,7 +273,6 @@ and recruitment_id = '${IDM_ID}';=recruit_idrecruit_id
- ervu_dashboard
citizen
@@ -271,11 +381,16 @@ and recruitment_id = '${IDM_ID}';id_ernY
+
+ marital_status
+ marital_status
+ Y
+ N
- 784
+ 832224
@@ -283,7 +398,7 @@ and recruitment_id = '${IDM_ID}';Table inputTableInput
- Y
+ N1
@@ -292,6 +407,7 @@ and recruitment_id = '${IDM_ID}';ervu_person_registryN
+ /*
with
adresses as ( -- по одному ли адресу тут должно быть??
@@ -334,7 +450,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,
@@ -372,7 +488,8 @@ SELECT
FROM public.recruits AS r
JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${IDM_ID}' != '' -- Проверка на пустую строку
AND COALESCE(current_recruitment_id, target_recruitment_id) = '${IDM_ID}'
- AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp
+ --AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp
+ AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp
LEFT JOIN (
SELECT
ROW_NUMBER() OVER (PARTITION BY recruit_id ORDER BY created_at DESC) as rn,
@@ -391,7 +508,7 @@ ${LIMIT_FW}Y
- 544
+ 464224
diff --git a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_repeat.hpl
index fb6a4fa..5bf8781 100644
--- a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_repeat.hpl
+++ b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow_repeat.hpl
@@ -27,20 +27,65 @@
Table input
- Table output
+ Identify last row in a streamY
- Table output
+ Identify last row in a stream
+ Insert / update
+ Y
+
+
+ Insert / update
+ Filter rows
+ Y
+
+
+ Insert / update
+ Detect empty stream
+ Y
+
+
+ Detect empty streamChange job status on successY
- Table output
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Insert / updateChange job status on errorY
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1152
+ 352
+
+ Change job status on errorExecSql
@@ -56,13 +101,13 @@
error_description
-
- error_code
- ervu-dashboard
+ Y
+ N
+ YYN
@@ -73,10 +118,11 @@ WHERE job_name = '${JOB_NAME}'
and recruitment_id = '${IDM_ID}';
+
- 976
- 400
+ 896
+ 352
@@ -106,8 +152,8 @@ and recruitment_id = '${IDM_ID}';
- 976
- 208
+ 1216
+ 96
@@ -135,7 +181,6 @@ and recruitment_id = '${IDM_ID}';
status,
execution_datetime,
error_description,
- error_code,
recruitment_id
)
VALUES (
@@ -144,26 +189,234 @@ VALUES (
'PROCESSING',
DEFAULT,
NULL,
- NULL,
'${IDM_ID}'
)
ON CONFLICT (job_name, recruitment_id)
DO UPDATE SET
status = 'PROCESSING',
execution_datetime = DEFAULT,
- error_description = NULL,
- error_code = NULL;
+ error_description = NULL
272208
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1216
+ 208
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 896
+ 96
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 688
+ 208
+
+
+
+ Insert / update
+ InsertUpdate
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ recruit_id
+ recruit_id
+ N
+
+
+ system_pgs_status
+ system_pgs_status
+ Y
+
+
+ full_name
+ full_name
+ Y
+
+
+ last_name
+ last_name
+ Y
+
+
+ first_name
+ first_name
+ Y
+
+
+ middle_name
+ middle_name
+ Y
+
+
+ gender
+ gender
+ Y
+
+
+ birth_date
+ birth_date
+ Y
+
+
+ age
+ age
+ Y
+
+
+ birth_place
+ birth_place
+ Y
+
+
+ phone
+ phone
+ Y
+
+
+ email
+ email
+ Y
+
+
+ vu_current_info
+ vu_current_info
+ Y
+
+
+ date_registration
+ date_registration
+ Y
+
+
+ date_deregistration
+ date_deregistration
+ Y
+
+
+ marital_status
+ marital_status
+ Y
+
+
+ recruit_create_date
+ recruit_create_date
+ Y
+
+
+ update_date
+ update_date
+ Y
+
+
+ recruitment_id
+ recruitment_id
+ Y
+
+
+ target_recruitment_id
+ target_recruitment_id
+ Y
+
+
+ deferment_liberation
+ deferment_liberation
+ Y
+
+
+ id_ern
+ id_ern
+ Y
+
+
+ N
+
+
+ 896
+ 208
+
+ Table inputTableInput
- Y
+ N1
@@ -214,7 +467,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,
@@ -373,32 +626,33 @@ ${LIMIT_FW}
id_ernid_ern
+
+ marital_status
+ marital_status
+ NNNN
- Y
- Nervu_dashboardY
citizen
- NYNY
- 720
- 208
+ 576
+ 528
- Table output
+ Insert / updateChange job status on errorY
@@ -409,6 +663,18 @@ ${LIMIT_FW}
+
+ Table output
+ Change job status on error
+ N
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen/recruitment_five_flow_on_error.hpl
index ff128c3..4375dcd 100644
--- a/mappings/info_recruits/citizen_tables/citizen/recruitment_five_flow_on_error.hpl
+++ b/mappings/info_recruits/citizen_tables/citizen/recruitment_five_flow_on_error.hpl
@@ -63,7 +63,7 @@
SELECT
r.idm_id as recruitment_id
FROM ervu_dashboard.recruitment r
- LEFT JOIN public.job_execution je
+ LEFT JOIN etl.job_execution je
ON r.idm_id = je.recruitment_id
and job_name = 'citizen_job'
where je.status is null or je.status in('ERROR', 'PROCESSING');
diff --git a/mappings/info_recruits/citizen_tables/citizen/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen/recruitments_five_flow.hpl
index 9be90a8..bee8f5b 100644
--- a/mappings/info_recruits/citizen_tables/citizen/recruitments_five_flow.hpl
+++ b/mappings/info_recruits/citizen_tables/citizen/recruitments_five_flow.hpl
@@ -112,59 +112,6 @@ ${COMMENT}*/
304
-
- job_citizen_flow.hwf
- WorkflowExecutor
-
- Y
-
- 1
-
- none
-
-
- local
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/job_citizen_flow.hwf
- 1
-
-
-
-
- IDM_ID
- recruitment
-
-
-
- JOB_NAME
-
- citizen_job
-
- Y
-
-
- ExecutionTime
- ExecutionResult
- ExecutionNrErrors
- ExecutionLinesRead
- ExecutionLinesWritten
- ExecutionLinesInput
- ExecutionLinesOutput
- ExecutionLinesRejected
- ExecutionLinesUpdated
- ExecutionLinesDeleted
- ExecutionFilesRetrieved
- ExecutionExitStatus
- ExecutionLogText
- ExecutionLogChannelId
-
-
- FileName
-
-
- 736
- 144
-
- citizen_flow.hplPipelineExecutor
@@ -445,6 +392,59 @@ ${COMMENT}*/
928
+
+ job_citizen_flow.hwf
+ WorkflowExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/job_citizen_flow.hwf
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+ 736
+ 144
+
+ job_citizen_flow.hwf 2WorkflowExecutor
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53.hpl
deleted file mode 100644
index 894af88..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53.hpl
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
- branching_citizen_appealing_violations_fz53
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1056
- 256
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- select
- status as STATUS,
- job_name AS PIPELINE
-from public.etl_checkpoints
-where job_name = 'job_citizen_appealing_violations_fz53'
- N
-
-
- 816
- 256
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1280
- 256
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53_delta.hpl
deleted file mode 100644
index 35eb784..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53_delta.hpl
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- branching_citizen_appealing_violations_fz53_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1056
- 256
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- COALESCE(job_name, 'job_citizen_appealing_violations_fz53_delta') AS PIPELINE,
- COALESCE(status, 'ERROR') AS STATUS,
- current_timestamp::timestamp as record_created
-FROM (
- select
- CASE
- WHEN status = 'PROCESSING' THEN 'ERROR'
- ELSE status
- END AS status,
- job_name
- from public.etl_checkpoints
- where job_name = 'job_citizen_appealing_violations_fz53_delta'
-
- UNION ALL
-
- SELECT NULL, NULL
- WHERE NOT EXISTS (
- SELECT 1
- FROM public.etl_checkpoints
- WHERE job_name = 'job_citizen_appealing_violations_fz53_delta'
- )
-) t
- N
-
-
- 816
- 256
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1280
- 256
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/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/citizen_appealing_violations_fz53/check_if_need_to_repeat_job.hpl
index c39e38f..feafe81 100644
--- a/mappings/info_recruits/citizen_tables/child/checkpoints/change_status_delta_child_flow4_error.hpl
+++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/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 = 'citizen_appealing_violations_fz53_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/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_error.hpl
deleted file mode 100644
index 17b638f..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_error.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_citizen_appealing_violations_fz53_flow1_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'citizen_appealing_violations_fz53_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_success.hpl
deleted file mode 100644
index 7cca14e..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_success.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_citizen_appealing_violations_fz53_flow1_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'citizen_appealing_violations_fz53_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_error.hpl
deleted file mode 100644
index 20d3515..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_error.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_citizen_appealing_violations_fz53_flow2_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_appealing_violations_fz53_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_success.hpl
deleted file mode 100644
index 4c86e09..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_success.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_citizen_appealing_violations_fz53_flow2_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_appealing_violations_fz53_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_error.hpl
deleted file mode 100644
index eff6309..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_error.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_citizen_appealing_violations_fz53_flow3_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_appealing_violations_fz53_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_success.hpl
deleted file mode 100644
index dde1f6c..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_success.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_citizen_appealing_violations_fz53_flow3_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_appealing_violations_fz53_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_error.hpl
deleted file mode 100644
index b8ea516..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_appealing_violations_fz53_flow4_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_appealing_violations_fz53_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_success.hpl
deleted file mode 100644
index d615e08..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_appealing_violations_fz53_flow4_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_appealing_violations_fz53_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_error.hpl
deleted file mode 100644
index 25d529e..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_appealing_violations_fz53_flow5_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_appealing_violations_fz53_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_success.hpl
deleted file mode 100644
index 64c33fa..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_appealing_violations_fz53_flow5_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_appealing_violations_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_appealing_violations_fz53_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl
deleted file mode 100644
index 57bec30..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow1_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow1' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl
deleted file mode 100644
index 5a31b60..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow1_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow1' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl
deleted file mode 100644
index 2bb7cb2..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow2_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow2' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl
deleted file mode 100644
index 02f1d71..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow2_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow2' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl
deleted file mode 100644
index bad8452..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow3_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow3' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl
deleted file mode 100644
index c52e330..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow3_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow3' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl
deleted file mode 100644
index e5b0f66..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow4_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow4' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl
deleted file mode 100644
index ed8c6b6..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow4_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow4' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl
deleted file mode 100644
index b368dc1..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow5_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow5' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl
deleted file mode 100644
index 5f711e1..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow5_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow5' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing.hpl
deleted file mode 100644
index 6e63a1c..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing.hpl
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- change_status_to_processing
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/11 16:14:31.162
- -
- 2025/06/11 16:14:31.162
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 784
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'PROCESSING' AS status,
- 'job_citizen_appealing_violations_fz53' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_appealing_violations_fz53_flow1' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_appealing_violations_fz53_flow2' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_appealing_violations_fz53_flow3' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_appealing_violations_fz53_flow4' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_appealing_violations_fz53_flow5' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 368
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing_delta.hpl
deleted file mode 100644
index 6ace1f9..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing_delta.hpl
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
- change_status_to_processing_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 13:42:26.494
- -
- 2025/06/16 13:42:26.494
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1248
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'PROCESSING' AS status,
- 'delta_snils_inn' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 832
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_job_child_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_citizen_appealing_violations_fz53_job_exists.hpl
similarity index 70%
rename from mappings/info_recruits/citizen_tables/child/checkpoints/check_if_job_child_exists.hpl
rename to mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_citizen_appealing_violations_fz53_job_exists.hpl
index a2bc69c..374bbbf 100644
--- a/mappings/info_recruits/citizen_tables/child/checkpoints/check_if_job_child_exists.hpl
+++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_citizen_appealing_violations_fz53_job_exists.hpl
@@ -1,7 +1,7 @@
- check_if_job_child_exists
+ check_if_citizen_appealing_violations_fz53_job_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 = 'citizen_appealing_violations_fz53_job'
+ limit 1
+ ) AS job_executed_flag;N
- 400
- 352
+ 384
+ 336
@@ -120,8 +103,8 @@ FROM (
${STATUS}
- 960
- 240
+ 944
+ 224
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_job_citizen_appealing_violations_fz53_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_job_citizen_appealing_violations_fz53_exists.hpl
deleted file mode 100644
index fc0f6b5..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_job_citizen_appealing_violations_fz53_exists.hpl
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
- check_if_job_citizen_appealing_violations_fz53_exists
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/11 15:20:18.267
- -
- 2025/06/11 15:20:18.267
-
-
-
-
-
- Table input
- Set variables
- Y
-
-
- Set variables
- Write to log
- N
-
-
-
- Set variables
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- job_name
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 688
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- COALESCE(job_name, 'job_citizen_appealing_violations_fz53') AS job_name,
- COALESCE(status, 'NEW') AS status,
- current_timestamp::timestamp as record_created
-FROM (
- SELECT job_name, status
- FROM public.etl_checkpoints
- WHERE job_name = 'job_citizen_appealing_violations_fz53'
-
- UNION ALL
-
- SELECT NULL, NULL
- WHERE NOT EXISTS (
- SELECT 1
- FROM public.etl_checkpoints
- WHERE job_name = 'job_citizen_appealing_violations_fz53'
- )
-) t
- N
-
-
- 400
- 352
-
-
-
- Write to log
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- N
- 0
- Basic
- ${STATUS}
-
-
- 960
- 240
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_citizen_appealing_violations_fz53_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_citizen_appealing_violations_fz53_error.hpl
deleted file mode 100644
index c4c46a7..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_citizen_appealing_violations_fz53_error.hpl
+++ /dev/null
@@ -1,273 +0,0 @@
-
-
-
- checkpoint_citizen_appealing_violations_fz53_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 10:01:04.895
- -
- 2025/06/09 10:01:04.895
-
-
-
-
-
- Select values
- Table output
- N
-
-
- Table input
- Select values
- N
-
-
- Table input
- Table output
- Y
-
-
-
- Select values
- SelectValues
-
- Y
-
- 1
-
- none
-
-
-
- N
-
- idm_id
- idm_id
- String
- -2
- -2
-
- false
-
-
- false
-
-
-
-
-
-
-
-
-
- 1008
- 608
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'job_child_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-)
-select * from for_checkpoints
- N
-
-
- 736
- 448
-
-
-
- Table output
- TableOutput
-
- Y
-
- 1
-
- none
-
-
- 1000
- ervu-dashboard
-
-
- N
- N
- N
- N
- Y
- N
- public
- N
-
etl_checkpoints
- N
- Y
- N
- Y
-
-
- 1248
- 448
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl
deleted file mode 100644
index 5483bad..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_citizen_appealing_violations_fz53
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 14:19:02.590
- -
- 2025/06/03 14:19:02.590
-
-
-
-
-
- Filter rows
- Abort
- N
-
-
- JSON input state_child_flow1.json
- Filter rows
- N
-
-
- JSON input state_child_flow2.json
- Filter rows
- N
-
-
- JSON input state_child_flow3.json
- Filter rows
- N
-
-
- JSON input state_child_flow4.json
- Filter rows
- N
-
-
- JSON input state_child_flow5.json
- Filter rows
- N
-
-
- Table input
- Insert / update
- Y
-
-
- Dummy (do nothing)
- JSON input state_child_flow1.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow2.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow3.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow4.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow5.json
- N
-
-
-
- Abort
- Abort
-
- Y
-
- 1
-
- none
-
-
- ABORT_WITH_ERROR
- Y
- 0
-
-
- 1264
- 592
-
-
-
- Dummy (do nothing)
- Dummy
-
- Y
-
- 1
-
- none
-
-
-
-
- 352
- 592
-
-
-
- Filter rows
- FilterRows
-
- Y
-
- 1
-
- none
-
-
-
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow1
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow2
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow3
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow4
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow5
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- Abort
-
-
- 944
- 592
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1264
- 208
-
-
-
- JSON input state_child_flow1.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 432
-
-
-
- JSON input state_child_flow2.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 512
-
-
-
- JSON input state_child_flow3.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 592
-
-
-
- JSON input state_child_flow4.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 672
-
-
-
- JSON input state_child_flow5.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 752
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH status_check AS (
- SELECT
- bool_or(status = 'ERROR' AND job_name IN (
- 'citizen_appealing_violations_fz53_flow1',
- 'citizen_appealing_violations_fz53_flow2',
- 'citizen_appealing_violations_fz53_flow3',
- 'citizen_appealing_violations_fz53_flow4',
- 'citizen_appealing_violations_fz53_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'citizen_appealing_violations_fz53_flow1',
- 'citizen_appealing_violations_fz53_flow2',
- 'citizen_appealing_violations_fz53_flow3',
- 'citizen_appealing_violations_fz53_flow4',
- 'citizen_appealing_violations_fz53_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_citizen_appealing_violations_fz53' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 896
- 208
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
deleted file mode 100644
index 6c9fc6a..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_citizen_appealing_violations_fz53_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 14:19:02.590
- -
- 2025/06/03 14:19:02.590
-
-
-
-
-
- Filter rows
- Abort
- N
-
-
- JSON input state_child_flow1.json
- Filter rows
- N
-
-
- JSON input state_child_flow2.json
- Filter rows
- N
-
-
- JSON input state_child_flow3.json
- Filter rows
- N
-
-
- JSON input state_child_flow4.json
- Filter rows
- N
-
-
- JSON input state_child_flow5.json
- Filter rows
- N
-
-
- Table input
- Insert / update
- Y
-
-
- Dummy (do nothing)
- JSON input state_child_flow1.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow2.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow3.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow4.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow5.json
- N
-
-
-
- Abort
- Abort
-
- Y
-
- 1
-
- none
-
-
- ABORT_WITH_ERROR
- Y
- 0
-
-
- 1264
- 592
-
-
-
- Dummy (do nothing)
- Dummy
-
- Y
-
- 1
-
- none
-
-
-
-
- 352
- 592
-
-
-
- Filter rows
- FilterRows
-
- Y
-
- 1
-
- none
-
-
-
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow1
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow2
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow3
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow4
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow5
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- Abort
-
-
- 944
- 592
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1264
- 208
-
-
-
- JSON input state_child_flow1.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 432
-
-
-
- JSON input state_child_flow2.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 512
-
-
-
- JSON input state_child_flow3.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 592
-
-
-
- JSON input state_child_flow4.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 672
-
-
-
- JSON input state_child_flow5.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 752
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH status_check AS (
- SELECT
- bool_or(status = 'ERROR' AND job_name IN (
- 'delta_snils_inn_flow1',
- 'delta_snils_inn_flow2',
- 'delta_snils_inn_flow3',
- 'delta_snils_inn_flow4',
- 'delta_snils_inn_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'delta_snils_inn_flow1',
- 'delta_snils_inn_flow2',
- 'delta_snils_inn_flow3',
- 'delta_snils_inn_flow4',
- 'delta_snils_inn_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_snils_inn_delta' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 896
- 208
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/citizen_appealing_violations_fz53_job.hwf b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/citizen_appealing_violations_fz53_job.hwf
new file mode 100644
index 0000000..fbff1c8
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/citizen_appealing_violations_fz53_job.hwf
@@ -0,0 +1,362 @@
+
+
+ citizen_appealing_violations_fz53_job
+ Y
+
+
+
+ 0
+ -
+ 2025/08/05 12:45:28.561
+ -
+ 2025/08/05 12:45:28.561
+
+
+ COMMENT
+
+
+
+
+ LIMIT_FW
+ ;
+
+
+
+ M_R_CR_DATE
+ 3001-01-01 00:00:00
+
+
+
+ M_R_UP_DATE
+ 0001-01-01 00:00:00
+
+
+
+
+
+ Start
+
+ SPECIAL
+
+ 1
+ 12
+ 60
+ 0
+ 0
+ N
+ 0
+ 1
+ N
+ 96
+ 304
+
+
+
+ check_if_citizen_appealing_violations_fz53_job_exists.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_citizen_appealing_violations_fz53_job_exists.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 416
+ 304
+
+
+
+ citizen_appealing_violations_fz53_job_exists_check
+
+ SIMPLE_EVAL
+
+ boolean
+ false
+ equal
+ equal
+ N
+ variable
+ JOB_EXECUTED_FLAG
+ N
+ 832
+ 304
+
+
+
+ recruitments_five_flow.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitments_five_flow.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ Y
+ 1296
+ 304
+
+
+
+ recruitment_five_flow_on_error.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_on_error.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 1296
+ 608
+
+
+
+ check_if_need_to_repeat_job.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/check_if_need_to_repeat_job.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 832
+ 464
+
+
+
+ Simple evaluation
+
+ SIMPLE_EVAL
+
+ boolean
+ true
+ equal
+ equal
+ N
+ variable
+ NEED_TO_REPEAT_JOB
+ N
+ 832
+ 608
+
+
+
+ recruitment_five_flow_delta.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_delta.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 832
+ 800
+
+
+
+
+
+ Start
+ check_if_citizen_appealing_violations_fz53_job_exists.hpl
+ Y
+ Y
+ Y
+
+
+ check_if_citizen_appealing_violations_fz53_job_exists.hpl
+ citizen_appealing_violations_fz53_job_exists_check
+ Y
+ Y
+ N
+
+
+ citizen_appealing_violations_fz53_job_exists_check
+ recruitments_five_flow.hpl
+ Y
+ Y
+ N
+
+
+ citizen_appealing_violations_fz53_job_exists_check
+ check_if_need_to_repeat_job.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat_job.hpl
+ Simple evaluation
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_on_error.hpl
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_delta.hpl
+ Y
+ N
+ N
+
+
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 944
+ 256
+ Первичка
+ 65
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 944
+ 560
+ Повторка
+ 64
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 752
+ 720
+ Дельта
+ 49
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ Segoe UI
+ 9
+ 150
+ 1200
+ 80
+ citizen_appealing_violations_fz53_job
+
+M_R_UP_DATE
+
+M_R_CR_DATE
+
+0001-01-01 00:00:00
+
+3001-01-01 00:00:00
+ 206
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/job_citizen_appealing_violations_fz53.hwf b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/job_citizen_appealing_violations_fz53.hwf
deleted file mode 100644
index 7151cc4..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/job_citizen_appealing_violations_fz53.hwf
+++ /dev/null
@@ -1,2478 +0,0 @@
-
-
- job_citizen_appealing_violations_fz53
- Y
-
-
-
- 0
- -
- 2025/06/05 14:27:15.055
- -
- 2025/06/05 14:27:15.055
-
-
- M_R_CR_DATE
- 3001-01-01 00:00:00
-
-
-
- M_R_UP_DATE
-
-
-
-
-
-
- Start
-
- SPECIAL
-
- 1
- 12
- 60
- 0
- 0
- N
- 0
- 1
- N
- 272
- 400
-
-
-
- checkpoint_job_citizen_appealing_violations_fz53.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1136
- 1280
-
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2832
- 400
-
-
-
- citizen_appealing_violations_fz53_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 80
-
-
-
- citizen_appealing_violations_fz53_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 240
-
-
-
- citizen_appealing_violations_fz53_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 400
-
-
-
- citizen_appealing_violations_fz53_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 560
-
-
-
- citizen_appealing_violations_fz53_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 720
-
-
-
- Abort workflow
-
- ABORT
-
- N
- N
- 2816
- 208
-
-
-
- Success new citizen_appealing_violations_fz53
-
- SUCCESS
-
- N
- 4720
- 432
-
-
-
- branching_citizen_appealing_violations_fz53.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1584
- 1280
-
-
-
- Simple citizen_appealing_violations_fz53 WHERE SUCCESS
-
- SIMPLE_EVAL
-
- SUCCESS
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1696
- 1680
-
-
-
- Simple citizen_appealing_violations_fz53 WHERE ERROR
-
- SIMPLE_EVAL
-
- ERROR
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 2048
- 1280
-
-
-
- recruitment_rows_five_flow_if_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_rows_five_flow_if_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2864
- 1280
-
-
-
- Abort workflow 2
-
- ABORT
-
- N
- N
- 2768
- 1040
-
-
-
- delta_citizen_appealing_violations_fz53_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow1.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 1792
-
-
-
- check_if_job_citizen_appealing_violations_fz53_exists.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/check_if_job_citizen_appealing_violations_fz53_exists.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 528
- 400
-
-
-
- Simple job_citizen_appealing_violations_fz53_exists check NEW
-
- SIMPLE_EVAL
-
- NEW
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 992
- 400
-
-
-
- change_status_to_processing.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2848
- 560
-
-
-
- change_status_citizen_appealing_violations_fz53_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 80
-
-
-
- change_status_citizen_appealing_violations_fz53_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 160
-
-
-
- change_status_citizen_appealing_violations_fz53_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 240
-
-
-
- change_status_citizen_appealing_violations_fz53_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 320
-
-
-
- change_status_citizen_appealing_violations_fz53_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 400
-
-
-
- change_status_citizen_appealing_violations_fz53_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 480
-
-
-
- change_status_citizen_appealing_violations_fz53_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 560
-
-
-
- change_status_citizen_appealing_violations_fz53_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 640
-
-
-
- change_status_citizen_appealing_violations_fz53_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 720
-
-
-
- change_status_citizen_appealing_violations_fz53_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 800
-
-
-
- checkpoint_job_citizen_appealing_violations_fz53.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 4320
- 432
-
-
-
- change_status_to_processing.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2848
- 1424
-
-
-
- change_status_to_processing_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_to_processing_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2864
- 2304
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1792
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1872
-
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2832
- 2112
-
-
-
- Abort workflow 2 2
-
- ABORT
-
- N
- N
- 2816
- 1952
-
-
-
- delta_citizen_appealing_violations_fz53_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow2.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 1952
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1952
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 2032
-
-
-
- delta_citizen_appealing_violations_fz53_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow3.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 2112
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 2112
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 2192
-
-
-
- delta_citizen_appealing_violations_fz53_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow4.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 2272
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 2272
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 2352
-
-
-
- delta_citizen_appealing_violations_fz53_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow5.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 2432
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 2432
-
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 2512
-
-
-
- branching_citizen_appealing_violations_fz53_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/branching_citizen_appealing_violations_fz53_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1824
- 2112
-
-
-
- Simple delta_citizen_appealing_violations_fz53 WHERE ERROR
-
- SIMPLE_EVAL
-
- ERROR
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 2256
- 2112
-
-
-
- delta_citizen_appealing_violations_fz53 success
-
- SUCCESS
-
- N
- 2368
- 1904
-
-
-
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 4384
- 2112
-
-
-
- Success delta_citizen_appealing_violations_fz53
-
- SUCCESS
-
- N
- 4784
- 2112
-
-
-
- citizen_appealing_violations_fz53_flow1.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 960
-
-
-
- citizen_appealing_violations_fz53_flow2.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 1120
-
-
-
- citizen_appealing_violations_fz53_flow3.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 1280
-
-
-
- citizen_appealing_violations_fz53_flow4.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 1440
-
-
-
- citizen_appealing_violations_fz53_flow5.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 3344
- 1600
-
-
-
- Success citizen_appealing_violations_fz53 after error
-
- SUCCESS
-
- N
- 4720
- 1312
-
-
-
- change_status_citizen_appealing_violations_fz53_flow1_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 960
-
-
-
- change_status_citizen_appealing_violations_fz53_flow1_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1040
-
-
-
- change_status_citizen_appealing_violations_fz53_flow2_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1120
-
-
-
- change_status_citizen_appealing_violations_fz53_flow2_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1200
-
-
-
- change_status_citizen_appealing_violations_fz53_flow3_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1280
-
-
-
- change_status_citizen_appealing_violations_fz53_flow3_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1360
-
-
-
- change_status_citizen_appealing_violations_fz53_flow4_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1440
-
-
-
- change_status_citizen_appealing_violations_fz53_flow4_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1520
-
-
-
- change_status_citizen_appealing_violations_fz53_flow5_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1600
-
-
-
- change_status_citizen_appealing_violations_fz53_flow5_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/change_status_citizen_appealing_violations_fz53_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3856
- 1680
-
-
-
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/checkpoints/checkpoint_job_citizen_appealing_violations_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 4320
- 1312
-
-
-
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl
- citizen_appealing_violations_fz53_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl
- citizen_appealing_violations_fz53_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl
- citizen_appealing_violations_fz53_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl
- citizen_appealing_violations_fz53_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl
- citizen_appealing_violations_fz53_flow5.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl
- Abort workflow
- Y
- N
- N
-
-
- branching_citizen_appealing_violations_fz53.hpl
- Simple citizen_appealing_violations_fz53 WHERE ERROR
- Y
- N
- Y
-
-
- branching_citizen_appealing_violations_fz53.hpl
- Simple citizen_appealing_violations_fz53 WHERE SUCCESS
- Y
- N
- Y
-
-
- recruitment_rows_five_flow_if_error.hpl
- Abort workflow 2
- Y
- N
- N
-
-
- Start
- check_if_job_citizen_appealing_violations_fz53_exists.hpl
- Y
- Y
- Y
-
-
- check_if_job_citizen_appealing_violations_fz53_exists.hpl
- Simple job_citizen_appealing_violations_fz53_exists check NEW
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow1.hpl
- change_status_citizen_appealing_violations_fz53_flow1_success.hpl
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow1.hpl
- change_status_citizen_appealing_violations_fz53_flow1_error.hpl
- Y
- N
- N
-
-
- citizen_appealing_violations_fz53_flow2.hpl
- change_status_citizen_appealing_violations_fz53_flow2_success.hpl
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow2.hpl
- change_status_citizen_appealing_violations_fz53_flow2_error.hpl
- Y
- N
- N
-
-
- citizen_appealing_violations_fz53_flow3.hpl
- change_status_citizen_appealing_violations_fz53_flow3_success.hpl
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow3.hpl
- change_status_citizen_appealing_violations_fz53_flow3_error.hpl
- Y
- N
- N
-
-
- citizen_appealing_violations_fz53_flow4.hpl
- change_status_citizen_appealing_violations_fz53_flow4_success.hpl
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow4.hpl
- change_status_citizen_appealing_violations_fz53_flow4_error.hpl
- Y
- N
- N
-
-
- citizen_appealing_violations_fz53_flow5.hpl
- change_status_citizen_appealing_violations_fz53_flow5_success.hpl
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow5.hpl
- change_status_citizen_appealing_violations_fz53_flow5_error.hpl
- Y
- N
- N
-
-
- change_status_citizen_appealing_violations_fz53_flow5_error.hpl
- checkpoint_job_citizen_appealing_violations_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow5_success.hpl
- checkpoint_job_citizen_appealing_violations_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow4_error.hpl
- checkpoint_job_citizen_appealing_violations_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow4_success.hpl
- checkpoint_job_citizen_appealing_violations_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow3_error.hpl
- checkpoint_job_citizen_appealing_violations_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow3_success.hpl
- checkpoint_job_citizen_appealing_violations_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow2_error.hpl
- checkpoint_job_citizen_appealing_violations_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow2_success.hpl
- checkpoint_job_citizen_appealing_violations_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow1_error.hpl
- checkpoint_job_citizen_appealing_violations_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow1_success.hpl
- checkpoint_job_citizen_appealing_violations_fz53.hpl
- Y
- N
- Y
-
-
- checkpoint_job_citizen_appealing_violations_fz53.hpl
- Success new citizen_appealing_violations_fz53
- Y
- Y
- N
-
-
- checkpoint_job_citizen_appealing_violations_fz53.hpl (2)
- branching_citizen_appealing_violations_fz53.hpl
- Y
- N
- Y
-
-
- Simple job_citizen_appealing_violations_fz53_exists check NEW
- checkpoint_job_citizen_appealing_violations_fz53.hpl (2)
- Y
- N
- N
-
-
- delta_citizen_appealing_violations_fz53_flow1.hpl
- change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_appealing_violations_fz53_flow1.hpl
- change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl
- Y
- N
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl
- change_status_to_processing.hpl
- Y
- Y
- N
-
-
- Simple job_citizen_appealing_violations_fz53_exists check NEW
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- change_status_to_processing.hpl (2)
- Y
- Y
- N
-
-
- Simple citizen_appealing_violations_fz53 WHERE ERROR
- recruitment_rows_five_flow_if_error.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2)
- delta_citizen_appealing_violations_fz53_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2)
- change_status_to_processing_delta.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2)
- Abort workflow 2 2
- Y
- N
- N
-
-
- delta_citizen_appealing_violations_fz53_flow2.hpl
- change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_appealing_violations_fz53_flow2.hpl
- change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl
- Y
- N
- N
-
-
- delta_citizen_appealing_violations_fz53_flow3.hpl
- change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_appealing_violations_fz53_flow3.hpl
- change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl
- Y
- N
- N
-
-
- delta_citizen_appealing_violations_fz53_flow4.hpl
- change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_appealing_violations_fz53_flow4.hpl
- change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl
- Y
- N
- N
-
-
- delta_citizen_appealing_violations_fz53_flow5.hpl
- change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_appealing_violations_fz53_flow5.hpl
- change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl
- Y
- N
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2)
- delta_citizen_appealing_violations_fz53_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2)
- delta_citizen_appealing_violations_fz53_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2)
- delta_citizen_appealing_violations_fz53_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2)
- delta_citizen_appealing_violations_fz53_flow5.hpl
- Y
- Y
- N
-
-
- Simple citizen_appealing_violations_fz53 WHERE SUCCESS
- branching_citizen_appealing_violations_fz53_delta.hpl
- Y
- Y
- N
-
-
- Simple delta_citizen_appealing_violations_fz53 WHERE ERROR
- delta_citizen_appealing_violations_fz53 success
- Y
- N
- N
-
-
- branching_citizen_appealing_violations_fz53_delta.hpl
- Simple delta_citizen_appealing_violations_fz53 WHERE ERROR
- Y
- Y
- N
-
-
- Simple delta_citizen_appealing_violations_fz53 WHERE ERROR
- recruitment_rows_five_flow_citizen_appealing_violations_fz53.hpl (2)
- Y
- Y
- N
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow1_success.hpl
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow3_success.hpl
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow2_error.hpl
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow2_success.hpl
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow1_error.hpl
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow3_error.hpl
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow4_success.hpl
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow4_error.hpl
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow5_success.hpl
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_appealing_violations_fz53_flow5_error.hpl
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Y
- Y
- N
-
-
- checkpoint_job_citizen_appealing_violations_fz53_delta.hpl
- Success delta_citizen_appealing_violations_fz53
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow1.hpl 2
- change_status_citizen_appealing_violations_fz53_flow1_success.hpl 2
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow1.hpl 2
- change_status_citizen_appealing_violations_fz53_flow1_error.hpl 2
- Y
- N
- N
-
-
- citizen_appealing_violations_fz53_flow2.hpl 2
- change_status_citizen_appealing_violations_fz53_flow2_success.hpl 2
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow2.hpl 2
- change_status_citizen_appealing_violations_fz53_flow2_error.hpl 2
- Y
- N
- N
-
-
- citizen_appealing_violations_fz53_flow3.hpl 2
- change_status_citizen_appealing_violations_fz53_flow3_success.hpl 2
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow3.hpl 2
- change_status_citizen_appealing_violations_fz53_flow3_error.hpl 2
- Y
- N
- N
-
-
- citizen_appealing_violations_fz53_flow4.hpl 2
- change_status_citizen_appealing_violations_fz53_flow4_success.hpl 2
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow4.hpl 2
- change_status_citizen_appealing_violations_fz53_flow4_error.hpl 2
- Y
- N
- N
-
-
- citizen_appealing_violations_fz53_flow5.hpl 2
- change_status_citizen_appealing_violations_fz53_flow5_success.hpl 2
- Y
- Y
- N
-
-
- citizen_appealing_violations_fz53_flow5.hpl 2
- change_status_citizen_appealing_violations_fz53_flow5_error.hpl 2
- Y
- N
- N
-
-
- change_status_citizen_appealing_violations_fz53_flow1_success.hpl 2
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow1_error.hpl 2
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow2_success.hpl 2
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow2_error.hpl 2
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow3_success.hpl 2
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow3_error.hpl 2
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow4_success.hpl 2
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow4_error.hpl 2
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow5_success.hpl 2
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_appealing_violations_fz53_flow5_error.hpl 2
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
- Y
- N
- Y
-
-
- checkpoint_job_citizen_appealing_violations_fz53.hpl 2
- Success citizen_appealing_violations_fz53 after error
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_appealing_violations_fz53_flow3.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_appealing_violations_fz53_flow2.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_appealing_violations_fz53_flow1.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_appealing_violations_fz53_flow4.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_appealing_violations_fz53_flow5.hpl 2
- Y
- Y
- N
-
-
-
-
- 251
- 232
- 201
- 90
- 58
- 14
- N
- 90
- 58
- 14
- N
- Segoe UI
- 9
- 72
- 1088
- 176
- 0001-01-01 00:00:00
-
-3001-01-01 00:00:00
-
- 114
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl
new file mode 100644
index 0000000..5ce3669
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl
@@ -0,0 +1,521 @@
+
+
+
+ citizen_appealing_violations_fz53_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 14:31:22.799
+ -
+ 2025/08/05 14:31:22.799
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Table output
+ Change job status on error
+ Y
+
+
+ Table input
+ Table output
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Table output
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1472
+ 832
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1472
+ 656
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1952
+ 512
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id)
+VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}');
+
+
+
+
+ 432
+ 656
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1696
+ 512
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1696
+ 608
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_appealing_violations_fz53_raw
+ is_appealing_violations_fz53
+ MAX
+
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+
+ grp
+
+
+ 832
+ 512
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 1024
+ 512
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.decision-document-service
+ N
+ SELECT
+ ad.recruit_id,
+ ad.create_date, -- дата создания обжалования
+ ad.appeal_number AS number_appealed, -- номер обжалуемого решения
+ ad.appeal_date AS date_appealed, -- дата обжалуемого решения
+ ad.result_number AS case_number, -- номер принятого решения
+ ad.result_date AS decision_date, -- дата принятия решения
+ CASE
+ WHEN ad.result = '1' THEN 'Удовлетворена'
+ WHEN ad.result = '2' THEN 'Частично удовлетворена'
+ WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
+ ELSE NULL
+ END AS result_appeal, -- код рассмотрения
+ ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
+ ad.reason_for_add_entry AS grounds, -- основание для внесения записи
+ ad.hidden,
+ CASE
+ WHEN ad.hidden is false THEN 1
+ ELSE 0
+ END AS is_appealing_violations_fz53
+FROM public.appeal_document_dto ad
+JOIN public.recruit r ON r.id = ad.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}' >= ad.create_date
+ --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
+--WHERE hidden IS FALSE
+
+${LIMIT_FW}
+ Y
+
+
+ 640
+ 656
+
+
+
+ Table output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ 1000
+ ervu-dashboard
+
+
+ recruit_id
+ recruit_id
+
+
+ create_date
+ create_date
+
+
+ number_appealed
+ number_appealed
+
+
+ date_appealed
+ date_appealed
+
+
+ case_number
+ case_number
+
+
+ decision_date
+ decision_date
+
+
+ result_appeal
+ result_appeal
+
+
+ name_commission
+ name_commission
+
+
+ grounds
+ grounds
+
+
+ hidden
+ hidden
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
citizen_appealing_violations_fz53
+ N
+ Y
+ N
+ Y
+
+
+ 832
+ 656
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_appealing_violations_fz53
+ has_appealing_violations_fz53
+
+
+ N
+ Y
+
+
+ 1472
+ 512
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_appealing_violations_fz53
+ has_appealing_violations_fz53_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1248
+ 512
+
+
+
+
+ Table output
+ Change job status on error
+ Y
+
+ error_description
+
+ error_code
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow1.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow1.hpl
deleted file mode 100644
index d1ca18f..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow1.hpl
+++ /dev/null
@@ -1,161 +0,0 @@
-
-
-
- citizen_appealing_violations_fz53_flow1
- Y
-
-
-
- Normal
- 0
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- ad.recruit_id,
- ad.create_date, -- дата создания обжалования
- ad.appeal_number AS number_appealed, -- номер обжалуемого решения
- ad.appeal_date AS date_appealed, -- дата обжалуемого решения
- ad.result_number AS case_number, -- номер принятого решения
- ad.result_date AS decision_date, -- дата принятия решения
- CASE
- WHEN ad.result = '1' THEN 'Удовлетворена'
- WHEN ad.result = '2' THEN 'Частично удовлетворена'
- WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
- ELSE NULL
- END AS result_appeal, -- код рассмотрения
- ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
- ad.reason_for_add_entry AS grounds, -- основание для внесения записи
- ad.hidden --has_appealing_violations_fz53
-FROM public.appeal_document_dto ad
-JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
---WHERE hidden IS FALSE
- Y
-
-
- 448
- 288
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
-
- =
- create_date
- create_date
-
-
- ervu_dashboard
-
-
- recruit_id
- recruit_id
- N
-
-
- create_date
- create_date
- N
-
-
- number_appealed
- number_appealed
- Y
-
-
- date_appealed
- date_appealed
- Y
-
-
- case_number
- case_number
- Y
-
-
- decision_date
- decision_date
- Y
-
-
- result_appeal
- result_appeal
- Y
-
-
- name_commission
- name_commission
- Y
-
-
- grounds
- grounds
- Y
-
-
- hidden
- hidden
- Y
-
-
- N
-
-
- 928
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- ad.recruit_id,
- ad.create_date, -- дата создания обжалования
- ad.appeal_number AS number_appealed, -- номер обжалуемого решения
- ad.appeal_date AS date_appealed, -- дата обжалуемого решения
- ad.result_number AS case_number, -- номер принятого решения
- ad.result_date AS decision_date, -- дата принятия решения
- CASE
- WHEN ad.result = '1' THEN 'Удовлетворена'
- WHEN ad.result = '2' THEN 'Частично удовлетворена'
- WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
- ELSE NULL
- END AS result_appeal, -- код рассмотрения
- ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
- ad.reason_for_add_entry AS grounds, -- основание для внесения записи
- ad.hidden --has_appealing_violations_fz53
-FROM public.appeal_document_dto ad
-JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
---WHERE hidden IS FALSE
- Y
-
-
- 512
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow3.hpl
deleted file mode 100644
index 8ce8203..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow3.hpl
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
- citizen_appealing_violations_fz53_flow3
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- create_date
- create_date
-
- ervu_dashboard
-
citizen_appealing_violations_fz53
-
- recruit_id
- recruit_id
- N
-
-
- create_date
- create_date
- N
-
-
- number_appealed
- number_appealed
- Y
-
-
- date_appealed
- date_appealed
- Y
-
-
- case_number
- case_number
- Y
-
-
- decision_date
- decision_date
- Y
-
-
- result_appeal
- result_appeal
- Y
-
-
- name_commission
- name_commission
- Y
-
-
- grounds
- grounds
- Y
-
-
- hidden
- hidden
- Y
-
-
- N
-
-
- 992
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- ad.recruit_id,
- ad.create_date, -- дата создания обжалования
- ad.appeal_number AS number_appealed, -- номер обжалуемого решения
- ad.appeal_date AS date_appealed, -- дата обжалуемого решения
- ad.result_number AS case_number, -- номер принятого решения
- ad.result_date AS decision_date, -- дата принятия решения
- CASE
- WHEN ad.result = '1' THEN 'Удовлетворена'
- WHEN ad.result = '2' THEN 'Частично удовлетворена'
- WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
- ELSE NULL
- END AS result_appeal, -- код рассмотрения
- ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
- ad.reason_for_add_entry AS grounds, -- основание для внесения записи
- ad.hidden --has_appealing_violations_fz53
-FROM public.appeal_document_dto ad
-JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
---WHERE hidden IS FALSE
- Y
-
-
- 576
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow4.hpl
deleted file mode 100644
index 1446dc1..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow4.hpl
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
- citizen_appealing_violations_fz53_flow4
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- create_date
- create_date
-
- ervu_dashboard
-
citizen_appealing_violations_fz53
-
- recruit_id
- recruit_id
- N
-
-
- create_date
- create_date
- N
-
-
- number_appealed
- number_appealed
- Y
-
-
- date_appealed
- date_appealed
- Y
-
-
- case_number
- case_number
- Y
-
-
- decision_date
- decision_date
- Y
-
-
- result_appeal
- result_appeal
- Y
-
-
- name_commission
- name_commission
- Y
-
-
- grounds
- grounds
- Y
-
-
- hidden
- hidden
- Y
-
-
- N
-
-
- 896
- 368
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- ad.recruit_id,
- ad.create_date, -- дата создания обжалования
- ad.appeal_number AS number_appealed, -- номер обжалуемого решения
- ad.appeal_date AS date_appealed, -- дата обжалуемого решения
- ad.result_number AS case_number, -- номер принятого решения
- ad.result_date AS decision_date, -- дата принятия решения
- CASE
- WHEN ad.result = '1' THEN 'Удовлетворена'
- WHEN ad.result = '2' THEN 'Частично удовлетворена'
- WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
- ELSE NULL
- END AS result_appeal, -- код рассмотрения
- ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
- ad.reason_for_add_entry AS grounds, -- основание для внесения записи
- ad.hidden --has_appealing_violations_fz53
-FROM public.appeal_document_dto ad
-JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
---WHERE hidden IS FALSE
- Y
-
-
- 480
- 368
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow5.hpl
deleted file mode 100644
index 5614a92..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow5.hpl
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
- citizen_appealing_violations_fz53_flow5
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- create_date
- create_date
-
- ervu_dashboard
-
citizen_appealing_violations_fz53
-
- recruit_id
- recruit_id
- N
-
-
- create_date
- create_date
- N
-
-
- number_appealed
- number_appealed
- Y
-
-
- date_appealed
- date_appealed
- Y
-
-
- case_number
- case_number
- Y
-
-
- decision_date
- decision_date
- Y
-
-
- result_appeal
- result_appeal
- Y
-
-
- name_commission
- name_commission
- Y
-
-
- grounds
- grounds
- Y
-
-
- hidden
- hidden
- Y
-
-
- N
-
-
- 1104
- 368
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- ad.recruit_id,
- ad.create_date, -- дата создания обжалования
- ad.appeal_number AS number_appealed, -- номер обжалуемого решения
- ad.appeal_date AS date_appealed, -- дата обжалуемого решения
- ad.result_number AS case_number, -- номер принятого решения
- ad.result_date AS decision_date, -- дата принятия решения
- CASE
- WHEN ad.result = '1' THEN 'Удовлетворена'
- WHEN ad.result = '2' THEN 'Частично удовлетворена'
- WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
- ELSE NULL
- END AS result_appeal, -- код рассмотрения
- ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
- ad.reason_for_add_entry AS grounds, -- основание для внесения записи
- ad.hidden --has_appealing_violations_fz53
-FROM public.appeal_document_dto ad
-JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
---WHERE hidden IS FALSE
- Y
-
-
- 688
- 368
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl
new file mode 100644
index 0000000..9dfa3ed
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl
@@ -0,0 +1,532 @@
+
+
+
+ citizen_appealing_violations_fz53_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:22:56.048
+ -
+ 2025/08/11 13:22:56.048
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1360
+ 384
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1360
+ 224
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1728
+ 144
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 336
+ 224
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1552
+ 64
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1472
+ 144
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_appealing_violations_fz53_raw
+ is_appealing_violations_fz53
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 720
+ 64
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 912
+ 64
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ =
+ create_date
+ create_date
+
+ ervu_dashboard
+
citizen_appealing_violations_fz53
+
+ recruit_id
+ recruit_id
+ N
+
+
+ create_date
+ create_date
+ N
+
+
+ number_appealed
+ number_appealed
+ Y
+
+
+ date_appealed
+ date_appealed
+ Y
+
+
+ case_number
+ case_number
+ Y
+
+
+ decision_date
+ decision_date
+ Y
+
+
+ result_appeal
+ result_appeal
+ Y
+
+
+ name_commission
+ name_commission
+ Y
+
+
+ grounds
+ grounds
+ Y
+
+
+ hidden
+ hidden
+ Y
+
+
+ N
+
+
+ 720
+ 224
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.decision-document-service
+ N
+ SELECT
+ ad.recruit_id,
+ ad.create_date, -- дата создания обжалования
+ ad.appeal_number AS number_appealed, -- номер обжалуемого решения
+ ad.appeal_date AS date_appealed, -- дата обжалуемого решения
+ ad.result_number AS case_number, -- номер принятого решения
+ ad.result_date AS decision_date, -- дата принятия решения
+ CASE
+ WHEN ad.result = '1' THEN 'Удовлетворена'
+ WHEN ad.result = '2' THEN 'Частично удовлетворена'
+ WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
+ ELSE NULL
+ END AS result_appeal, -- код рассмотрения
+ ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
+ ad.reason_for_add_entry AS grounds, -- основание для внесения записи
+ ad.hidden,
+ CASE
+ WHEN ad.hidden is false THEN 1
+ ELSE 0
+ END AS is_appealing_violations_fz53
+FROM public.appeal_document_dto ad
+JOIN public.recruit r ON r.id = ad.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}'
+ AND ad.create_date >= '${M_R_UP_DATE}'::timestamp
+ --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
+--WHERE hidden IS FALSE
+
+${LIMIT_FW}
+ Y
+
+
+ 544
+ 224
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_appealing_violations_fz53
+ has_appealing_violations_fz53
+
+
+ N
+ Y
+
+
+ 1360
+ 64
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_appealing_violations_fz53
+ has_appealing_violations_fz53_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1136
+ 64
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl
new file mode 100644
index 0000000..6bb6f26
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl
@@ -0,0 +1,547 @@
+
+
+
+ citizen_appealing_violations_fz53_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 13:25:52.319
+ -
+ 2025/08/08 13:25:52.319
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1328
+ 368
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1328
+ 208
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1792
+ 80
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (
+ id,
+ job_name,
+ status,
+ execution_datetime,
+ error_description,
+ recruitment_id
+)
+VALUES (
+ DEFAULT,
+ '${JOB_NAME}',
+ 'PROCESSING',
+ DEFAULT,
+ NULL,
+ '${IDM_ID}'
+)
+ON CONFLICT (job_name, recruitment_id)
+DO UPDATE SET
+ status = 'PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+
+
+
+ 272
+ 208
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1520
+ 80
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1536
+ 176
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_appealing_violations_fz53_raw
+ is_appealing_violations_fz53
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 688
+ 80
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 880
+ 80
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ =
+ create_date
+ create_date
+
+ ervu_dashboard
+
citizen_appealing_violations_fz53
+
+ recruit_id
+ recruit_id
+ N
+
+
+ create_date
+ create_date
+ N
+
+
+ number_appealed
+ number_appealed
+ Y
+
+
+ date_appealed
+ date_appealed
+ Y
+
+
+ case_number
+ case_number
+ Y
+
+
+ decision_date
+ decision_date
+ Y
+
+
+ result_appeal
+ result_appeal
+ Y
+
+
+ name_commission
+ name_commission
+ Y
+
+
+ grounds
+ grounds
+ Y
+
+
+ hidden
+ hidden
+ Y
+
+
+ N
+
+
+ 688
+ 208
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.decision-document-service
+ N
+ SELECT
+ ad.recruit_id,
+ ad.create_date, -- дата создания обжалования
+ ad.appeal_number AS number_appealed, -- номер обжалуемого решения
+ ad.appeal_date AS date_appealed, -- дата обжалуемого решения
+ ad.result_number AS case_number, -- номер принятого решения
+ ad.result_date AS decision_date, -- дата принятия решения
+ CASE
+ WHEN ad.result = '1' THEN 'Удовлетворена'
+ WHEN ad.result = '2' THEN 'Частично удовлетворена'
+ WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
+ ELSE NULL
+ END AS result_appeal, -- код рассмотрения
+ ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
+ ad.reason_for_add_entry AS grounds, -- основание для внесения записи
+ ad.hidden,
+ CASE
+ WHEN ad.hidden is false THEN 1
+ ELSE 0
+ END AS is_appealing_violations_fz53
+FROM public.appeal_document_dto ad
+JOIN public.recruit r ON r.id = ad.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}' >= ad.create_date
+ --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
+--WHERE hidden IS FALSE
+
+${LIMIT_FW}
+ Y
+
+
+ 480
+ 208
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
-
- recruit_id
- recruit_id
- N
-
-
- create_date
- create_date
- N
-
-
- number_appealed
- number_appealed
- Y
-
-
- date_appealed
- date_appealed
- Y
-
-
- case_number
- case_number
- Y
-
-
- decision_date
- decision_date
- Y
-
-
- result_appeal
- result_appeal
- Y
-
-
- name_commission
- name_commission
- Y
-
-
- grounds
- grounds
- Y
-
-
- hidden
- hidden
- Y
-
-
- N
-
-
- 976
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- ad.recruit_id,
- ad.create_date, -- дата создания обжалования
- ad.appeal_number AS number_appealed, -- номер обжалуемого решения
- ad.appeal_date AS date_appealed, -- дата обжалуемого решения
- ad.result_number AS case_number, -- номер принятого решения
- ad.result_date AS decision_date, -- дата принятия решения
- CASE
- WHEN ad.result = '1' THEN 'Удовлетворена'
- WHEN ad.result = '2' THEN 'Частично удовлетворена'
- WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
- ELSE NULL
- END AS result_appeal, -- код рассмотрения
- ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
- ad.reason_for_add_entry AS grounds, -- основание для внесения записи
- ad.hidden --has_appealing_violations_fz53
-FROM public.appeal_document_dto ad
-JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
---WHERE hidden IS FALSE
- Y
-
-
- 560
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow2.hpl
deleted file mode 100644
index 1c9afd1..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow2.hpl
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
- delta_citizen_appealing_violations_fz53_flow2
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- create_date
- create_date
-
- ervu_dashboard
-
citizen_appealing_violations_fz53
-
- recruit_id
- recruit_id
- N
-
-
- create_date
- create_date
- N
-
-
- number_appealed
- number_appealed
- Y
-
-
- date_appealed
- date_appealed
- Y
-
-
- case_number
- case_number
- Y
-
-
- decision_date
- decision_date
- Y
-
-
- result_appeal
- result_appeal
- Y
-
-
- name_commission
- name_commission
- Y
-
-
- grounds
- grounds
- Y
-
-
- hidden
- hidden
- Y
-
-
- N
-
-
- 1056
- 336
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- ad.recruit_id,
- ad.create_date, -- дата создания обжалования
- ad.appeal_number AS number_appealed, -- номер обжалуемого решения
- ad.appeal_date AS date_appealed, -- дата обжалуемого решения
- ad.result_number AS case_number, -- номер принятого решения
- ad.result_date AS decision_date, -- дата принятия решения
- CASE
- WHEN ad.result = '1' THEN 'Удовлетворена'
- WHEN ad.result = '2' THEN 'Частично удовлетворена'
- WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
- ELSE NULL
- END AS result_appeal, -- код рассмотрения
- ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
- ad.reason_for_add_entry AS grounds, -- основание для внесения записи
- ad.hidden --has_appealing_violations_fz53
-FROM public.appeal_document_dto ad
-JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
---WHERE hidden IS FALSE
- Y
-
-
- 640
- 336
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow3.hpl
deleted file mode 100644
index 648df28..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow3.hpl
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
- delta_citizen_appealing_violations_fz53_flow3
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- create_date
- create_date
-
- ervu_dashboard
-
citizen_appealing_violations_fz53
-
- recruit_id
- recruit_id
- N
-
-
- create_date
- create_date
- N
-
-
- number_appealed
- number_appealed
- Y
-
-
- date_appealed
- date_appealed
- Y
-
-
- case_number
- case_number
- Y
-
-
- decision_date
- decision_date
- Y
-
-
- result_appeal
- result_appeal
- Y
-
-
- name_commission
- name_commission
- Y
-
-
- grounds
- grounds
- Y
-
-
- hidden
- hidden
- Y
-
-
- N
-
-
- 1120
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- ad.recruit_id,
- ad.create_date, -- дата создания обжалования
- ad.appeal_number AS number_appealed, -- номер обжалуемого решения
- ad.appeal_date AS date_appealed, -- дата обжалуемого решения
- ad.result_number AS case_number, -- номер принятого решения
- ad.result_date AS decision_date, -- дата принятия решения
- CASE
- WHEN ad.result = '1' THEN 'Удовлетворена'
- WHEN ad.result = '2' THEN 'Частично удовлетворена'
- WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
- ELSE NULL
- END AS result_appeal, -- код рассмотрения
- ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
- ad.reason_for_add_entry AS grounds, -- основание для внесения записи
- ad.hidden --has_appealing_violations_fz53
-FROM public.appeal_document_dto ad
-JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
---WHERE hidden IS FALSE
- Y
-
-
- 704
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow4.hpl
deleted file mode 100644
index 7eef578..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow4.hpl
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
- delta_citizen_appealing_violations_fz53_flow4
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- create_date
- create_date
-
- ervu_dashboard
-
citizen_appealing_violations_fz53
-
- recruit_id
- recruit_id
- N
-
-
- create_date
- create_date
- N
-
-
- number_appealed
- number_appealed
- Y
-
-
- date_appealed
- date_appealed
- Y
-
-
- case_number
- case_number
- Y
-
-
- decision_date
- decision_date
- Y
-
-
- result_appeal
- result_appeal
- Y
-
-
- name_commission
- name_commission
- Y
-
-
- grounds
- grounds
- Y
-
-
- hidden
- hidden
- Y
-
-
- N
-
-
- 1056
- 368
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- ad.recruit_id,
- ad.create_date, -- дата создания обжалования
- ad.appeal_number AS number_appealed, -- номер обжалуемого решения
- ad.appeal_date AS date_appealed, -- дата обжалуемого решения
- ad.result_number AS case_number, -- номер принятого решения
- ad.result_date AS decision_date, -- дата принятия решения
- CASE
- WHEN ad.result = '1' THEN 'Удовлетворена'
- WHEN ad.result = '2' THEN 'Частично удовлетворена'
- WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
- ELSE NULL
- END AS result_appeal, -- код рассмотрения
- ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
- ad.reason_for_add_entry AS grounds, -- основание для внесения записи
- ad.hidden --has_appealing_violations_fz53
-FROM public.appeal_document_dto ad
-JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
---WHERE hidden IS FALSE
- Y
-
-
- 640
- 368
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow5.hpl
deleted file mode 100644
index 950b9b0..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/delta_citizen_appealing_violations_fz53_flow5.hpl
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
- delta_citizen_appealing_violations_fz53_flow5
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- create_date
- create_date
-
- ervu_dashboard
-
citizen_appealing_violations_fz53
-
- recruit_id
- recruit_id
- N
-
-
- create_date
- create_date
- N
-
-
- number_appealed
- number_appealed
- Y
-
-
- date_appealed
- date_appealed
- Y
-
-
- case_number
- case_number
- Y
-
-
- decision_date
- decision_date
- Y
-
-
- result_appeal
- result_appeal
- Y
-
-
- name_commission
- name_commission
- Y
-
-
- grounds
- grounds
- Y
-
-
- hidden
- hidden
- Y
-
-
- N
-
-
- 1008
- 320
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- ad.recruit_id,
- ad.create_date, -- дата создания обжалования
- ad.appeal_number AS number_appealed, -- номер обжалуемого решения
- ad.appeal_date AS date_appealed, -- дата обжалуемого решения
- ad.result_number AS case_number, -- номер принятого решения
- ad.result_date AS decision_date, -- дата принятия решения
- CASE
- WHEN ad.result = '1' THEN 'Удовлетворена'
- WHEN ad.result = '2' THEN 'Частично удовлетворена'
- WHEN ad.result = '3' THEN 'Отказано в удовлетворении'
- ELSE NULL
- END AS result_appeal, -- код рассмотрения
- ad.commission_name AS name_commission, -- наименование комиссии, принявшей решение
- ad.reason_for_add_entry AS grounds, -- основание для внесения записи
- ad.hidden --has_appealing_violations_fz53
-FROM public.appeal_document_dto ad
-JOIN public.recruit r ON r.id = ad.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(ad.updated_at, ad.created_at) -- для дельты
---WHERE hidden IS FALSE
- Y
-
-
- 592
- 320
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_delta.hpl
new file mode 100644
index 0000000..9a671d9
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_delta.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:16:11.204
+ -
+ 2025/08/11 13:16:11.204
+
+
+
+
+
+ Table input
+ citizen_appealing_violations_fz53_flow_delta.hpl
+ Y
+
+
+ Table input
+ citizen_appealing_violations_fz53_flow_delta.hpl 2
+ Y
+
+
+ Table input
+ citizen_appealing_violations_fz53_flow_delta.hpl 3
+ Y
+
+
+ Table input
+ citizen_appealing_violations_fz53_flow_delta.hpl 4
+ Y
+
+
+ Table input
+ citizen_appealing_violations_fz53_flow_delta.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_appealing_violations_fz53_job'
+where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');
+ N
+
+
+ 352
+ 288
+
+
+
+ citizen_appealing_violations_fz53_flow_delta.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 128
+
+
+
+ citizen_appealing_violations_fz53_flow_delta.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 208
+
+
+
+ citizen_appealing_violations_fz53_flow_delta.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 288
+
+
+
+ citizen_appealing_violations_fz53_flow_delta.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 368
+
+
+
+ citizen_appealing_violations_fz53_flow_delta.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 448
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_on_error.hpl
new file mode 100644
index 0000000..edb6fa2
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_five_flow_on_error.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_on_error
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 12:54:50.126
+ -
+ 2025/08/05 12:54:50.126
+
+
+
+
+
+ Table input
+ citizen_appealing_violations_fz53_flow_repeat.hpl
+ Y
+
+
+ Table input
+ citizen_appealing_violations_fz53_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ citizen_appealing_violations_fz53_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ citizen_appealing_violations_fz53_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ citizen_appealing_violations_fz53_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_appealing_violations_fz53_job'
+where je.status is null or je.status in('ERROR', 'PROCESSING');
+ N
+
+
+ 272
+ 368
+
+
+
+ citizen_appealing_violations_fz53_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 608
+ 208
+
+
+
+ citizen_appealing_violations_fz53_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 608
+ 288
+
+
+
+ citizen_appealing_violations_fz53_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 608
+ 368
+
+
+
+ citizen_appealing_violations_fz53_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 608
+ 448
+
+
+
+ citizen_appealing_violations_fz53_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 608
+ 528
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_rows_five_flow_if_error.hpl
deleted file mode 100644
index 4b469b9..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitment_rows_five_flow_if_error.hpl
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-
- recruitment_rows_five_flow_if_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/23 14:28:22.572
- -
- 2025/05/23 14:28:22.572
-
-
-
-
-
- Table input
- Copy rows to result
- Y
-
-
-
- Copy rows to result
- RowsToResult
-
- Y
-
- 1
-
- none
-
-
-
-
- 880
- 288
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-fr_check AS (
- SELECT
- last_recruitment_id AS recruitment_id,
- recruitment_created_date,
- status,
- job_name
- FROM public.etl_checkpoints
- WHERE status = 'ERROR' AND job_name IN ('citizen_appealing_violations_fz53_flow1', 'citizen_appealing_violations_fz53_flow2', 'citizen_appealing_violations_fz53_flow3', 'citizen_appealing_violations_fz53_flow4', 'citizen_appealing_violations_fz53_flow5')
-),
-ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num,
- ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position
- FROM ordered
-),
-pivoted AS (
- SELECT
- position,
- MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow1') THEN created_at END) AS cr_flow1,
- MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow1') THEN idm_id::text END) AS idm_flow1,
- MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow2') THEN created_at END) AS cr_flow2,
- MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow2') THEN idm_id::text END) AS idm_flow2,
- MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow3') THEN created_at END) AS cr_flow3,
- MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow3') THEN idm_id::text END) AS idm_flow3,
- MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow4') THEN created_at END) AS cr_flow4,
- MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow4') THEN idm_id::text END) AS idm_flow4,
- MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow5') THEN created_at END) AS cr_flow5,
- MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_appealing_violations_fz53_flow5') THEN idm_id::text END) AS idm_flow5
- FROM splitted
- GROUP BY position
-),
-remains as (
- SELECT
- position,
- cr_flow1,
- idm_flow1::uuid,
- cr_flow2,
- idm_flow2::uuid,
- cr_flow3,
- idm_flow3::uuid,
- cr_flow4,
- idm_flow4::uuid,
- cr_flow5,
- idm_flow5::uuid
- FROM pivoted
- WHERE (cr_flow1 IS NOT NULL AND idm_flow1 IS NOT NULL)
- OR (cr_flow2 IS NOT NULL AND idm_flow2 IS NOT NULL)
- OR (cr_flow3 IS NOT NULL AND idm_flow3 IS NOT NULL)
- OR (cr_flow4 IS NOT NULL AND idm_flow4 IS NOT NULL)
- OR (cr_flow5 IS NOT NULL AND idm_flow5 IS NOT NULL)
- order by position
-),
-idm1 as (
- select
- cr_flow1,
- idm_flow1
- from remains
- where cr_flow1 is not null and idm_flow1 is not null
-),
-idm2 as (
- select
- cr_flow2,
- idm_flow2
- from remains
- where cr_flow2 is not null and idm_flow2 is not null
-),
-idm3 as (
- select
- cr_flow3,
- idm_flow3
- from remains
- where cr_flow3 is not null and idm_flow3 is not null
-),
-idm4 as (
- select
- cr_flow4,
- idm_flow4
- from remains
- where cr_flow4 is not null and idm_flow4 is not null
-),
-idm5 as (
- select
- cr_flow5,
- idm_flow5
- from remains
- where cr_flow5 is not null and idm_flow5 is not null
-)
-select
- i1.*,
- i2.*,
- i3.*,
- i4.*,
- i5.*
-FROM
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn
-ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn)
-limit 2
- N
-
-
- 512
- 288
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitments_five_flow.hpl
new file mode 100644
index 0000000..6efa85b
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_appealing_violations_fz53/recruitments_five_flow.hpl
@@ -0,0 +1,373 @@
+
+
+
+ recruitments_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/04/18 09:48:01.970
+ -
+ 2025/04/18 09:48:01.970
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ citizen_appealing_violations_fz53_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_appealing_violations_fz53_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_appealing_violations_fz53_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_appealing_violations_fz53_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_appealing_violations_fz53_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+idm_id AS recruitment
+FROM ervu_dashboard.recruitment
+${COMMENT}/*
+where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a',
+'cff66da8-2be0-4839-bd8e-332b1a150031',
+'34c8685e-f08a-4877-afb1-a0589800a21c',
+'0e10678c-f272-41c3-94dd-c15830321f9a',
+'9703f108-761a-467a-aad3-89617e5539ed',
+'55eae374-9bb5-4295-9e3a-5fbcdaba870d',
+'dad6c101-34be-45c3-8173-57190cb69dfb',
+'fc10523f-af31-4f6b-b0e2-00799758f634',
+'61807cc2-9913-4060-8802-0672877c28c8',
+'eba7fd7d-e3da-49a7-8e65-8fc85e47190e',
+'f59afe6d-c166-4196-a489-6d17f02fc05e',
+'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9',
+'0fe2bdf0-afbb-402d-93da-67e511799afa',
+'6139de3b-2378-496f-9fca-7df7dab90832',
+'50ba73dd-1726-48f1-8b7c-7a77ff965299')
+${COMMENT}*/
+ Y
+
+
+ 432
+ 304
+
+
+
+ citizen_appealing_violations_fz53_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 784
+ 144
+
+
+
+ citizen_appealing_violations_fz53_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 784
+ 224
+
+
+
+ citizen_appealing_violations_fz53_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 784
+ 304
+
+
+
+ citizen_appealing_violations_fz53_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 784
+ 384
+
+
+
+ citizen_appealing_violations_fz53_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_appealing_violations_fz53/parallel/citizen_appealing_violations_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_appealing_violations_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 784
+ 464
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53.hpl
deleted file mode 100644
index e077078..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53.hpl
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
- branching_citizen_criminal_liability_fz53
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1056
- 256
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- select
- status as STATUS,
- job_name AS PIPELINE
-from public.etl_checkpoints
-where job_name = 'job_citizen_criminal_liability_fz53'
- N
-
-
- 816
- 256
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1280
- 256
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53_delta.hpl
deleted file mode 100644
index 4402413..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53_delta.hpl
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- branching_citizen_criminal_liability_fz53_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1056
- 256
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- COALESCE(job_name, 'job_citizen_criminal_liability_fz53_delta') AS PIPELINE,
- COALESCE(status, 'ERROR') AS STATUS,
- current_timestamp::timestamp as record_created
-FROM (
- select
- CASE
- WHEN status = 'PROCESSING' THEN 'ERROR'
- ELSE status
- END AS status,
- job_name
- from public.etl_checkpoints
- where job_name = 'job_citizen_criminal_liability_fz53_delta'
-
- UNION ALL
-
- SELECT NULL, NULL
- WHERE NOT EXISTS (
- SELECT 1
- FROM public.etl_checkpoints
- WHERE job_name = 'job_citizen_criminal_liability_fz53_delta'
- )
-) t
- N
-
-
- 816
- 256
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1280
- 256
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/check_if_need_to_repeat_job.hpl
new file mode 100644
index 0000000..9698cd9
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/check_if_need_to_repeat_job.hpl
@@ -0,0 +1,86 @@
+
+
+
+ check_if_need_to_repeat_job
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 12:27:51.630
+ -
+ 2025/08/08 12:27:51.630
+
+
+
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ need_to_repeat_job
+ NEED_TO_REPEAT_JOB
+ ROOT_WORKFLOW
+
+
+ Y
+
+
+ 624
+ 288
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (SELECT 1
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_criminal_liability_fz53_job'
+where je.status is null or je.status in ('ERROR', 'PROCESSING')
+limit 1
+) as need_to_repeat_job;
+ N
+
+
+ 336
+ 288
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_error.hpl
deleted file mode 100644
index 4095df7..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_error.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_citizen_criminal_liability_fz53_flow1_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'citizen_criminal_liability_fz53_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_success.hpl
deleted file mode 100644
index 3ef1f41..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_success.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_citizen_criminal_liability_fz53_flow1_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'citizen_criminal_liability_fz53_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_error.hpl
deleted file mode 100644
index e729ca5..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_error.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_citizen_criminal_liability_fz53_flow2_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_criminal_liability_fz53_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_success.hpl
deleted file mode 100644
index 896e5f7..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_success.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_citizen_criminal_liability_fz53_flow2_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_criminal_liability_fz53_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_error.hpl
deleted file mode 100644
index 63d1db3..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_error.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_citizen_criminal_liability_fz53_flow3_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_criminal_liability_fz53_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_success.hpl
deleted file mode 100644
index cdaf266..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_success.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_citizen_criminal_liability_fz53_flow3_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_criminal_liability_fz53_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_error.hpl
deleted file mode 100644
index 0d74917..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_criminal_liability_fz53_flow4_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_criminal_liability_fz53_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_success.hpl
deleted file mode 100644
index 1c4519b..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_criminal_liability_fz53_flow4_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_criminal_liability_fz53_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_error.hpl
deleted file mode 100644
index bf0f099..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_criminal_liability_fz53_flow5_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_criminal_liability_fz53_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_success.hpl
deleted file mode 100644
index c7e8c88..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_criminal_liability_fz53_flow5_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_criminal_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_criminal_liability_fz53_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl
deleted file mode 100644
index 748f1fd..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow1_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_criminal_liability_fz53_flow1' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl
deleted file mode 100644
index 3985742..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow1_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_criminal_liability_fz53_flow1' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl
deleted file mode 100644
index d3a3687..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow2_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_criminal_liability_fz53_flow2' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl
deleted file mode 100644
index c729385..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow2_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_criminal_liability_fz53_flow2' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl
deleted file mode 100644
index 0baf42b..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow3_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_criminal_liability_fz53_flow3' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl
deleted file mode 100644
index 0cfddb3..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow3_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_criminal_liability_fz53_flow3' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl
deleted file mode 100644
index edaee70..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow4_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_criminal_liability_fz53_flow4' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl
deleted file mode 100644
index c3ad66d..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow4_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_criminal_liability_fz53_flow4' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl
deleted file mode 100644
index db5a6de..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow5_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_criminal_liability_fz53_flow5' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl
deleted file mode 100644
index e773802..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow5_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_criminal_liability_fz53_flow5' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing.hpl
deleted file mode 100644
index e422b79..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing.hpl
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- change_status_to_processing
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/11 16:14:31.162
- -
- 2025/06/11 16:14:31.162
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 784
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'PROCESSING' AS status,
- 'job_citizen_criminal_liability_fz53' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_criminal_liability_fz53_flow1' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_criminal_liability_fz53_flow2' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_criminal_liability_fz53_flow3' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_criminal_liability_fz53_flow4' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_criminal_liability_fz53_flow5' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 368
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing_delta.hpl
deleted file mode 100644
index 9aea55f..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing_delta.hpl
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
- change_status_to_processing_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 13:42:26.494
- -
- 2025/06/16 13:42:26.494
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1248
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'PROCESSING' AS status,
- 'delta_citizen_criminal_liability_fz53' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 832
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_job_snils_inn_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_citizen_criminal_liability_fz53_job_exists.hpl
similarity index 70%
rename from mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_job_snils_inn_exists.hpl
rename to mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_citizen_criminal_liability_fz53_job_exists.hpl
index 8d7a204..a2002ee 100644
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_job_snils_inn_exists.hpl
+++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_citizen_criminal_liability_fz53_job_exists.hpl
@@ -1,7 +1,7 @@
- check_if_job_snils_inn_exists
+ check_if_citizen_criminal_liability_fz53_job_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_snils_inn') AS job_name,
- COALESCE(status, 'NEW') AS status,
- current_timestamp::timestamp as record_created
-FROM (
- SELECT job_name, status
- FROM public.etl_checkpoints
- WHERE job_name = 'job_snils_inn'
-
- UNION ALL
-
- SELECT NULL, NULL
- WHERE NOT EXISTS (
- SELECT 1
- FROM public.etl_checkpoints
- WHERE job_name = 'job_snils_inn'
- )
-) t
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'citizen_criminal_liability_fz53_job'
+ limit 1
+ ) AS job_executed_flag;N
- 400
- 352
+ 384
+ 336
@@ -120,8 +103,8 @@ FROM (
${STATUS}
- 960
- 240
+ 944
+ 224
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_job_citizen_criminal_liability_fz53_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_job_citizen_criminal_liability_fz53_exists.hpl
deleted file mode 100644
index c8d9198..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_job_citizen_criminal_liability_fz53_exists.hpl
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
- check_if_job_citizen_criminal_liability_fz53_exists
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/11 15:20:18.267
- -
- 2025/06/11 15:20:18.267
-
-
-
-
-
- Table input
- Set variables
- Y
-
-
- Set variables
- Write to log
- N
-
-
-
- Set variables
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- job_name
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 688
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- COALESCE(job_name, 'job_citizen_criminal_liability_fz53') AS job_name,
- COALESCE(status, 'NEW') AS status,
- current_timestamp::timestamp as record_created
-FROM (
- SELECT job_name, status
- FROM public.etl_checkpoints
- WHERE job_name = 'job_citizen_criminal_liability_fz53'
-
- UNION ALL
-
- SELECT NULL, NULL
- WHERE NOT EXISTS (
- SELECT 1
- FROM public.etl_checkpoints
- WHERE job_name = 'job_citizen_criminal_liability_fz53'
- )
-) t
- N
-
-
- 400
- 352
-
-
-
- Write to log
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- N
- 0
- Basic
- ${STATUS}
-
-
- 960
- 240
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_citizen_criminal_liability_fz53_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_citizen_criminal_liability_fz53_error.hpl
deleted file mode 100644
index 6dec012..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_citizen_criminal_liability_fz53_error.hpl
+++ /dev/null
@@ -1,273 +0,0 @@
-
-
-
- checkpoint_citizen_criminal_liability_fz53_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 10:01:04.895
- -
- 2025/06/09 10:01:04.895
-
-
-
-
-
- Select values
- Table output
- N
-
-
- Table input
- Select values
- N
-
-
- Table input
- Table output
- Y
-
-
-
- Select values
- SelectValues
-
- Y
-
- 1
-
- none
-
-
-
- N
-
- idm_id
- idm_id
- String
- -2
- -2
-
- false
-
-
- false
-
-
-
-
-
-
-
-
-
- 1008
- 608
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'job_child_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-)
-select * from for_checkpoints
- N
-
-
- 736
- 448
-
-
-
- Table output
- TableOutput
-
- Y
-
- 1
-
- none
-
-
- 1000
- ervu-dashboard
-
-
- N
- N
- N
- N
- Y
- N
- public
- N
-
etl_checkpoints
- N
- Y
- N
- Y
-
-
- 1248
- 448
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl
deleted file mode 100644
index dd178f2..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_citizen_criminal_liability_fz53
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 14:19:02.590
- -
- 2025/06/03 14:19:02.590
-
-
-
-
-
- Filter rows
- Abort
- N
-
-
- JSON input state_child_flow1.json
- Filter rows
- N
-
-
- JSON input state_child_flow2.json
- Filter rows
- N
-
-
- JSON input state_child_flow3.json
- Filter rows
- N
-
-
- JSON input state_child_flow4.json
- Filter rows
- N
-
-
- JSON input state_child_flow5.json
- Filter rows
- N
-
-
- Table input
- Insert / update
- Y
-
-
- Dummy (do nothing)
- JSON input state_child_flow1.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow2.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow3.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow4.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow5.json
- N
-
-
-
- Abort
- Abort
-
- Y
-
- 1
-
- none
-
-
- ABORT_WITH_ERROR
- Y
- 0
-
-
- 1264
- 592
-
-
-
- Dummy (do nothing)
- Dummy
-
- Y
-
- 1
-
- none
-
-
-
-
- 352
- 592
-
-
-
- Filter rows
- FilterRows
-
- Y
-
- 1
-
- none
-
-
-
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow1
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow2
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow3
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow4
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow5
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- Abort
-
-
- 944
- 592
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1264
- 208
-
-
-
- JSON input state_child_flow1.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 432
-
-
-
- JSON input state_child_flow2.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 512
-
-
-
- JSON input state_child_flow3.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 592
-
-
-
- JSON input state_child_flow4.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 672
-
-
-
- JSON input state_child_flow5.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 752
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH status_check AS (
- SELECT
- bool_or(status = 'ERROR' AND job_name IN (
- 'citizen_criminal_liability_fz53_flow1',
- 'citizen_criminal_liability_fz53_flow2',
- 'citizen_criminal_liability_fz53_flow3',
- 'citizen_criminal_liability_fz53_flow4',
- 'citizen_criminal_liability_fz53_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'citizen_criminal_liability_fz53_flow1',
- 'citizen_criminal_liability_fz53_flow2',
- 'citizen_criminal_liability_fz53_flow3',
- 'citizen_criminal_liability_fz53_flow4',
- 'citizen_criminal_liability_fz53_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_citizen_criminal_liability_fz53' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 896
- 208
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
deleted file mode 100644
index 658a967..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_citizen_criminal_liability_fz53_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 14:19:02.590
- -
- 2025/06/03 14:19:02.590
-
-
-
-
-
- Filter rows
- Abort
- N
-
-
- JSON input state_child_flow1.json
- Filter rows
- N
-
-
- JSON input state_child_flow2.json
- Filter rows
- N
-
-
- JSON input state_child_flow3.json
- Filter rows
- N
-
-
- JSON input state_child_flow4.json
- Filter rows
- N
-
-
- JSON input state_child_flow5.json
- Filter rows
- N
-
-
- Table input
- Insert / update
- Y
-
-
- Dummy (do nothing)
- JSON input state_child_flow1.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow2.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow3.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow4.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow5.json
- N
-
-
-
- Abort
- Abort
-
- Y
-
- 1
-
- none
-
-
- ABORT_WITH_ERROR
- Y
- 0
-
-
- 1264
- 592
-
-
-
- Dummy (do nothing)
- Dummy
-
- Y
-
- 1
-
- none
-
-
-
-
- 352
- 592
-
-
-
- Filter rows
- FilterRows
-
- Y
-
- 1
-
- none
-
-
-
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow1
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow2
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow3
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow4
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow5
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- Abort
-
-
- 944
- 592
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1264
- 208
-
-
-
- JSON input state_child_flow1.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 432
-
-
-
- JSON input state_child_flow2.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 512
-
-
-
- JSON input state_child_flow3.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 592
-
-
-
- JSON input state_child_flow4.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 672
-
-
-
- JSON input state_child_flow5.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 752
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH status_check AS (
- SELECT
- bool_or(status = 'ERROR' AND job_name IN (
- 'delta_citizen_criminal_liability_fz53_flow1',
- 'delta_citizen_criminal_liability_fz53_flow2',
- 'delta_citizen_criminal_liability_fz53_flow3',
- 'delta_citizen_criminal_liability_fz53_flow4',
- 'delta_citizen_criminal_liability_fz53_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'delta_citizen_criminal_liability_fz53_flow1',
- 'delta_citizen_criminal_liability_fz53_flow2',
- 'delta_citizen_criminal_liability_fz53_flow3',
- 'delta_citizen_criminal_liability_fz53_flow4',
- 'delta_citizen_criminal_liability_fz53_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_citizen_criminal_liability_fz53_delta' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 896
- 208
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/citizen_criminal_liability_fz53_job.hwf b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/citizen_criminal_liability_fz53_job.hwf
new file mode 100644
index 0000000..e08a136
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/citizen_criminal_liability_fz53_job.hwf
@@ -0,0 +1,358 @@
+
+
+ citizen_criminal_liability_fz53_job
+ Y
+
+
+
+ 0
+ -
+ 2025/08/05 12:45:28.561
+ -
+ 2025/08/05 12:45:28.561
+
+
+ COMMENT
+
+
+
+
+ LIMIT_FW
+ ;
+
+
+
+ M_R_CR_DATE
+ 3001-01-01 00:00:00
+
+
+
+ M_R_UP_DATE
+ 0001-01-01 00:00:00
+
+
+
+
+
+ Start
+
+ SPECIAL
+
+ 1
+ 12
+ 60
+ 0
+ 0
+ N
+ 0
+ 1
+ N
+ 160
+ 304
+
+
+
+ check_if_citizen_criminal_liability_fz53_job_exists.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_citizen_criminal_liability_fz53_job_exists.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 416
+ 304
+
+
+
+ citizen_criminal_liability_fz53_job_exists_check
+
+ SIMPLE_EVAL
+
+ boolean
+ false
+ equal
+ equal
+ N
+ variable
+ JOB_EXECUTED_FLAG
+ N
+ 784
+ 304
+
+
+
+ recruitments_five_flow.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitments_five_flow.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ Y
+ 1104
+ 304
+
+
+
+ recruitment_five_flow_on_error.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_on_error.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 1104
+ 608
+
+
+
+ check_if_need_to_repeat_job.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/check_if_need_to_repeat_job.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 784
+ 464
+
+
+
+ Simple evaluation
+
+ SIMPLE_EVAL
+
+ boolean
+ true
+ equal
+ equal
+ N
+ variable
+ NEED_TO_REPEAT_JOB
+ N
+ 784
+ 608
+
+
+
+ recruitment_five_flow_delta.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_delta.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 784
+ 800
+
+
+
+
+
+ Start
+ check_if_citizen_criminal_liability_fz53_job_exists.hpl
+ Y
+ Y
+ Y
+
+
+ check_if_citizen_criminal_liability_fz53_job_exists.hpl
+ citizen_criminal_liability_fz53_job_exists_check
+ Y
+ Y
+ N
+
+
+ citizen_criminal_liability_fz53_job_exists_check
+ recruitments_five_flow.hpl
+ Y
+ Y
+ N
+
+
+ citizen_criminal_liability_fz53_job_exists_check
+ check_if_need_to_repeat_job.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat_job.hpl
+ Simple evaluation
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_on_error.hpl
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_delta.hpl
+ Y
+ N
+ N
+
+
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 896
+ 256
+ Первичка
+ 65
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 896
+ 560
+ Повторка
+ 64
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 704
+ 720
+ Дельта
+ 49
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ Segoe UI
+ 9
+ 150
+ 1200
+ 80
+ citizen_criminal_liability_fz53_job
+
+M_R_UP_DATE
+
+M_R_CR_DATE
+
+0001-01-01 00:00:00
+
+3001-01-01 00:00:00
+ 184
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/job_citizen_criminal_liability_fz53.hwf b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/job_citizen_criminal_liability_fz53.hwf
deleted file mode 100644
index 05ee576..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/job_citizen_criminal_liability_fz53.hwf
+++ /dev/null
@@ -1,2482 +0,0 @@
-
-
- job_citizen_criminal_liability_fz53
- Y
-
-
-
- 0
- -
- 2025/06/05 14:27:15.055
- -
- 2025/06/05 14:27:15.055
-
-
- M_R_CR_DATE
- 3001-01-01 00:00:00
-
-
-
- M_R_UP_DATE
-
-
-
-
-
-
- Start
-
- SPECIAL
-
- 1
- 12
- 60
- 0
- 0
- N
- 0
- 1
- N
- 96
- 400
-
-
-
- checkpoint_job_citizen_criminal_liability_fz53.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1136
- 1280
-
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2352
- 400
-
-
-
- citizen_criminal_liability_fz53_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2736
- 80
-
-
-
- citizen_criminal_liability_fz53_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2736
- 240
-
-
-
- citizen_criminal_liability_fz53_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2736
- 400
-
-
-
- citizen_criminal_liability_fz53_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2736
- 560
-
-
-
- citizen_criminal_liability_fz53_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2736
- 720
-
-
-
- Abort workflow
-
- ABORT
-
- N
- N
- 2336
- 208
-
-
-
- Success new citizen_criminal_liability_fz53
-
- SUCCESS
-
- N
- 3920
- 432
-
-
-
- branching_citizen_criminal_liability_fz53.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1584
- 1280
-
-
-
- Simple citizen_criminal_liability_fz53 WHERE SUCCESS
-
- SIMPLE_EVAL
-
- SUCCESS
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1632
- 1680
-
-
-
- Simple citizen_criminal_liability_fz53 WHERE ERROR
-
- SIMPLE_EVAL
-
- ERROR
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1984
- 1280
-
-
-
- recruitment_rows_five_flow_if_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_rows_five_flow_if_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2384
- 1280
-
-
-
- Abort workflow 2
-
- ABORT
-
- N
- N
- 2288
- 1040
-
-
-
- delta_citizen_criminal_liability_fz53_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow1.hpl
-
-
- Basic
-
-
- M_R_UP_DATE
-
- ${M_R_UP_DATE}
-
-
- ID_F1
- IDM_FLOW1
-
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2912
- 1792
-
-
-
- check_if_job_citizen_criminal_liability_fz53_exists.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/check_if_job_citizen_criminal_liability_fz53_exists.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 448
- 400
-
-
-
- Simple job_citizen_criminal_liability_fz53_exists check NEW
-
- SIMPLE_EVAL
-
- NEW
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 896
- 400
-
-
-
- change_status_to_processing.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2368
- 560
-
-
-
- change_status_citizen_criminal_liability_fz53_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 80
-
-
-
- change_status_citizen_criminal_liability_fz53_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 160
-
-
-
- change_status_citizen_criminal_liability_fz53_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 240
-
-
-
- change_status_citizen_criminal_liability_fz53_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 320
-
-
-
- change_status_citizen_criminal_liability_fz53_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 400
-
-
-
- change_status_citizen_criminal_liability_fz53_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 480
-
-
-
- change_status_citizen_criminal_liability_fz53_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 560
-
-
-
- change_status_citizen_criminal_liability_fz53_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 640
-
-
-
- change_status_citizen_criminal_liability_fz53_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 720
-
-
-
- change_status_citizen_criminal_liability_fz53_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 800
-
-
-
- checkpoint_job_citizen_criminal_liability_fz53.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3600
- 432
-
-
-
- change_status_to_processing.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2304
- 1440
-
-
-
- change_status_to_processing_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_to_processing_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2480
- 2304
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3344
- 1792
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3344
- 1872
-
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2480
- 2112
-
-
-
- Abort workflow 2 2
-
- ABORT
-
- N
- N
- 2432
- 1952
-
-
-
- delta_citizen_criminal_liability_fz53_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow2.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2912
- 1952
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3344
- 1952
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3344
- 2032
-
-
-
- delta_citizen_criminal_liability_fz53_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow3.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2912
- 2112
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3344
- 2112
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3344
- 2192
-
-
-
- delta_citizen_criminal_liability_fz53_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow4.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2912
- 2272
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3344
- 2272
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3344
- 2352
-
-
-
- delta_citizen_criminal_liability_fz53_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow5.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2912
- 2432
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3344
- 2432
-
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3344
- 2512
-
-
-
- branching_citizen_criminal_liability_fz53_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/branching_citizen_criminal_liability_fz53_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1632
- 2112
-
-
-
- Simple delta_citizen_criminal_liability_fz53 WHERE ERROR
-
- SIMPLE_EVAL
-
- ERROR
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 2032
- 2112
-
-
-
- delta_citizen_criminal_liability_fz53 success
-
- SUCCESS
-
- N
- 2160
- 1952
-
-
-
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3792
- 2112
-
-
-
- Success delta_citizen_criminal_liability_fz53
-
- SUCCESS
-
- N
- 4208
- 2112
-
-
-
- citizen_criminal_liability_fz53_flow1.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2736
- 960
-
-
-
- citizen_criminal_liability_fz53_flow2.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2736
- 1120
-
-
-
- citizen_criminal_liability_fz53_flow3.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2736
- 1280
-
-
-
- citizen_criminal_liability_fz53_flow4.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2736
- 1440
-
-
-
- citizen_criminal_liability_fz53_flow5.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2736
- 1600
-
-
-
- Success citizen_criminal_liability_fz53 after error
-
- SUCCESS
-
- N
- 3968
- 1312
-
-
-
- change_status_citizen_criminal_liability_fz53_flow1_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 960
-
-
-
- change_status_citizen_criminal_liability_fz53_flow1_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 1040
-
-
-
- change_status_citizen_criminal_liability_fz53_flow2_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 1120
-
-
-
- change_status_citizen_criminal_liability_fz53_flow2_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 1200
-
-
-
- change_status_citizen_criminal_liability_fz53_flow3_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 1280
-
-
-
- change_status_citizen_criminal_liability_fz53_flow3_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 1360
-
-
-
- change_status_citizen_criminal_liability_fz53_flow4_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 1440
-
-
-
- change_status_citizen_criminal_liability_fz53_flow4_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 1520
-
-
-
- change_status_citizen_criminal_liability_fz53_flow5_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 1600
-
-
-
- change_status_citizen_criminal_liability_fz53_flow5_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/change_status_citizen_criminal_liability_fz53_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3136
- 1680
-
-
-
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/checkpoints/checkpoint_job_citizen_criminal_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3600
- 1312
-
-
-
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl
- citizen_criminal_liability_fz53_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl
- citizen_criminal_liability_fz53_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl
- citizen_criminal_liability_fz53_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl
- citizen_criminal_liability_fz53_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl
- citizen_criminal_liability_fz53_flow5.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl
- Abort workflow
- Y
- N
- N
-
-
- branching_citizen_criminal_liability_fz53.hpl
- Simple citizen_criminal_liability_fz53 WHERE ERROR
- Y
- N
- Y
-
-
- branching_citizen_criminal_liability_fz53.hpl
- Simple citizen_criminal_liability_fz53 WHERE SUCCESS
- Y
- N
- Y
-
-
- recruitment_rows_five_flow_if_error.hpl
- Abort workflow 2
- Y
- N
- N
-
-
- Start
- check_if_job_citizen_criminal_liability_fz53_exists.hpl
- Y
- Y
- Y
-
-
- check_if_job_citizen_criminal_liability_fz53_exists.hpl
- Simple job_citizen_criminal_liability_fz53_exists check NEW
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow1.hpl
- change_status_citizen_criminal_liability_fz53_flow1_success.hpl
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow1.hpl
- change_status_citizen_criminal_liability_fz53_flow1_error.hpl
- Y
- N
- N
-
-
- citizen_criminal_liability_fz53_flow2.hpl
- change_status_citizen_criminal_liability_fz53_flow2_success.hpl
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow2.hpl
- change_status_citizen_criminal_liability_fz53_flow2_error.hpl
- Y
- N
- N
-
-
- citizen_criminal_liability_fz53_flow3.hpl
- change_status_citizen_criminal_liability_fz53_flow3_success.hpl
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow3.hpl
- change_status_citizen_criminal_liability_fz53_flow3_error.hpl
- Y
- N
- N
-
-
- citizen_criminal_liability_fz53_flow4.hpl
- change_status_citizen_criminal_liability_fz53_flow4_success.hpl
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow4.hpl
- change_status_citizen_criminal_liability_fz53_flow4_error.hpl
- Y
- N
- N
-
-
- citizen_criminal_liability_fz53_flow5.hpl
- change_status_citizen_criminal_liability_fz53_flow5_success.hpl
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow5.hpl
- change_status_citizen_criminal_liability_fz53_flow5_error.hpl
- Y
- N
- N
-
-
- change_status_citizen_criminal_liability_fz53_flow5_error.hpl
- checkpoint_job_citizen_criminal_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow5_success.hpl
- checkpoint_job_citizen_criminal_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow4_error.hpl
- checkpoint_job_citizen_criminal_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow4_success.hpl
- checkpoint_job_citizen_criminal_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow3_error.hpl
- checkpoint_job_citizen_criminal_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow3_success.hpl
- checkpoint_job_citizen_criminal_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow2_error.hpl
- checkpoint_job_citizen_criminal_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow2_success.hpl
- checkpoint_job_citizen_criminal_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow1_error.hpl
- checkpoint_job_citizen_criminal_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow1_success.hpl
- checkpoint_job_citizen_criminal_liability_fz53.hpl
- Y
- N
- Y
-
-
- checkpoint_job_citizen_criminal_liability_fz53.hpl
- Success new citizen_criminal_liability_fz53
- Y
- Y
- N
-
-
- checkpoint_job_citizen_criminal_liability_fz53.hpl (2)
- branching_citizen_criminal_liability_fz53.hpl
- Y
- N
- Y
-
-
- Simple job_citizen_criminal_liability_fz53_exists check NEW
- checkpoint_job_citizen_criminal_liability_fz53.hpl (2)
- Y
- N
- N
-
-
- delta_citizen_criminal_liability_fz53_flow1.hpl
- change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_criminal_liability_fz53_flow1.hpl
- change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl
- Y
- N
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl
- change_status_to_processing.hpl
- Y
- Y
- N
-
-
- Simple job_citizen_criminal_liability_fz53_exists check NEW
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- change_status_to_processing.hpl (2)
- Y
- Y
- N
-
-
- Simple citizen_criminal_liability_fz53 WHERE ERROR
- recruitment_rows_five_flow_if_error.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2)
- delta_citizen_criminal_liability_fz53_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2)
- change_status_to_processing_delta.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2)
- Abort workflow 2 2
- Y
- N
- N
-
-
- delta_citizen_criminal_liability_fz53_flow2.hpl
- change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_criminal_liability_fz53_flow2.hpl
- change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl
- Y
- N
- N
-
-
- delta_citizen_criminal_liability_fz53_flow3.hpl
- change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_criminal_liability_fz53_flow3.hpl
- change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl
- Y
- N
- N
-
-
- delta_citizen_criminal_liability_fz53_flow4.hpl
- change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_criminal_liability_fz53_flow4.hpl
- change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl
- Y
- N
- N
-
-
- delta_citizen_criminal_liability_fz53_flow5.hpl
- change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_criminal_liability_fz53_flow5.hpl
- change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl
- Y
- N
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2)
- delta_citizen_criminal_liability_fz53_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2)
- delta_citizen_criminal_liability_fz53_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2)
- delta_citizen_criminal_liability_fz53_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2)
- delta_citizen_criminal_liability_fz53_flow5.hpl
- Y
- Y
- N
-
-
- Simple citizen_criminal_liability_fz53 WHERE SUCCESS
- branching_citizen_criminal_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- Simple delta_citizen_criminal_liability_fz53 WHERE ERROR
- delta_citizen_criminal_liability_fz53 success
- Y
- N
- N
-
-
- branching_citizen_criminal_liability_fz53_delta.hpl
- Simple delta_citizen_criminal_liability_fz53 WHERE ERROR
- Y
- Y
- N
-
-
- Simple delta_citizen_criminal_liability_fz53 WHERE ERROR
- recruitment_rows_five_flow_citizen_criminal_liability_fz53.hpl (2)
- Y
- Y
- N
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow1_success.hpl
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow3_success.hpl
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow2_error.hpl
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow2_success.hpl
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow1_error.hpl
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow3_error.hpl
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow4_success.hpl
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow4_error.hpl
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow5_success.hpl
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_criminal_liability_fz53_flow5_error.hpl
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- checkpoint_job_citizen_criminal_liability_fz53_delta.hpl
- Success delta_citizen_criminal_liability_fz53
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow1.hpl 2
- change_status_citizen_criminal_liability_fz53_flow1_success.hpl 2
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow1.hpl 2
- change_status_citizen_criminal_liability_fz53_flow1_error.hpl 2
- Y
- N
- N
-
-
- citizen_criminal_liability_fz53_flow2.hpl 2
- change_status_citizen_criminal_liability_fz53_flow2_success.hpl 2
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow2.hpl 2
- change_status_citizen_criminal_liability_fz53_flow2_error.hpl 2
- Y
- N
- N
-
-
- citizen_criminal_liability_fz53_flow3.hpl 2
- change_status_citizen_criminal_liability_fz53_flow3_success.hpl 2
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow3.hpl 2
- change_status_citizen_criminal_liability_fz53_flow3_error.hpl 2
- Y
- N
- N
-
-
- citizen_criminal_liability_fz53_flow4.hpl 2
- change_status_citizen_criminal_liability_fz53_flow4_success.hpl 2
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow4.hpl 2
- change_status_citizen_criminal_liability_fz53_flow4_error.hpl 2
- Y
- N
- N
-
-
- citizen_criminal_liability_fz53_flow5.hpl 2
- change_status_citizen_criminal_liability_fz53_flow5_success.hpl 2
- Y
- Y
- N
-
-
- citizen_criminal_liability_fz53_flow5.hpl 2
- change_status_citizen_criminal_liability_fz53_flow5_error.hpl 2
- Y
- N
- N
-
-
- change_status_citizen_criminal_liability_fz53_flow1_success.hpl 2
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow1_error.hpl 2
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow2_success.hpl 2
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow2_error.hpl 2
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow3_success.hpl 2
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow3_error.hpl 2
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow4_success.hpl 2
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow4_error.hpl 2
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow5_success.hpl 2
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_criminal_liability_fz53_flow5_error.hpl 2
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- checkpoint_job_citizen_criminal_liability_fz53.hpl 2
- Success citizen_criminal_liability_fz53 after error
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_criminal_liability_fz53_flow3.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_criminal_liability_fz53_flow2.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_criminal_liability_fz53_flow1.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_criminal_liability_fz53_flow4.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_criminal_liability_fz53_flow5.hpl 2
- Y
- Y
- N
-
-
-
-
- 251
- 232
- 201
- 90
- 58
- 14
- N
- 90
- 58
- 14
- N
- Segoe UI
- 9
- 72
- 1088
- 176
- 0001-01-01 00:00:00
-
-3001-01-01 00:00:00
-
- 114
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl
new file mode 100644
index 0000000..0d5fb92
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl
@@ -0,0 +1,561 @@
+
+
+
+ citizen_criminal_liability_fz53_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 14:31:22.799
+ -
+ 2025/08/05 14:31:22.799
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Table output
+ Change job status on error
+ Y
+
+
+ Table input
+ Table output
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Table output
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1536
+ 832
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1536
+ 640
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1952
+ 496
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id)
+VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}');
+
+
+
+
+ 496
+ 640
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1728
+ 496
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1728
+ 608
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_criminal_liability_fz53_raw
+ is_criminal_liability_fz53
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 896
+ 496
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 1088
+ 496
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.decision-document-service
+ N
+
+ SELECT
+ i.recruit_id,
+ i.created_at,
+ i.updated_at,
+ --, -- сведения о факте уголовного преследования
+ i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
+ i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
+ i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
+ i.decision_number AS case_number, -- номер уголовного дела (судебный)
+ i.decision_date AS sentence_date, -- дата приговора
+ i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
+ CASE
+ WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
+ WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
+ WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
+ WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
+ ELSE NULL
+ END AS type_punishment, -- вид наказания
+ CASE
+ WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
+ WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
+ ELSE null
+ END AS decision_reason, -- Причины уголовного наказания в связи с фз53
+ i.hidden,
+ CASE
+ WHEN i.hidden is false THEN 1
+ ELSE 0
+ END AS is_criminal_liability_fz53,
+ (i.extra_info->>'dateApplication')::date AS date_application,--дата с которой наложена мера
+ i.extra_info->>'description' AS description,--описание наказания
+ i.extra_info->>'reasonForAddEntry' AS reason_for_add_entry--основания для внесения записи
+
+FROM public.infringement i
+
+JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+
+ AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}'
+
+ AND '${M_R_CR_DATE}' >= i.created_at
+
+ --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
+
+WHERE --hidden IS FALSE AND
+
+ i.type = 'CRIMINAL'
+
+
+
+${LIMIT_FW}
+ Y
+
+
+ 704
+ 640
+
+
+
+ Table output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ 1000
+ ervu-dashboard
+
+
+ recruit_id
+ recruit_id
+
+
+ created_at
+ created_at
+
+
+ updated_at
+ updated_at
+
+
+ case_number_before
+ case_number_before
+
+
+ date_initiation
+ date_initiation
+
+
+ body_initiated
+ body_initiated
+
+
+ case_number
+ case_number
+
+
+ sentence_date
+ sentence_date
+
+
+ court_decision
+ court_decision
+
+
+ type_punishment
+ type_punishment
+
+
+ decision_reason
+ decision_reason
+
+
+ hidden
+ hidden
+
+
+ date_application
+ date_application
+
+
+ description
+ description
+
+
+ reason_for_add_entry
+ reason_for_add_entry
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
citizen_criminal_liability_fz53
+ N
+ Y
+ N
+ Y
+
+
+ 896
+ 640
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- sentence_date
- sentence_date
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- decision_reason
- decision_reason
- Y
-
-
- has_criminal_liability_fz53
- has_criminal_liability_fz53
- Y
-
-
- N
-
-
- 880
- 288
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- --, -- сведения о факте уголовного преследования
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
- i.decision_number AS case_number, -- номер уголовного дела (судебный)
- i.decision_date AS sentence_date, -- дата приговора
- i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
- WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
- WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
- WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
- ELSE null
- END AS decision_reason, -- Причины уголовного наказания в связи с фз53
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_criminal_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE --hidden IS FALSE AND
- i.type = 'CRIMINAL'
- Y
-
-
- 448
- 288
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow2.hpl
deleted file mode 100644
index 29c6100..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow2.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- citizen_criminal_liability_fz53_flow2
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_criminal_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- sentence_date
- sentence_date
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- decision_reason
- decision_reason
- Y
-
-
- has_criminal_liability_fz53
- has_criminal_liability_fz53
- Y
-
-
- N
-
-
- 880
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- --, -- сведения о факте уголовного преследования
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
- i.decision_number AS case_number, -- номер уголовного дела (судебный)
- i.decision_date AS sentence_date, -- дата приговора
- i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
- WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
- WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
- WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
- ELSE null
- END AS decision_reason, -- Причины уголовного наказания в связи с фз53
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_criminal_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE --hidden IS FALSE AND
- i.type = 'CRIMINAL'
- Y
-
-
- 448
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow3.hpl
deleted file mode 100644
index 17ccb53..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow3.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- citizen_criminal_liability_fz53_flow3
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_criminal_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- sentence_date
- sentence_date
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- decision_reason
- decision_reason
- Y
-
-
- has_criminal_liability_fz53
- has_criminal_liability_fz53
- Y
-
-
- N
-
-
- 1120
- 384
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- --, -- сведения о факте уголовного преследования
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
- i.decision_number AS case_number, -- номер уголовного дела (судебный)
- i.decision_date AS sentence_date, -- дата приговора
- i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
- WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
- WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
- WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
- ELSE null
- END AS decision_reason, -- Причины уголовного наказания в связи с фз53
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_criminal_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE --hidden IS FALSE AND
- i.type = 'CRIMINAL'
- Y
-
-
- 688
- 384
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow4.hpl
deleted file mode 100644
index 67ebd63..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow4.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- citizen_criminal_liability_fz53_flow4
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_criminal_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- sentence_date
- sentence_date
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- decision_reason
- decision_reason
- Y
-
-
- has_criminal_liability_fz53
- has_criminal_liability_fz53
- Y
-
-
- N
-
-
- 1104
- 416
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- --, -- сведения о факте уголовного преследования
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
- i.decision_number AS case_number, -- номер уголовного дела (судебный)
- i.decision_date AS sentence_date, -- дата приговора
- i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
- WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
- WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
- WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
- ELSE null
- END AS decision_reason, -- Причины уголовного наказания в связи с фз53
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_criminal_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE --hidden IS FALSE AND
- i.type = 'CRIMINAL'
- Y
-
-
- 672
- 416
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow5.hpl
deleted file mode 100644
index 811495c..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow5.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- citizen_criminal_liability_fz53_flow5
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_criminal_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- sentence_date
- sentence_date
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- decision_reason
- decision_reason
- Y
-
-
- has_criminal_liability_fz53
- has_criminal_liability_fz53
- Y
-
-
- N
-
-
- 944
- 384
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- --, -- сведения о факте уголовного преследования
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
- i.decision_number AS case_number, -- номер уголовного дела (судебный)
- i.decision_date AS sentence_date, -- дата приговора
- i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
- WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
- WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
- WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
- ELSE null
- END AS decision_reason, -- Причины уголовного наказания в связи с фз53
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_criminal_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE --hidden IS FALSE AND
- i.type = 'CRIMINAL'
- Y
-
-
- 512
- 384
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl
new file mode 100644
index 0000000..0201a15
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl
@@ -0,0 +1,570 @@
+
+
+
+ citizen_criminal_liability_fz53_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:22:56.048
+ -
+ 2025/08/11 13:22:56.048
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1360
+ 704
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1360
+ 528
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1744
+ 384
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 384
+ 528
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1520
+ 384
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1520
+ 480
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_criminal_liability_fz53_raw
+ is_criminal_liability_fz53
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 720
+ 384
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 912
+ 384
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ =
+ created_at
+ created_at
+
+ ervu_dashboard
+
citizen_criminal_liability_fz53
+
+ recruit_id
+ recruit_id
+ N
+
+
+ created_at
+ created_at
+ N
+
+
+ updated_at
+ updated_at
+ Y
+
+
+ case_number_before
+ case_number_before
+ Y
+
+
+ date_initiation
+ date_initiation
+ Y
+
+
+ body_initiated
+ body_initiated
+ Y
+
+
+ case_number
+ case_number
+ Y
+
+
+ sentence_date
+ sentence_date
+ Y
+
+
+ court_decision
+ court_decision
+ Y
+
+
+ type_punishment
+ type_punishment
+ Y
+
+
+ decision_reason
+ decision_reason
+ Y
+
+
+ hidden
+ hidden
+ Y
+
+
+ date_application
+ date_application
+ Y
+
+
+ description
+ description
+ Y
+
+
+ reason_for_add_entry
+ reason_for_add_entry
+ Y
+
+
+ N
+
+
+ 720
+ 528
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.decision-document-service
+ N
+
+ SELECT
+ i.recruit_id,
+ i.created_at,
+ i.updated_at,
+ --, -- сведения о факте уголовного преследования
+ i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
+ i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
+ i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
+ i.decision_number AS case_number, -- номер уголовного дела (судебный)
+ i.decision_date AS sentence_date, -- дата приговора
+ i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
+ CASE
+ WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
+ WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
+ WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
+ WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
+ ELSE NULL
+ END AS type_punishment, -- вид наказания
+ CASE
+ WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
+ WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
+ ELSE null
+ END AS decision_reason, -- Причины уголовного наказания в связи с фз53
+ i.hidden,
+ CASE
+ WHEN i.hidden is false THEN 1
+ ELSE 0
+ END AS is_criminal_liability_fz53,
+ (i.extra_info->>'dateApplication')::date AS date_application,--дата с которой наложена мера
+ i.extra_info->>'description' AS description,--описание наказания
+ i.extra_info->>'reasonForAddEntry' AS reason_for_add_entry--основания для внесения записи
+FROM public.infringement i
+JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}'
+ AND i.updated_at >= '${M_R_UP_DATE}'::timestamp --coalesce(i.updated_at,i.created_at)
+ --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
+WHERE --hidden IS FALSE AND
+ i.type = 'CRIMINAL'
+
+${LIMIT_FW}
+ Y
+
+
+ 592
+ 528
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_criminal_liability_fz53
+ has_criminal_liability_fz53
+
+
+ N
+ Y
+
+
+ 1360
+ 384
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_criminal_liability_fz53
+ has_criminal_liability_fz53_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1136
+ 384
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl
new file mode 100644
index 0000000..2602be1
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl
@@ -0,0 +1,594 @@
+
+
+
+ citizen_criminal_liability_fz53_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 13:25:52.319
+ -
+ 2025/08/08 13:25:52.319
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1296
+ 432
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1296
+ 208
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1824
+ 64
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (
+ id,
+ job_name,
+ status,
+ execution_datetime,
+ error_description,
+ recruitment_id
+)
+VALUES (
+ DEFAULT,
+ '${JOB_NAME}',
+ 'PROCESSING',
+ DEFAULT,
+ NULL,
+ '${IDM_ID}'
+)
+ON CONFLICT (job_name, recruitment_id)
+DO UPDATE SET
+ status = 'PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+
+
+
+ 272
+ 208
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1536
+ 64
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1536
+ 176
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_criminal_liability_fz53_raw
+ is_criminal_liability_fz53
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 656
+ 64
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 848
+ 64
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ =
+ created_at
+ created_at
+
+ ervu_dashboard
+
citizen_criminal_liability_fz53
+
+ recruit_id
+ recruit_id
+ N
+
+
+ created_at
+ created_at
+ N
+
+
+ updated_at
+ updated_at
+ Y
+
+
+ case_number_before
+ case_number_before
+ Y
+
+
+ date_initiation
+ date_initiation
+ Y
+
+
+ body_initiated
+ body_initiated
+ Y
+
+
+ case_number
+ case_number
+ Y
+
+
+ sentence_date
+ sentence_date
+ Y
+
+
+ court_decision
+ court_decision
+ Y
+
+
+ type_punishment
+ type_punishment
+ Y
+
+
+ decision_reason
+ decision_reason
+ Y
+
+
+ hidden
+ hidden
+ Y
+
+
+ date_application
+ date_application
+ Y
+
+
+ description
+ description
+ Y
+
+
+ reason_for_add_entry
+ reason_for_add_entry
+ Y
+
+
+ N
+
+
+ 656
+ 208
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.decision-document-service
+ N
+
+ SELECT
+ i.recruit_id,
+ i.created_at,
+ i.updated_at,
+ --, -- сведения о факте уголовного преследования
+ i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
+ i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
+ i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
+ i.decision_number AS case_number, -- номер уголовного дела (судебный)
+ i.decision_date AS sentence_date, -- дата приговора
+ i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
+ CASE
+ WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
+ WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
+ WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
+ WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
+ ELSE NULL
+ END AS type_punishment, -- вид наказания
+ CASE
+ WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
+ WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
+ ELSE null
+ END AS decision_reason, -- Причины уголовного наказания в связи с фз53
+ i.hidden,
+ CASE
+ WHEN i.hidden is false THEN 1
+ ELSE 0
+ END AS is_criminal_liability_fz53,
+ (i.extra_info->>'dateApplication')::date AS date_application,--дата с которой наложена мера
+ i.extra_info->>'description' AS description,--описание наказания
+ i.extra_info->>'reasonForAddEntry' AS reason_for_add_entry--основания для внесения записи
+
+FROM public.infringement i
+
+JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+
+ AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}'
+
+ AND '${M_R_CR_DATE}' >= i.created_at
+
+ --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
+
+WHERE --hidden IS FALSE AND
+
+ i.type = 'CRIMINAL'
+
+
+
+${LIMIT_FW}
+ Y
+
+
+ 480
+ 208
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- sentence_date
- sentence_date
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- decision_reason
- decision_reason
- Y
-
-
- has_criminal_liability_fz53
- has_criminal_liability_fz53
- Y
-
-
- N
-
-
- 928
- 336
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- --, -- сведения о факте уголовного преследования
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
- i.decision_number AS case_number, -- номер уголовного дела (судебный)
- i.decision_date AS sentence_date, -- дата приговора
- i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
- WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
- WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
- WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
- ELSE null
- END AS decision_reason, -- Причины уголовного наказания в связи с фз53
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_criminal_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE --hidden IS FALSE AND
- i.type = 'CRIMINAL'
- Y
-
-
- 496
- 336
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow2.hpl
deleted file mode 100644
index eb09efe..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow2.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- delta_citizen_criminal_liability_fz53_flow2
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_criminal_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- sentence_date
- sentence_date
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- decision_reason
- decision_reason
- Y
-
-
- has_criminal_liability_fz53
- has_criminal_liability_fz53
- Y
-
-
- N
-
-
- 1040
- 384
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- --, -- сведения о факте уголовного преследования
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
- i.decision_number AS case_number, -- номер уголовного дела (судебный)
- i.decision_date AS sentence_date, -- дата приговора
- i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
- WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
- WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
- WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
- ELSE null
- END AS decision_reason, -- Причины уголовного наказания в связи с фз53
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_criminal_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE --hidden IS FALSE AND
- i.type = 'CRIMINAL'
- Y
-
-
- 608
- 384
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow3.hpl
deleted file mode 100644
index 1fa9fe1..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow3.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- delta_citizen_criminal_liability_fz53_flow3
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_criminal_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- sentence_date
- sentence_date
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- decision_reason
- decision_reason
- Y
-
-
- has_criminal_liability_fz53
- has_criminal_liability_fz53
- Y
-
-
- N
-
-
- 1056
- 224
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- --, -- сведения о факте уголовного преследования
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
- i.decision_number AS case_number, -- номер уголовного дела (судебный)
- i.decision_date AS sentence_date, -- дата приговора
- i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
- WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
- WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
- WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
- ELSE null
- END AS decision_reason, -- Причины уголовного наказания в связи с фз53
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_criminal_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE --hidden IS FALSE AND
- i.type = 'CRIMINAL'
- Y
-
-
- 624
- 224
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow4.hpl
deleted file mode 100644
index f15f7f6..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow4.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- delta_citizen_criminal_liability_fz53_flow4
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_criminal_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- sentence_date
- sentence_date
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- decision_reason
- decision_reason
- Y
-
-
- has_criminal_liability_fz53
- has_criminal_liability_fz53
- Y
-
-
- N
-
-
- 960
- 416
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- --, -- сведения о факте уголовного преследования
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
- i.decision_number AS case_number, -- номер уголовного дела (судебный)
- i.decision_date AS sentence_date, -- дата приговора
- i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
- WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
- WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
- WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
- ELSE null
- END AS decision_reason, -- Причины уголовного наказания в связи с фз53
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_criminal_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE --hidden IS FALSE AND
- i.type = 'CRIMINAL'
- Y
-
-
- 528
- 416
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow5.hpl
deleted file mode 100644
index 99a4d0a..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/delta_citizen_criminal_liability_fz53_flow5.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- delta_citizen_criminal_liability_fz53_flow5
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_criminal_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- sentence_date
- sentence_date
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- decision_reason
- decision_reason
- Y
-
-
- has_criminal_liability_fz53
- has_criminal_liability_fz53
- Y
-
-
- N
-
-
- 1184
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- --, -- сведения о факте уголовного преследования
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело
- i.decision_number AS case_number, -- номер уголовного дела (судебный)
- i.decision_date AS sentence_date, -- дата приговора
- i.extra_info->>'court' AS court_decision, -- суд вынесший приговор
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Штраф'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Обязательные работы'
- WHEN i.extra_info->>'punishment' = '3' THEN 'Арест'
- WHEN i.extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.decision_reason = '1' THEN 'Уклонение от призыва на военную службу'
- WHEN i.decision_reason = '2' THEN 'Уклонение от прохождения альтернативной гражданской службы лиц, освобожденных от военной службы'
- ELSE null
- END AS decision_reason, -- Причины уголовного наказания в связи с фз53
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_criminal_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE --hidden IS FALSE AND
- i.type = 'CRIMINAL'
- Y
-
-
- 752
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_delta.hpl
new file mode 100644
index 0000000..e4d32f9
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_delta.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:16:11.204
+ -
+ 2025/08/11 13:16:11.204
+
+
+
+
+
+ Table input
+ citizen_criminal_liability_fz53_flow_delta.hpl
+ Y
+
+
+ Table input
+ citizen_criminal_liability_fz53_flow_delta.hpl 2
+ Y
+
+
+ Table input
+ citizen_criminal_liability_fz53_flow_delta.hpl 3
+ Y
+
+
+ Table input
+ citizen_criminal_liability_fz53_flow_delta.hpl 4
+ Y
+
+
+ Table input
+ citizen_criminal_liability_fz53_flow_delta.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_criminal_liability_fz53_job'
+where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');
+ N
+
+
+ 352
+ 288
+
+
+
+ citizen_criminal_liability_fz53_flow_delta.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 624
+ 128
+
+
+
+ citizen_criminal_liability_fz53_flow_delta.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 624
+ 208
+
+
+
+ citizen_criminal_liability_fz53_flow_delta.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 624
+ 288
+
+
+
+ citizen_criminal_liability_fz53_flow_delta.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 624
+ 368
+
+
+
+ citizen_criminal_liability_fz53_flow_delta.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 624
+ 448
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_on_error.hpl
new file mode 100644
index 0000000..d7bd8bb
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_five_flow_on_error.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_on_error
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 12:54:50.126
+ -
+ 2025/08/05 12:54:50.126
+
+
+
+
+
+ Table input
+ citizen_criminal_liability_fz53_flow_repeat.hpl
+ Y
+
+
+ Table input
+ citizen_criminal_liability_fz53_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ citizen_criminal_liability_fz53_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ citizen_criminal_liability_fz53_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ citizen_criminal_liability_fz53_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_criminal_liability_fz53_job'
+where je.status is null or je.status in('ERROR', 'PROCESSING');
+ N
+
+
+ 272
+ 368
+
+
+
+ citizen_criminal_liability_fz53_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 496
+ 208
+
+
+
+ citizen_criminal_liability_fz53_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 496
+ 288
+
+
+
+ citizen_criminal_liability_fz53_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 496
+ 368
+
+
+
+ citizen_criminal_liability_fz53_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 496
+ 448
+
+
+
+ citizen_criminal_liability_fz53_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 496
+ 528
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_rows_five_flow_if_error.hpl
deleted file mode 100644
index b7e3e03..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitment_rows_five_flow_if_error.hpl
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-
- recruitment_rows_five_flow_if_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/23 14:28:22.572
- -
- 2025/05/23 14:28:22.572
-
-
-
-
-
- Table input
- Copy rows to result
- Y
-
-
-
- Copy rows to result
- RowsToResult
-
- Y
-
- 1
-
- none
-
-
-
-
- 880
- 288
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-fr_check AS (
- SELECT
- last_recruitment_id AS recruitment_id,
- recruitment_created_date,
- status,
- job_name
- FROM public.etl_checkpoints
- WHERE status = 'ERROR' AND job_name IN ('citizen_criminal_liability_fz53_flow1', 'citizen_criminal_liability_fz53_flow2', 'citizen_criminal_liability_fz53_flow3', 'citizen_criminal_liability_fz53_flow4', 'citizen_criminal_liability_fz53_flow5')
-),
-ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num,
- ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position
- FROM ordered
-),
-pivoted AS (
- SELECT
- position,
- MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow1') THEN created_at END) AS cr_flow1,
- MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow1') THEN idm_id::text END) AS idm_flow1,
- MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow2') THEN created_at END) AS cr_flow2,
- MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow2') THEN idm_id::text END) AS idm_flow2,
- MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow3') THEN created_at END) AS cr_flow3,
- MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow3') THEN idm_id::text END) AS idm_flow3,
- MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow4') THEN created_at END) AS cr_flow4,
- MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow4') THEN idm_id::text END) AS idm_flow4,
- MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow5') THEN created_at END) AS cr_flow5,
- MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_criminal_liability_fz53_flow5') THEN idm_id::text END) AS idm_flow5
- FROM splitted
- GROUP BY position
-),
-remains as (
- SELECT
- position,
- cr_flow1,
- idm_flow1::uuid,
- cr_flow2,
- idm_flow2::uuid,
- cr_flow3,
- idm_flow3::uuid,
- cr_flow4,
- idm_flow4::uuid,
- cr_flow5,
- idm_flow5::uuid
- FROM pivoted
- WHERE (cr_flow1 IS NOT NULL AND idm_flow1 IS NOT NULL)
- OR (cr_flow2 IS NOT NULL AND idm_flow2 IS NOT NULL)
- OR (cr_flow3 IS NOT NULL AND idm_flow3 IS NOT NULL)
- OR (cr_flow4 IS NOT NULL AND idm_flow4 IS NOT NULL)
- OR (cr_flow5 IS NOT NULL AND idm_flow5 IS NOT NULL)
- order by position
-),
-idm1 as (
- select
- cr_flow1,
- idm_flow1
- from remains
- where cr_flow1 is not null and idm_flow1 is not null
-),
-idm2 as (
- select
- cr_flow2,
- idm_flow2
- from remains
- where cr_flow2 is not null and idm_flow2 is not null
-),
-idm3 as (
- select
- cr_flow3,
- idm_flow3
- from remains
- where cr_flow3 is not null and idm_flow3 is not null
-),
-idm4 as (
- select
- cr_flow4,
- idm_flow4
- from remains
- where cr_flow4 is not null and idm_flow4 is not null
-),
-idm5 as (
- select
- cr_flow5,
- idm_flow5
- from remains
- where cr_flow5 is not null and idm_flow5 is not null
-)
-select
- i1.*,
- i2.*,
- i3.*,
- i4.*,
- i5.*
-FROM
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn
-ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn)
-limit 2
- N
-
-
- 512
- 288
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitments_five_flow.hpl
new file mode 100644
index 0000000..eef528e
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_criminal_liability_fz53/recruitments_five_flow.hpl
@@ -0,0 +1,373 @@
+
+
+
+ recruitments_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/04/18 09:48:01.970
+ -
+ 2025/04/18 09:48:01.970
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ citizen_criminal_liability_fz53_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_criminal_liability_fz53_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_criminal_liability_fz53_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_criminal_liability_fz53_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_criminal_liability_fz53_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+idm_id AS recruitment
+FROM ervu_dashboard.recruitment
+${COMMENT}/*
+where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a',
+'cff66da8-2be0-4839-bd8e-332b1a150031',
+'34c8685e-f08a-4877-afb1-a0589800a21c',
+'0e10678c-f272-41c3-94dd-c15830321f9a',
+'9703f108-761a-467a-aad3-89617e5539ed',
+'55eae374-9bb5-4295-9e3a-5fbcdaba870d',
+'dad6c101-34be-45c3-8173-57190cb69dfb',
+'fc10523f-af31-4f6b-b0e2-00799758f634',
+'61807cc2-9913-4060-8802-0672877c28c8',
+'eba7fd7d-e3da-49a7-8e65-8fc85e47190e',
+'f59afe6d-c166-4196-a489-6d17f02fc05e',
+'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9',
+'0fe2bdf0-afbb-402d-93da-67e511799afa',
+'6139de3b-2378-496f-9fca-7df7dab90832',
+'50ba73dd-1726-48f1-8b7c-7a77ff965299')
+${COMMENT}*/
+ Y
+
+
+ 432
+ 304
+
+
+
+ citizen_criminal_liability_fz53_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 752
+ 144
+
+
+
+ citizen_criminal_liability_fz53_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 752
+ 224
+
+
+
+ citizen_criminal_liability_fz53_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 752
+ 304
+
+
+
+ citizen_criminal_liability_fz53_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 752
+ 384
+
+
+
+ citizen_criminal_liability_fz53_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_criminal_liability_fz53/parallel/citizen_criminal_liability_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_criminal_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 752
+ 464
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/branching_citizen_guardianship.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/branching_citizen_guardianship.hpl
deleted file mode 100644
index 06f8364..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/branching_citizen_guardianship.hpl
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
- branching_citizen_guardianship
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1040
- 416
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- select
- status as STATUS,
- job_name AS PIPELINE
-from public.etl_checkpoints
-where job_name = 'job_citizen_guardianship'
- N
-
-
- 800
- 416
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1264
- 416
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/check_if_need_to_repeat_job.hpl
new file mode 100644
index 0000000..b3fff70
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/check_if_need_to_repeat_job.hpl
@@ -0,0 +1,86 @@
+
+
+
+ check_if_need_to_repeat_job
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 12:27:51.630
+ -
+ 2025/08/08 12:27:51.630
+
+
+
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ need_to_repeat_job
+ NEED_TO_REPEAT_JOB
+ ROOT_WORKFLOW
+
+
+ Y
+
+
+ 624
+ 288
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (SELECT 1
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_guardianship_job'
+where je.status is null or je.status in ('ERROR', 'PROCESSING')
+limit 1
+) as need_to_repeat_job;
+ N
+
+
+ 336
+ 288
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_error.hpl
deleted file mode 100644
index e6a5f14..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_error.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_citizen_guardianship_flow1_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'citizen_guardianship_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_success.hpl
deleted file mode 100644
index 571a7cf..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_success.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_citizen_guardianship_flow1_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'citizen_guardianship_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_error.hpl
deleted file mode 100644
index 7b836c5..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_error.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_citizen_guardianship_flow2_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_guardianship_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_success.hpl
deleted file mode 100644
index 5ce643b..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_success.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_citizen_guardianship_flow2_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_guardianship_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_error.hpl
deleted file mode 100644
index 4046d93..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_error.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_citizen_guardianship_flow3_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_guardianship_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_success.hpl
deleted file mode 100644
index ba9817b..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_success.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_citizen_guardianship_flow3_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_guardianship_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_error.hpl
deleted file mode 100644
index 09bc827..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_guardianship_flow4_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_guardianship_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_success.hpl
deleted file mode 100644
index 4d21654..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_guardianship_flow4_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_guardianship_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_error.hpl
deleted file mode 100644
index 88fd368..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_guardianship_flow5_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_guardianship_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_success.hpl
deleted file mode 100644
index 0807eed..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_guardianship_flow5_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_guardianship ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_guardianship_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_error.hpl
deleted file mode 100644
index 62e0d8a..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_error.hpl
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
- change_status_delta_citizen_guardianship_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_guardianship' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
-union all
-
- SELECT
- 'job_citizen_guardianship' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_success.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_success.hpl
deleted file mode 100644
index 5628f74..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_success.hpl
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
- change_status_delta_citizen_guardianship_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_guardianship' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
-
-union all
-
- SELECT
- 'job_citizen_guardianship' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
-
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing.hpl
deleted file mode 100644
index 68d82dc..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing.hpl
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- change_status_to_processing
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/11 16:14:31.162
- -
- 2025/06/11 16:14:31.162
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 784
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'PROCESSING' AS status,
- 'job_citizen_guardianship' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_guardianship_flow1' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_guardianship_flow2' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_guardianship_flow3' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_guardianship_flow4' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_guardianship_flow5' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 368
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_citizen_guardianship_job_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_citizen_guardianship_job_exists.hpl
new file mode 100644
index 0000000..8ff4ff0
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_citizen_guardianship_job_exists.hpl
@@ -0,0 +1,113 @@
+
+
+
+ check_if_citizen_guardianship_job_exists
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 13:28:46.661
+ -
+ 2025/08/05 13:28:46.661
+
+
+
+
+
+ Set variables
+ Write to log
+ N
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ job_executed_flag
+ JOB_EXECUTED_FLAG
+ PARENT_WORKFLOW
+
+
+ Y
+
+
+ 672
+ 336
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'citizen_guardianship_job'
+ limit 1
+ ) AS job_executed_flag;
+ N
+
+
+ 384
+ 336
+
+
+
+ Write to log
+ WriteToLog
+
+ Y
+
+ 1
+
+ none
+
+
+ Basic
+ Y
+ N
+ 0
+ ${STATUS}
+
+
+
+
+ 944
+ 224
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_citizen_guardianship_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_citizen_guardianship_error.hpl
deleted file mode 100644
index a1db818..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_citizen_guardianship_error.hpl
+++ /dev/null
@@ -1,273 +0,0 @@
-
-
-
- checkpoint_citizen_guardianship_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_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl
deleted file mode 100644
index 0413a04..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_citizen_guardianship
- 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
-
-
- Dummy (do nothing)
- JSON input state_child_flow1.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow2.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow3.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow4.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow5.json
- N
-
-
- Table input
- Insert / update
- Y
-
-
-
- Abort
- Abort
-
- Y
-
- 1
-
- none
-
-
- ABORT_WITH_ERROR
- Y
- 0
-
-
- 1264
- 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
-
-
-
- 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
-
-
-
- Dummy (do nothing)
- Dummy
-
- Y
-
- 1
-
- none
-
-
-
-
- 336
- 592
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1312
- 272
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH status_check AS (
- SELECT
- bool_or(status = 'ERROR' AND job_name IN (
- 'citizen_guardianship_flow1',
- 'citizen_guardianship_flow2',
- 'citizen_guardianship_flow3',
- 'citizen_guardianship_flow4',
- 'citizen_guardianship_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'citizen_guardianship_flow1',
- 'citizen_guardianship_flow2',
- 'citizen_guardianship_flow3',
- 'citizen_guardianship_flow4',
- 'citizen_guardianship_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_citizen_guardianship' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 944
- 272
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/job_create_files_citizen_guardianship.hwf b/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/job_create_files_citizen_guardianship.hwf
deleted file mode 100644
index 1a90995..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/job_create_files_citizen_guardianship.hwf
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
- job_create_files_citizen_guardianship
- 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/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_citizen_guardianship.hwf b/mappings/info_recruits/citizen_tables/citizen_guardianship/job_citizen_guardianship.hwf
deleted file mode 100644
index 3e49ea5..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/job_citizen_guardianship.hwf
+++ /dev/null
@@ -1,1811 +0,0 @@
-
-
- job_citizen_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
- 400
-
-
-
- recruitment_rows_five_flow_citizen_guardianship.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_guardianship.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2384
- 400
-
-
-
- citizen_guardianship_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2704
- 80
-
-
-
- citizen_guardianship_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2704
- 240
-
-
-
- citizen_guardianship_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2704
- 400
-
-
-
- citizen_guardianship_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2704
- 560
-
-
-
- citizen_guardianship_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2704
- 720
-
-
-
- Abort workflow
-
- ABORT
-
- N
- N
- 2368
- 208
-
-
-
- checkpoint_job_citizen_guardianship.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3424
- 416
-
-
-
- Success new citizen
-
- SUCCESS
-
- N
- 3872
- 416
-
-
-
- branching_citizen_guardianship.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/branching_citizen_guardianship.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1584
- 1280
-
-
-
- Simple child WHERE SUCCESS
-
- SIMPLE_EVAL
-
- SUCCESS
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1888
- 1792
-
-
-
- Simple child 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/child/recruitment_rows_five_flow_if_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2384
- 1280
-
-
-
- Abort workflow 2
-
- ABORT
-
- N
- N
- 2288
- 1040
-
-
-
- delta_citizen_guardianship.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/delta_citizen_guardianship.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2704
- 1792
-
-
-
- Success delta_citizen
-
- SUCCESS
-
- N
- 3328
- 1792
-
-
-
- error delta_citizen
-
- SUCCESS
-
- N
- 3328
- 1872
-
-
-
- check_if_job_citizen_guardianship_exists.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_job_citizen_guardianship_exists.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 656
- 400
-
-
-
- Simple job_citizen_guardianship_exists check NEW
-
- SIMPLE_EVAL
-
- NEW
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1008
- 400
-
-
-
- change_status_to_processing.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1424
- 400
-
-
-
- change_status_citizen_guardianship_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 80
-
-
-
- change_status_citizen_guardianship_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 160
-
-
-
- change_status_citizen_guardianship_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 240
-
-
-
- change_status_citizen_guardianship_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 320
-
-
-
- change_status_citizen_guardianship_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 400
-
-
-
- change_status_citizen_guardianship_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 480
-
-
-
- change_status_citizen_guardianship_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 560
-
-
-
- change_status_citizen_guardianship_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 640
-
-
-
- change_status_citizen_guardianship_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 720
-
-
-
- change_status_citizen_guardianship_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 800
-
-
-
- checkpoint_job_citizen_guardianship.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1296
- 1280
-
-
-
- citizen_guardianship_flow1.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2704
- 960
-
-
-
- citizen_guardianship_flow2.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2704
- 1120
-
-
-
- citizen_guardianship_flow3.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2704
- 1280
-
-
-
- citizen_guardianship_flow4.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2704
- 1440
-
-
-
- citizen_guardianship_flow5.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2704
- 1600
-
-
-
- checkpoint_job_citizen_guardianship.hpl 3
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/checkpoint_job_citizen_guardianship.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3424
- 1296
-
-
-
- Success new citizen 2
-
- SUCCESS
-
- N
- 3728
- 1296
-
-
-
- change_status_citizen_guardianship_flow1_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 960
-
-
-
- change_status_citizen_guardianship_flow1_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 1040
-
-
-
- change_status_citizen_guardianship_flow2_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 1120
-
-
-
- change_status_citizen_guardianship_flow2_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 1200
-
-
-
- change_status_citizen_guardianship_flow3_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 1280
-
-
-
- change_status_citizen_guardianship_flow3_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 1360
-
-
-
- change_status_citizen_guardianship_flow4_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 1440
-
-
-
- change_status_citizen_guardianship_flow4_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 1520
-
-
-
- change_status_citizen_guardianship_flow5_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 1600
-
-
-
- change_status_citizen_guardianship_flow5_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_citizen_guardianship_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 1680
-
-
-
- change_status_to_processing.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2096
- 1280
-
-
-
- change_status_to_processing_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_to_processing_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2160
- 1792
-
-
-
- change_status_delta_citizen_guardianship_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 1792
-
-
-
- change_status_delta_citizen_guardianship_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/checkpoints/change_status_delta_citizen_guardianship_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3024
- 1872
-
-
-
-
-
- recruitment_rows_five_flow_citizen_guardianship.hpl
- citizen_guardianship_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_guardianship.hpl
- citizen_guardianship_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_guardianship.hpl
- citizen_guardianship_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_guardianship.hpl
- citizen_guardianship_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_guardianship.hpl
- citizen_guardianship_flow5.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_guardianship.hpl
- Abort workflow
- Y
- N
- N
-
-
- branching_citizen_guardianship.hpl
- Simple child WHERE SUCCESS
- Y
- N
- Y
-
-
- recruitment_rows_five_flow_if_error.hpl
- Abort workflow 2
- Y
- N
- N
-
-
- check_if_job_citizen_guardianship_exists.hpl
- Simple job_citizen_guardianship_exists check NEW
- Y
- Y
- N
-
-
- Simple job_citizen_guardianship_exists check NEW
- change_status_to_processing.hpl
- Y
- Y
- N
-
-
- change_status_to_processing.hpl
- recruitment_rows_five_flow_citizen_guardianship.hpl
- Y
- Y
- N
-
-
- citizen_guardianship_flow1.hpl
- change_status_citizen_guardianship_flow1_success.hpl
- Y
- Y
- N
-
-
- citizen_guardianship_flow1.hpl
- change_status_citizen_guardianship_flow1_error.hpl
- Y
- N
- N
-
-
- citizen_guardianship_flow2.hpl
- change_status_citizen_guardianship_flow2_success.hpl
- Y
- Y
- N
-
-
- citizen_guardianship_flow2.hpl
- change_status_citizen_guardianship_flow2_error.hpl
- Y
- N
- N
-
-
- citizen_guardianship_flow3.hpl
- change_status_citizen_guardianship_flow3_success.hpl
- Y
- Y
- N
-
-
- citizen_guardianship_flow3.hpl
- change_status_citizen_guardianship_flow3_error.hpl
- Y
- N
- N
-
-
- citizen_guardianship_flow4.hpl
- change_status_citizen_guardianship_flow4_success.hpl
- Y
- Y
- N
-
-
- citizen_guardianship_flow4.hpl
- change_status_citizen_guardianship_flow4_error.hpl
- Y
- N
- N
-
-
- citizen_guardianship_flow5.hpl
- change_status_citizen_guardianship_flow5_success.hpl
- Y
- Y
- N
-
-
- citizen_guardianship_flow5.hpl
- change_status_citizen_guardianship_flow5_error.hpl
- Y
- N
- N
-
-
- change_status_citizen_guardianship_flow1_success.hpl
- checkpoint_job_citizen_guardianship.hpl
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow1_error.hpl
- checkpoint_job_citizen_guardianship.hpl
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow2_success.hpl
- checkpoint_job_citizen_guardianship.hpl
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow2_error.hpl
- checkpoint_job_citizen_guardianship.hpl
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow3_success.hpl
- checkpoint_job_citizen_guardianship.hpl
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow3_error.hpl
- checkpoint_job_citizen_guardianship.hpl
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow4_success.hpl
- checkpoint_job_citizen_guardianship.hpl
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow4_error.hpl
- checkpoint_job_citizen_guardianship.hpl
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow5_success.hpl
- checkpoint_job_citizen_guardianship.hpl
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow5_error.hpl
- checkpoint_job_citizen_guardianship.hpl
- Y
- N
- Y
-
-
- checkpoint_job_citizen_guardianship.hpl
- Success new citizen
- Y
- Y
- N
-
-
- Simple job_citizen_guardianship_exists check NEW
- checkpoint_job_citizen_guardianship.hpl 2
- Y
- N
- N
-
-
- checkpoint_job_citizen_guardianship.hpl 2
- branching_citizen_guardianship.hpl
- Y
- Y
- N
-
-
- citizen_guardianship_flow1.hpl 2
- change_status_citizen_guardianship_flow1_success.hpl 2
- Y
- Y
- N
-
-
- citizen_guardianship_flow1.hpl 2
- change_status_citizen_guardianship_flow1_error.hpl 2
- Y
- N
- N
-
-
- citizen_guardianship_flow2.hpl 2
- change_status_citizen_guardianship_flow2_success.hpl 2
- Y
- Y
- N
-
-
- citizen_guardianship_flow2.hpl 2
- change_status_citizen_guardianship_flow2_error.hpl 2
- Y
- N
- N
-
-
- citizen_guardianship_flow3.hpl 2
- change_status_citizen_guardianship_flow3_success.hpl 2
- Y
- Y
- N
-
-
- citizen_guardianship_flow3.hpl 2
- change_status_citizen_guardianship_flow3_error.hpl 2
- Y
- N
- N
-
-
- citizen_guardianship_flow4.hpl 2
- change_status_citizen_guardianship_flow4_success.hpl 2
- Y
- Y
- N
-
-
- citizen_guardianship_flow4.hpl 2
- change_status_citizen_guardianship_flow4_error.hpl 2
- Y
- N
- N
-
-
- citizen_guardianship_flow5.hpl 2
- change_status_citizen_guardianship_flow5_success.hpl 2
- Y
- Y
- N
-
-
- citizen_guardianship_flow5.hpl 2
- change_status_citizen_guardianship_flow5_error.hpl 2
- Y
- N
- N
-
-
- checkpoint_job_citizen_guardianship.hpl 3
- Success new citizen 2
- Y
- Y
- N
-
-
- change_status_citizen_guardianship_flow1_success.hpl 2
- checkpoint_job_citizen_guardianship.hpl 3
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow1_error.hpl 2
- checkpoint_job_citizen_guardianship.hpl 3
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow2_success.hpl 2
- checkpoint_job_citizen_guardianship.hpl 3
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow2_error.hpl 2
- checkpoint_job_citizen_guardianship.hpl 3
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow3_success.hpl 2
- checkpoint_job_citizen_guardianship.hpl 3
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow3_error.hpl 2
- checkpoint_job_citizen_guardianship.hpl 3
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow4_success.hpl 2
- checkpoint_job_citizen_guardianship.hpl 3
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow4_error.hpl 2
- checkpoint_job_citizen_guardianship.hpl 3
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow5_success.hpl 2
- checkpoint_job_citizen_guardianship.hpl 3
- Y
- N
- Y
-
-
- change_status_citizen_guardianship_flow5_error.hpl 2
- checkpoint_job_citizen_guardianship.hpl 3
- Y
- N
- Y
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_guardianship_flow3.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_guardianship_flow2.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_guardianship_flow1.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_guardianship_flow4.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_guardianship_flow5.hpl 2
- Y
- Y
- N
-
-
- change_status_to_processing.hpl 2
- recruitment_rows_five_flow_if_error.hpl
- Y
- Y
- N
-
-
- Simple child WHERE ERROR
- change_status_to_processing.hpl 2
- Y
- Y
- N
-
-
- branching_citizen_guardianship.hpl
- Simple child WHERE ERROR
- Y
- N
- Y
-
-
- Simple child WHERE SUCCESS
- change_status_to_processing_delta.hpl
- Y
- Y
- N
-
-
- delta_citizen_guardianship.hpl
- change_status_delta_citizen_guardianship_success.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_guardianship_success.hpl
- Success delta_citizen
- Y
- Y
- N
-
-
- change_status_delta_citizen_guardianship_error.hpl
- error delta_citizen
- Y
- Y
- N
-
-
- change_status_to_processing_delta.hpl
- delta_citizen_guardianship.hpl
- Y
- Y
- N
-
-
- delta_citizen_guardianship.hpl
- change_status_delta_citizen_guardianship_error.hpl
- Y
- N
- N
-
-
-
-
-
-
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
+
-
- recruit_id
- recruit_id
- N
-
-
- birth_date
- birth_date
- Y
-
-
- full_name
- full_name
- Y
-
-
- snils
- snils
- Y
-
-
- N
-
-
- 960
- 288
-
-
-
- Select values 4 2
- SelectValues
-
- Y
-
- 1
-
- none
-
-
-
- N
-
- ID_F1
- ID_F1
- String
- -2
- -2
-
- false
-
-
- false
-
-
-
-
-
-
-
-
-
- 720
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- with person as
-(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch,
- ri.recruit_id
-from ervu_dashboard.recruits_info ri
-join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
-where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array')
-select
- r.recruit_id AS recruit_id,
- concat_ws(' ', ch->'fioOpek'->>'familiya',
- ch->'fioOpek'->>'imya',
- ch->'fioOpek'->>'otchestvo') full_name,
- make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int,
- NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int,
- NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date,
- ch->>'snils' snils
-from ervu_dashboard.citizen r
-join person on r.recruit_id = person.recruit_id
- Y
-
-
- 448
- 288
-
-
-
-
- Select values 4 2
- Get variables
- Y
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow2.hpl
deleted file mode 100644
index ecb257f..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow2.hpl
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
- citizen_guardianship_flow2
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
- 251
- 232
- 201
- 90
- 58
- 14
- N
- 90
- 58
- 14
- N
- Segoe UI
- 9
- 26
- 656
- 208
- сведения о лице опекаемом или находящемся на попечении
- 349
-
-
-
-
- Table input
- Insert / update 2
- Y
-
-
-
- Insert / update 2
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
- ervu_dashboard
-
citizen_guardianship
-
- recruit_id
- recruit_id
- N
-
-
- birth_date
- birth_date
- Y
-
-
- full_name
- full_name
- Y
-
-
- snils
- snils
- Y
-
-
- N
-
-
- 1056
- 288
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- with person as
-(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch,
- ri.recruit_id
-from ervu_dashboard.recruits_info ri
-join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
-where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array')
-select
- r.recruit_id AS recruit_id,
- concat_ws(' ', ch->'fioOpek'->>'familiya',
- ch->'fioOpek'->>'imya',
- ch->'fioOpek'->>'otchestvo') full_name,
- make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int,
- NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int,
- NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date,
- ch->>'snils' snils
-from ervu_dashboard.citizen r
-join person on r.recruit_id = person.recruit_id
- Y
-
-
- 560
- 288
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow3.hpl
deleted file mode 100644
index 7e5f328..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow3.hpl
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
- citizen_guardianship_flow3
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
- 251
- 232
- 201
- 90
- 58
- 14
- N
- 90
- 58
- 14
- N
- Segoe UI
- 9
- 26
- 800
- 256
- сведения о лице опекаемом или находящемся на попечении
- 349
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
- ervu_dashboard
-
citizen_guardianship
-
- recruit_id
- recruit_id
- N
-
-
- birth_date
- birth_date
- Y
-
-
- full_name
- full_name
- Y
-
-
- snils
- snils
- Y
-
-
- N
-
-
- 1216
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- with person as
-(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch,
- ri.recruit_id
-from ervu_dashboard.recruits_info ri
-join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
-where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array')
-select
- r.recruit_id AS recruit_id,
- concat_ws(' ', ch->'fioOpek'->>'familiya',
- ch->'fioOpek'->>'imya',
- ch->'fioOpek'->>'otchestvo') full_name,
- make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int,
- NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int,
- NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date,
- ch->>'snils' snils
-from ervu_dashboard.citizen r
-join person on r.recruit_id = person.recruit_id
- Y
-
-
- 672
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow4.hpl
deleted file mode 100644
index 9c52b48..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow4.hpl
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
- citizen_guardianship_flow4
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
- 251
- 232
- 201
- 90
- 58
- 14
- N
- 90
- 58
- 14
- N
- Segoe UI
- 9
- 26
- 640
- 240
- сведения о лице опекаемом или находящемся на попечении
- 349
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
- ervu_dashboard
-
citizen_guardianship
-
- recruit_id
- recruit_id
- N
-
-
- birth_date
- birth_date
- Y
-
-
- full_name
- full_name
- Y
-
-
- snils
- snils
- Y
-
-
- N
-
-
- 1088
- 320
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- with person as
-(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch,
- ri.recruit_id
-from ervu_dashboard.recruits_info ri
-join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
-where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array')
-select
- r.recruit_id AS recruit_id,
- concat_ws(' ', ch->'fioOpek'->>'familiya',
- ch->'fioOpek'->>'imya',
- ch->'fioOpek'->>'otchestvo') full_name,
- make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int,
- NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int,
- NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date,
- ch->>'snils' snils
-from ervu_dashboard.citizen r
-join person on r.recruit_id = person.recruit_id
- Y
-
-
- 528
- 320
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow5.hpl
deleted file mode 100644
index a26e744..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow5.hpl
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-
- citizen_guardianship_flow5
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
- 251
- 232
- 201
- 90
- 58
- 14
- N
- 90
- 58
- 14
- N
- Segoe UI
- 9
- 26
- 704
- 256
- сведения о лице опекаемом или находящемся на попечении
- 349
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
- ervu_dashboard
-
citizen_guardianship
-
- recruit_id
- recruit_id
- N
-
-
- birth_date
- birth_date
- Y
-
-
- full_name
- full_name
- Y
-
-
- snils
- snils
- Y
-
-
- N
-
-
- 1024
- 368
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- with person as
-(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch,
- ri.recruit_id
-from ervu_dashboard.recruits_info ri
-join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
-where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array')
-select
- r.recruit_id AS recruit_id,
- concat_ws(' ', ch->'fioOpek'->>'familiya',
- ch->'fioOpek'->>'imya',
- ch->'fioOpek'->>'otchestvo') full_name,
- make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int,
- NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int,
- NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date,
- ch->>'snils' snils
-from ervu_dashboard.citizen r
-join person on r.recruit_id = person.recruit_id
- Y
-
-
- 560
- 368
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl
new file mode 100644
index 0000000..89a2259
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl
@@ -0,0 +1,527 @@
+
+
+
+ citizen_guardianship_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:22:56.048
+ -
+ 2025/08/11 13:22:56.048
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Add constants
+ Update
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ Add constants
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1200
+ 480
+
+
+
+ Add constants
+ Constant
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ -1
+ is_guardian
+ true
+ -1
+ N
+ Boolean
+
+
+
+
+ 1024
+ 0
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ error_code
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1200
+ 224
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS',
+ error_description = null
+WHERE job_name = '${JOB_NAME}'
+ and recruitment_id = '${IDM_ID}'
+ and status = 'DELTA_PROCESSING';
+
+
+
+ 1712
+ 0
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = DEFAULT
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 336
+ 224
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1456
+ 224
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1456
+ 0
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 704
+ 0
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 864
+ 0
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ =
+ guardianship_external_id
+ guardianship_external_id
+
+ ervu_dashboard
+
citizen_guardianship
+
+ recruit_id
+ recruit_id
+ N
+
+
+ first_name
+ first_name
+ Y
+
+
+ last_name
+ last_name
+ Y
+
+
+ middle_name
+ middle_name
+ Y
+
+
+ birth_date
+ birth_date
+ Y
+
+
+ full_name
+ full_name
+ Y
+
+
+ guardian_id_ern
+ guardian_id_ern
+ Y
+
+
+ guardianship_external_id
+ guardianship_external_id
+ N
+
+
+ snils
+ snils
+ Y
+
+
+ N
+
+
+ 704
+ 224
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ SELECT
+ ri.recruit_id AS recruit_id,
+ (ch->>'id')::uuid AS guardianship_external_id,
+ NULLIF(ch->>'idERN', '') AS guardian_id_ern,
+ ch->'fioOpek'->>'familiya' AS last_name,
+ ch->'fioOpek'->>'imya' AS first_name,
+ ch->'fioOpek'->>'otchestvo' AS middle_name,
+ CONCAT_WS(' ',
+ ch->'fioOpek'->>'familiya',
+ ch->'fioOpek'->>'imya',
+ ch->'fioOpek'->>'otchestvo'
+ ) AS full_name,
+ MAKE_DATE(
+ NULLIF(ch->'dataRozhdDok'->>'god', '')::int,
+ NULLIF(ch->'dataRozhdDok'->>'mesyacz', '')::int,
+ NULLIF(ch->'dataRozhdDok'->>'den', '')::int
+ ) AS birth_date,
+ ch->>'snils' AS snils
+FROM ervu_dashboard.recruits_info ri
+JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id
+CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') AS ch
+WHERE
+ '${IDM_ID}' != ''
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ AND jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array'
+ AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date
+ AND c.update_date >= '${M_R_UP_DATE}'::timestamp;
+ Y
+
+
+ 544
+ 224
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ is_guardian
+ is_guardian
+
+
+ N
+ Y
+
+
+ 1200
+ 0
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+ error_description
+
+ error_code
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+ error_description
+
+ error_code
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl
new file mode 100644
index 0000000..5ec494f
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl
@@ -0,0 +1,542 @@
+
+
+
+ citizen_guardianship_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 13:25:52.319
+ -
+ 2025/08/08 13:25:52.319
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Add constants
+ Update
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ Add constants
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1232
+ 384
+
+
+
+ Add constants
+ Constant
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ -1
+ is_guardian
+ true
+ -1
+ N
+ Boolean
+
+
+
+
+ 1040
+ 48
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ error_code
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+
+ 1232
+ 208
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}'
+and status = 'PROCESSING';
+
+
+
+
+ 1808
+ 48
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (
+ id,
+ job_name,
+ status,
+ execution_datetime,
+ error_description,
+ recruitment_id
+)
+VALUES (
+ DEFAULT,
+ '${JOB_NAME}',
+ 'PROCESSING',
+ DEFAULT,
+ NULL,
+ '${IDM_ID}'
+)
+ON CONFLICT (job_name, recruitment_id)
+DO UPDATE SET
+ status = 'PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+
+
+ 160
+ 208
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1488
+ 192
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1504
+ 48
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 704
+ 48
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 896
+ 48
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ =
+ guardianship_external_id
+ guardianship_external_id
+
+ ervu_dashboard
+
citizen_guardianship
+
+ recruit_id
+ recruit_id
+ N
+
+
+ first_name
+ first_name
+ Y
+
+
+ last_name
+ last_name
+ Y
+
+
+ middle_name
+ middle_name
+ Y
+
+
+ birth_date
+ birth_date
+ Y
+
+
+ full_name
+ full_name
+ Y
+
+
+ guardian_id_ern
+ guardian_id_ern
+ Y
+
+
+ guardianship_external_id
+ guardianship_external_id
+ N
+
+
+ snils
+ snils
+ Y
+
+
+ N
+
+
+ 704
+ 208
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ SELECT
+ ri.recruit_id AS recruit_id,
+ (ch->>'id')::uuid AS guardianship_external_id,
+ NULLIF(ch->>'idERN', '') AS guardian_id_ern,
+ ch->'fioOpek'->>'familiya' AS last_name,
+ ch->'fioOpek'->>'imya' AS first_name,
+ ch->'fioOpek'->>'otchestvo' AS middle_name,
+ CONCAT_WS(' ',
+ ch->'fioOpek'->>'familiya',
+ ch->'fioOpek'->>'imya',
+ ch->'fioOpek'->>'otchestvo'
+ ) AS full_name,
+ MAKE_DATE(
+ NULLIF(ch->'dataRozhdDok'->>'god', '')::int,
+ NULLIF(ch->'dataRozhdDok'->>'mesyacz', '')::int,
+ NULLIF(ch->'dataRozhdDok'->>'den', '')::int
+ ) AS birth_date,
+ ch->>'snils' AS snils
+FROM ervu_dashboard.recruits_info ri
+JOIN ervu_dashboard.citizen c ON c.recruit_id = ri.recruit_id
+CROSS JOIN LATERAL jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') AS ch
+WHERE
+ '${IDM_ID}' != ''
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ AND jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array'
+ AND '${M_R_CR_DATE}'::timestamp >= c.recruit_create_date;
+ Y
+
+
+ 416
+ 208
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ is_guardian
+ is_guardian
+
+
+ N
+ Y
+
+
+ 1232
+ 48
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+ error_description
+
+ error_code
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+ error_description
+
+ error_code
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_delta.hpl
new file mode 100644
index 0000000..034d7b5
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_delta.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:16:11.204
+ -
+ 2025/08/11 13:16:11.204
+
+
+
+
+
+ Table input
+ citizen_guardianship_flow_delta.hpl
+ Y
+
+
+ Table input
+ citizen_guardianship_flow_delta.hpl 2
+ Y
+
+
+ Table input
+ citizen_guardianship_flow_delta.hpl 3
+ Y
+
+
+ Table input
+ citizen_guardianship_flow_delta.hpl 4
+ Y
+
+
+ Table input
+ citizen_guardianship_flow_delta.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_guardianship_job'
+where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');
+ N
+
+
+ 352
+ 288
+
+
+
+ citizen_guardianship_flow_delta.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 128
+
+
+
+ citizen_guardianship_flow_delta.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 208
+
+
+
+ citizen_guardianship_flow_delta.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 288
+
+
+
+ citizen_guardianship_flow_delta.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 368
+
+
+
+ citizen_guardianship_flow_delta.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 448
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_on_error.hpl
new file mode 100644
index 0000000..fba8aa1
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_five_flow_on_error.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_on_error
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 12:54:50.126
+ -
+ 2025/08/05 12:54:50.126
+
+
+
+
+
+ Table input
+ citizen_guardianship_flow_repeat.hpl
+ Y
+
+
+ Table input
+ citizen_guardianship_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ citizen_guardianship_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ citizen_guardianship_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ citizen_guardianship_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_guardianship_job'
+where je.status is null or je.status in('ERROR', 'PROCESSING');
+ N
+
+
+ 272
+ 368
+
+
+
+ citizen_guardianship_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 208
+
+
+
+ citizen_guardianship_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 288
+
+
+
+ citizen_guardianship_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 368
+
+
+
+ citizen_guardianship_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 448
+
+
+
+ citizen_guardianship_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 528
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_rows_five_flow_if_error.hpl
deleted file mode 100644
index e5f247b..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitment_rows_five_flow_if_error.hpl
+++ /dev/null
@@ -1,261 +0,0 @@
-
-
-
- recruitment_rows_five_flow_if_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/23 14:28:22.572
- -
- 2025/05/23 14:28:22.572
-
-
-
-
-
- Table input
- Copy rows to result
- Y
-
-
-
- Copy rows to result
- RowsToResult
-
- Y
-
- 1
-
- none
-
-
-
-
- 880
- 288
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH 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
-),
-remains as (
- select
- CASE
- WHEN created_at >= (select cr_flow1 from result_max) and flow_num = 1 THEN created_at
- ELSE null
- END as cr_flow1,
- CASE
- WHEN created_at >= (select cr_flow1 from result_max) and flow_num = 1 THEN idm_id
- ELSE null
- END as idm_flow1,
-
- CASE
- WHEN created_at >= (select cr_flow2 from result_max) and flow_num = 2 THEN created_at
- ELSE null
- END as cr_flow2,
- CASE
- WHEN created_at >= (select cr_flow2 from result_max) and flow_num = 2 THEN idm_id
- ELSE null
- END as idm_flow2,
-
- CASE
- WHEN created_at >= (select cr_flow3 from result_max) and flow_num = 3 THEN created_at
- ELSE null
- END as cr_flow3,
- CASE
- WHEN created_at >= (select cr_flow3 from result_max) and flow_num = 3 THEN idm_id
- ELSE null
- END as idm_flow3,
-
- CASE
- WHEN created_at >= (select cr_flow4 from result_max) and flow_num = 4 THEN created_at
- ELSE null
- END as cr_flow4,
- CASE
- WHEN created_at >= (select cr_flow4 from result_max) and flow_num = 4 THEN idm_id
- ELSE null
- END as idm_flow4,
-
- CASE
- WHEN created_at >= (select cr_flow5 from result_max) and flow_num = 5 THEN created_at
- ELSE null
- END as cr_flow5,
- CASE
- WHEN created_at >= (select cr_flow5 from result_max) and flow_num = 5 THEN idm_id
- ELSE null
- END as idm_flow5
- from splitted
-),
-idm1 as (
- select
- cr_flow1,
- idm_flow1
- from remains
- where cr_flow1 is not null and idm_flow1 is not null
-),
-idm2 as (
- select
- cr_flow2,
- idm_flow2
- from remains
- where cr_flow2 is not null and idm_flow2 is not null
-),
-idm3 as (
- select
- cr_flow3,
- idm_flow3
- from remains
- where cr_flow3 is not null and idm_flow3 is not null
-),
-idm4 as (
- select
- cr_flow4,
- idm_flow4
- from remains
- where cr_flow4 is not null and idm_flow4 is not null
-),
-idm5 as (
- select
- cr_flow5,
- idm_flow5
- from remains
- where cr_flow5 is not null and idm_flow5 is not null
-)
-select
- i1.*,
- i2.*,
- i3.*,
- i4.*,
- i5.*
-FROM
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn
-ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn)
-limit 2
- N
-
-
- 512
- 288
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitments_five_flow.hpl
new file mode 100644
index 0000000..5bc8d05
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_guardianship/recruitments_five_flow.hpl
@@ -0,0 +1,356 @@
+
+
+
+ recruitments_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/04/18 09:48:01.970
+ -
+ 2025/04/18 09:48:01.970
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ citizen_guardianship_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_guardianship_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_guardianship_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_guardianship_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_guardianship_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+idm_id AS recruitment
+FROM ervu_dashboard.recruitment;
+ N
+
+
+ 432
+ 304
+
+
+
+ citizen_guardianship_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 144
+
+
+
+ citizen_guardianship_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 224
+
+
+
+ citizen_guardianship_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 304
+
+
+
+ citizen_guardianship_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 384
+
+
+
+ citizen_guardianship_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_guardianship/parallel/citizen_guardianship_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_guardianship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 464
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53.hpl
deleted file mode 100644
index 8ad6911..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53.hpl
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
- branching_citizen_liability_fz53
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1056
- 256
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- select
- status as STATUS,
- job_name AS PIPELINE
-from public.etl_checkpoints
-where job_name = 'job_citizen_liability_fz53'
- N
-
-
- 816
- 256
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1280
- 256
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53_delta.hpl
deleted file mode 100644
index 45f831f..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53_delta.hpl
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- branching_citizen_liability_fz53_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1056
- 256
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- COALESCE(job_name, 'job_citizen_liability_fz53_delta') AS PIPELINE,
- COALESCE(status, 'ERROR') AS STATUS,
- current_timestamp::timestamp as record_created
-FROM (
- select
- CASE
- WHEN status = 'PROCESSING' THEN 'ERROR'
- ELSE status
- END AS status,
- job_name
- from public.etl_checkpoints
- where job_name = 'job_citizen_liability_fz53_delta'
-
- UNION ALL
-
- SELECT NULL, NULL
- WHERE NOT EXISTS (
- SELECT 1
- FROM public.etl_checkpoints
- WHERE job_name = 'job_citizen_liability_fz53_delta'
- )
-) t
- N
-
-
- 816
- 256
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1280
- 256
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/check_if_need_to_repeat_job.hpl
new file mode 100644
index 0000000..657e764
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/check_if_need_to_repeat_job.hpl
@@ -0,0 +1,86 @@
+
+
+
+ check_if_need_to_repeat_job
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 12:27:51.630
+ -
+ 2025/08/08 12:27:51.630
+
+
+
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ need_to_repeat_job
+ NEED_TO_REPEAT_JOB
+ ROOT_WORKFLOW
+
+
+ Y
+
+
+ 624
+ 288
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (SELECT 1
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_liability_fz53_job'
+where je.status is null or je.status in ('ERROR', 'PROCESSING')
+limit 1
+) as need_to_repeat_job;
+ N
+
+
+ 336
+ 288
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_error.hpl
deleted file mode 100644
index 51525dd..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_error.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_citizen_liability_fz53_flow1_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'citizen_liability_fz53_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_success.hpl
deleted file mode 100644
index 516b012..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_success.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_citizen_liability_fz53_flow1_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'citizen_liability_fz53_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_error.hpl
deleted file mode 100644
index 5765a9e..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_error.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_citizen_liability_fz53_flow2_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_liability_fz53_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_success.hpl
deleted file mode 100644
index f68afc4..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_success.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_citizen_liability_fz53_flow2_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_liability_fz53_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_error.hpl
deleted file mode 100644
index 4436574..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_error.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_citizen_liability_fz53_flow3_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_liability_fz53_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_success.hpl
deleted file mode 100644
index 8988f0c..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_success.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_citizen_liability_fz53_flow3_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_liability_fz53_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_error.hpl
deleted file mode 100644
index 3f3c5b7..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_liability_fz53_flow4_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_liability_fz53_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_success.hpl
deleted file mode 100644
index 8e16f42..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_liability_fz53_flow4_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_liability_fz53_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_error.hpl
deleted file mode 100644
index 8b54d7e..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_liability_fz53_flow5_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_liability_fz53_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_success.hpl
deleted file mode 100644
index ba11212..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_liability_fz53_flow5_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_liability_fz53 ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_liability_fz53_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_error.hpl
deleted file mode 100644
index 84f72b4..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_liability_fz53_flow1_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_liability_fz53_flow1' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_success.hpl
deleted file mode 100644
index 81381cb..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_liability_fz53_flow1_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_liability_fz53_flow1' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl
deleted file mode 100644
index 543c8ef..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
- change_status_delta_citizen_liability_fz53_flow2_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_liability_fz53_flow2' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_success.hpl
deleted file mode 100644
index 24c35d7..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_liability_fz53_flow2_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_liability_fz53_flow2' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_error.hpl
deleted file mode 100644
index 4fd1742..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_liability_fz53_flow3_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_liability_fz53_flow3' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_success.hpl
deleted file mode 100644
index 463529d..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_liability_fz53_flow3_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_liability_fz53_flow3' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_error.hpl
deleted file mode 100644
index 2c43fdf..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_liability_fz53_flow4_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_liability_fz53_flow4' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_success.hpl
deleted file mode 100644
index 4e3ac61..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_liability_fz53_flow4_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_liability_fz53_flow4' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_error.hpl
deleted file mode 100644
index 87c2807..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_liability_fz53_flow5_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_liability_fz53_flow5' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_success.hpl
deleted file mode 100644
index befcfd5..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_citizen_liability_fz53_flow5_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_liability_fz53_flow5' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing.hpl
deleted file mode 100644
index 688659d..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing.hpl
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- change_status_to_processing
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/11 16:14:31.162
- -
- 2025/06/11 16:14:31.162
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 784
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'PROCESSING' AS status,
- 'job_citizen_liability_fz53' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_liability_fz53_flow1' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_liability_fz53_flow2' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_liability_fz53_flow3' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_liability_fz53_flow4' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_liability_fz53_flow5' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 368
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing_delta.hpl
deleted file mode 100644
index 46b50cc..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing_delta.hpl
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
- change_status_to_processing_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 13:42:26.494
- -
- 2025/06/16 13:42:26.494
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1248
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'PROCESSING' AS status,
- 'delta_citizen_liability_fz53' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 832
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_job_citizen_spouse_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_citizen_liability_fz53_job_exists.hpl
similarity index 70%
rename from mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_job_citizen_spouse_exists.hpl
rename to mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_citizen_liability_fz53_job_exists.hpl
index d1c2864..0f2ee35 100644
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_job_citizen_spouse_exists.hpl
+++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_citizen_liability_fz53_job_exists.hpl
@@ -1,7 +1,7 @@
- check_if_job_citizen_spouse_exists
+ check_if_citizen_liability_fz53_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_citizen_spouse') AS job_name,
- COALESCE(status, 'NEW') AS status,
- current_timestamp::timestamp as record_created
-FROM (
- SELECT job_name, status
- FROM public.etl_checkpoints
- WHERE job_name = 'job_citizen_spouse'
-
- UNION ALL
-
- SELECT NULL, NULL
- WHERE NOT EXISTS (
- SELECT 1
- FROM public.etl_checkpoints
- WHERE job_name = 'job_citizen_spouse'
- )
-) t
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'citizen_liability_fz53_job'
+ limit 1
+ ) AS job_executed_flag;N
- 400
- 352
+ 384
+ 336
@@ -120,8 +103,8 @@ FROM (
${STATUS}
- 960
- 240
+ 944
+ 224
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_job_citizen_liability_fz53_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_job_citizen_liability_fz53_exists.hpl
deleted file mode 100644
index e27b362..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_job_citizen_liability_fz53_exists.hpl
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
- check_if_job_citizen_liability_fz53_exists
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/11 15:20:18.267
- -
- 2025/06/11 15:20:18.267
-
-
-
-
-
- Table input
- Set variables
- Y
-
-
- Set variables
- Write to log
- N
-
-
-
- Set variables
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- job_name
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 688
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- COALESCE(job_name, 'job_citizen_liability_fz53') AS job_name,
- COALESCE(status, 'NEW') AS status,
- current_timestamp::timestamp as record_created
-FROM (
- SELECT job_name, status
- FROM public.etl_checkpoints
- WHERE job_name = 'job_citizen_liability_fz53'
-
- UNION ALL
-
- SELECT NULL, NULL
- WHERE NOT EXISTS (
- SELECT 1
- FROM public.etl_checkpoints
- WHERE job_name = 'job_citizen_liability_fz53'
- )
-) t
- N
-
-
- 400
- 352
-
-
-
- Write to log
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- N
- 0
- Basic
- ${STATUS}
-
-
- 960
- 240
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_citizen_liability_fz53_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_citizen_liability_fz53_error.hpl
deleted file mode 100644
index 0d9cb80..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_citizen_liability_fz53_error.hpl
+++ /dev/null
@@ -1,273 +0,0 @@
-
-
-
- checkpoint_snils_inn_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 10:01:04.895
- -
- 2025/06/09 10:01:04.895
-
-
-
-
-
- Select values
- Table output
- N
-
-
- Table input
- Select values
- N
-
-
- Table input
- Table output
- Y
-
-
-
- Select values
- SelectValues
-
- Y
-
- 1
-
- none
-
-
-
- N
-
- idm_id
- idm_id
- String
- -2
- -2
-
- false
-
-
- false
-
-
-
-
-
-
-
-
-
- 1008
- 608
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'job_child_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-)
-select * from for_checkpoints
- N
-
-
- 736
- 448
-
-
-
- Table output
- TableOutput
-
- Y
-
- 1
-
- none
-
-
- 1000
- ervu-dashboard
-
-
- N
- N
- N
- N
- Y
- N
- public
- N
-
etl_checkpoints
- N
- Y
- N
- Y
-
-
- 1248
- 448
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl
deleted file mode 100644
index a261d64..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_citizen_liability_fz53
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 14:19:02.590
- -
- 2025/06/03 14:19:02.590
-
-
-
-
-
- Filter rows
- Abort
- N
-
-
- JSON input state_child_flow1.json
- Filter rows
- N
-
-
- JSON input state_child_flow2.json
- Filter rows
- N
-
-
- JSON input state_child_flow3.json
- Filter rows
- N
-
-
- JSON input state_child_flow4.json
- Filter rows
- N
-
-
- JSON input state_child_flow5.json
- Filter rows
- N
-
-
- Table input
- Insert / update
- Y
-
-
- Dummy (do nothing)
- JSON input state_child_flow1.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow2.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow3.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow4.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow5.json
- N
-
-
-
- Abort
- Abort
-
- Y
-
- 1
-
- none
-
-
- ABORT_WITH_ERROR
- Y
- 0
-
-
- 1264
- 592
-
-
-
- Dummy (do nothing)
- Dummy
-
- Y
-
- 1
-
- none
-
-
-
-
- 352
- 592
-
-
-
- Filter rows
- FilterRows
-
- Y
-
- 1
-
- none
-
-
-
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow1
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow2
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow3
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow4
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow5
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- Abort
-
-
- 944
- 592
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1264
- 208
-
-
-
- JSON input state_child_flow1.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 432
-
-
-
- JSON input state_child_flow2.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 512
-
-
-
- JSON input state_child_flow3.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 592
-
-
-
- JSON input state_child_flow4.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 672
-
-
-
- JSON input state_child_flow5.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 752
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH status_check AS (
- SELECT
- bool_or(status = 'ERROR' AND job_name IN (
- 'citizen_liability_fz53_flow1',
- 'citizen_liability_fz53_flow2',
- 'citizen_liability_fz53_flow3',
- 'citizen_liability_fz53_flow4',
- 'citizen_liability_fz53_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'citizen_liability_fz53_flow1',
- 'citizen_liability_fz53_flow2',
- 'citizen_liability_fz53_flow3',
- 'citizen_liability_fz53_flow4',
- 'citizen_liability_fz53_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_citizen_liability_fz53' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 896
- 208
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53_delta.hpl
deleted file mode 100644
index e5f3aa0..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53_delta.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_citizen_liability_fz53_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 14:19:02.590
- -
- 2025/06/03 14:19:02.590
-
-
-
-
-
- Filter rows
- Abort
- N
-
-
- JSON input state_child_flow1.json
- Filter rows
- N
-
-
- JSON input state_child_flow2.json
- Filter rows
- N
-
-
- JSON input state_child_flow3.json
- Filter rows
- N
-
-
- JSON input state_child_flow4.json
- Filter rows
- N
-
-
- JSON input state_child_flow5.json
- Filter rows
- N
-
-
- Table input
- Insert / update
- Y
-
-
- Dummy (do nothing)
- JSON input state_child_flow1.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow2.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow3.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow4.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow5.json
- N
-
-
-
- Abort
- Abort
-
- Y
-
- 1
-
- none
-
-
- ABORT_WITH_ERROR
- Y
- 0
-
-
- 1264
- 592
-
-
-
- Dummy (do nothing)
- Dummy
-
- Y
-
- 1
-
- none
-
-
-
-
- 352
- 592
-
-
-
- Filter rows
- FilterRows
-
- Y
-
- 1
-
- none
-
-
-
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow1
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow2
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow3
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow4
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow5
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- Abort
-
-
- 944
- 592
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1264
- 208
-
-
-
- JSON input state_child_flow1.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 432
-
-
-
- JSON input state_child_flow2.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 512
-
-
-
- JSON input state_child_flow3.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 592
-
-
-
- JSON input state_child_flow4.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 672
-
-
-
- JSON input state_child_flow5.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 752
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH status_check AS (
- SELECT
- bool_or(status = 'ERROR' AND job_name IN (
- 'delta_citizen_liability_fz53_flow1',
- 'delta_citizen_liability_fz53_flow2',
- 'delta_citizen_liability_fz53_flow3',
- 'delta_citizen_liability_fz53_flow4',
- 'delta_citizen_liability_fz53_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'delta_citizen_liability_fz53_flow1',
- 'delta_citizen_liability_fz53_flow2',
- 'delta_citizen_liability_fz53_flow3',
- 'delta_citizen_liability_fz53_flow4',
- 'delta_citizen_liability_fz53_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_citizen_liability_fz53_delta' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 896
- 208
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/citizen_liability_fz53_job.hwf b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/citizen_liability_fz53_job.hwf
new file mode 100644
index 0000000..2abe41b
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/citizen_liability_fz53_job.hwf
@@ -0,0 +1,358 @@
+
+
+ citizen_liability_fz53_job
+ Y
+
+
+
+ 0
+ -
+ 2025/08/05 12:45:28.561
+ -
+ 2025/08/05 12:45:28.561
+
+
+ COMMENT
+
+
+
+
+ LIMIT_FW
+ ;
+
+
+
+ M_R_CR_DATE
+ 3001-01-01 00:00:00
+
+
+
+ M_R_UP_DATE
+ 0001-01-01 00:00:00
+
+
+
+
+
+ Start
+
+ SPECIAL
+
+ 1
+ 12
+ 60
+ 0
+ 0
+ N
+ 0
+ 1
+ N
+ 192
+ 304
+
+
+
+ check_if_citizen_liability_fz53_job_exists.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_citizen_liability_fz53_job_exists.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 416
+ 304
+
+
+
+ citizen_liability_fz53_job_exists_check
+
+ SIMPLE_EVAL
+
+ boolean
+ false
+ equal
+ equal
+ N
+ variable
+ JOB_EXECUTED_FLAG
+ N
+ 752
+ 304
+
+
+
+ recruitments_five_flow.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/recruitments_five_flow.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ Y
+ 1024
+ 304
+
+
+
+ recruitment_five_flow_on_error.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_on_error.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 992
+ 608
+
+
+
+ check_if_need_to_repeat_job.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/check_if_need_to_repeat_job.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 752
+ 464
+
+
+
+ Simple evaluation
+
+ SIMPLE_EVAL
+
+ boolean
+ true
+ equal
+ equal
+ N
+ variable
+ NEED_TO_REPEAT_JOB
+ N
+ 752
+ 608
+
+
+
+ recruitment_five_flow_delta.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_delta.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 752
+ 800
+
+
+
+
+
+ Start
+ check_if_citizen_liability_fz53_job_exists.hpl
+ Y
+ Y
+ Y
+
+
+ check_if_citizen_liability_fz53_job_exists.hpl
+ citizen_liability_fz53_job_exists_check
+ Y
+ Y
+ N
+
+
+ citizen_liability_fz53_job_exists_check
+ recruitments_five_flow.hpl
+ Y
+ Y
+ N
+
+
+ citizen_liability_fz53_job_exists_check
+ check_if_need_to_repeat_job.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat_job.hpl
+ Simple evaluation
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_on_error.hpl
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_delta.hpl
+ Y
+ N
+ N
+
+
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 864
+ 256
+ Первичка
+ 65
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 864
+ 560
+ Повторка
+ 64
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 672
+ 720
+ Дельта
+ 49
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ Segoe UI
+ 9
+ 150
+ 1200
+ 80
+ citizen_liability_fz53_job
+
+M_R_UP_DATE
+
+M_R_CR_DATE
+
+0001-01-01 00:00:00
+
+3001-01-01 00:00:00
+ 136
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/job_citizen_liability_fz53.hwf b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/job_citizen_liability_fz53.hwf
deleted file mode 100644
index b6fe762..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/job_citizen_liability_fz53.hwf
+++ /dev/null
@@ -1,2480 +0,0 @@
-
-
- job_citizen_liability_fz53
- Y
-
-
-
- 0
- -
- 2025/06/05 14:27:15.055
- -
- 2025/06/05 14:27:15.055
-
-
- M_R_CR_DATE
- 3001-01-01 00:00:00
-
-
-
- M_R_UP_DATE
-
-
-
-
-
-
- Start
-
- SPECIAL
-
- 1
- 12
- 60
- 0
- 0
- N
- 0
- 1
- N
- 368
- 400
-
-
-
- checkpoint_job_citizen_liability_fz53.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1136
- 1280
-
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2352
- 400
-
-
-
- citizen_liability_fz53_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 80
-
-
-
- citizen_liability_fz53_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 240
-
-
-
- citizen_liability_fz53_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 400
-
-
-
- citizen_liability_fz53_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 560
-
-
-
- citizen_liability_fz53_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 720
-
-
-
- Abort workflow
-
- ABORT
-
- N
- N
- 2336
- 208
-
-
-
- Success new citizen_liability_fz53
-
- SUCCESS
-
- N
- 3728
- 432
-
-
-
- branching_citizen_liability_fz53.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1536
- 1280
-
-
-
- Simple citizen_liability_fz53 WHERE SUCCESS
-
- SIMPLE_EVAL
-
- SUCCESS
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1584
- 1680
-
-
-
- Simple citizen_liability_fz53 WHERE ERROR
-
- SIMPLE_EVAL
-
- ERROR
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1840
- 1280
-
-
-
- recruitment_rows_five_flow_if_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_rows_five_flow_if_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2384
- 1280
-
-
-
- Abort workflow 2
-
- ABORT
-
- N
- N
- 2320
- 1040
-
-
-
- delta_citizen_liability_fz53_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow1.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2640
- 1792
-
-
-
- check_if_job_citizen_liability_fz53_exists.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/check_if_job_citizen_liability_fz53_exists.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 576
- 400
-
-
-
- Simple job_citizen_liability_fz53_exists check NEW
-
- SIMPLE_EVAL
-
- NEW
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 896
- 400
-
-
-
- change_status_to_processing.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2368
- 560
-
-
-
- change_status_citizen_liability_fz53_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 80
-
-
-
- change_status_citizen_liability_fz53_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 160
-
-
-
- change_status_citizen_liability_fz53_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 240
-
-
-
- change_status_citizen_liability_fz53_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 320
-
-
-
- change_status_citizen_liability_fz53_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 400
-
-
-
- change_status_citizen_liability_fz53_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 480
-
-
-
- change_status_citizen_liability_fz53_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 560
-
-
-
- change_status_citizen_liability_fz53_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 640
-
-
-
- change_status_citizen_liability_fz53_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 720
-
-
-
- change_status_citizen_liability_fz53_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 800
-
-
-
- checkpoint_job_citizen_liability_fz53.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3456
- 432
-
-
-
- change_status_to_processing.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2288
- 1424
-
-
-
- change_status_to_processing_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_to_processing_delta.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2384
- 2304
-
-
-
- change_status_delta_citizen_liability_fz53_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1792
-
-
-
- change_status_delta_citizen_liability_fz53_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1872
-
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2320
- 2112
-
-
-
- Abort workflow 2 2
-
- ABORT
-
- N
- N
- 2336
- 1952
-
-
-
- delta_citizen_liability_fz53_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow2.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2640
- 1952
-
-
-
- change_status_delta_citizen_liability_fz53_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1952
-
-
-
- change_status_delta_citizen_liability_fz53_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2032
-
-
-
- delta_citizen_liability_fz53_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow3.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2640
- 2112
-
-
-
- change_status_delta_citizen_liability_fz53_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2112
-
-
-
- change_status_delta_citizen_liability_fz53_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2192
-
-
-
- delta_citizen_liability_fz53_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow4.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2640
- 2272
-
-
-
- change_status_delta_citizen_liability_fz53_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2272
-
-
-
- change_status_delta_citizen_liability_fz53_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2352
-
-
-
- delta_citizen_liability_fz53_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow5.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2640
- 2432
-
-
-
- change_status_delta_citizen_liability_fz53_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2432
-
-
-
- change_status_delta_citizen_liability_fz53_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_delta_citizen_liability_fz53_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2512
-
-
-
- branching_citizen_liability_fz53_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/branching_citizen_liability_fz53_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1616
- 2112
-
-
-
- Simple delta_citizen_liability_fz53 WHERE ERROR
-
- SIMPLE_EVAL
-
- ERROR
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1936
- 2112
-
-
-
- delta_citizen_liability_fz53 success
-
- SUCCESS
-
- N
- 2160
- 1952
-
-
-
- checkpoint_job_citizen_liability_fz53_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3440
- 2112
-
-
-
- Success delta_citizen_liability_fz53
-
- SUCCESS
-
- N
- 3728
- 2112
-
-
-
- citizen_liability_fz53_flow1.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 960
-
-
-
- citizen_liability_fz53_flow2.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1120
-
-
-
- citizen_liability_fz53_flow3.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1280
-
-
-
- citizen_liability_fz53_flow4.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1440
-
-
-
- citizen_liability_fz53_flow5.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1600
-
-
-
- Success citizen_liability_fz53 after error
-
- SUCCESS
-
- N
- 3728
- 1312
-
-
-
- change_status_citizen_liability_fz53_flow1_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 960
-
-
-
- change_status_citizen_liability_fz53_flow1_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1040
-
-
-
- change_status_citizen_liability_fz53_flow2_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1120
-
-
-
- change_status_citizen_liability_fz53_flow2_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1200
-
-
-
- change_status_citizen_liability_fz53_flow3_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1280
-
-
-
- change_status_citizen_liability_fz53_flow3_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1360
-
-
-
- change_status_citizen_liability_fz53_flow4_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1440
-
-
-
- change_status_citizen_liability_fz53_flow4_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1520
-
-
-
- change_status_citizen_liability_fz53_flow5_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1600
-
-
-
- change_status_citizen_liability_fz53_flow5_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/change_status_citizen_liability_fz53_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1680
-
-
-
- checkpoint_job_citizen_liability_fz53.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/checkpoints/checkpoint_job_citizen_liability_fz53.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3456
- 1312
-
-
-
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl
- citizen_liability_fz53_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl
- citizen_liability_fz53_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl
- citizen_liability_fz53_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl
- citizen_liability_fz53_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl
- citizen_liability_fz53_flow5.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl
- Abort workflow
- Y
- N
- N
-
-
- branching_citizen_liability_fz53.hpl
- Simple citizen_liability_fz53 WHERE ERROR
- Y
- N
- Y
-
-
- branching_citizen_liability_fz53.hpl
- Simple citizen_liability_fz53 WHERE SUCCESS
- Y
- N
- Y
-
-
- recruitment_rows_five_flow_if_error.hpl
- Abort workflow 2
- Y
- N
- N
-
-
- Start
- check_if_job_citizen_liability_fz53_exists.hpl
- Y
- Y
- Y
-
-
- check_if_job_citizen_liability_fz53_exists.hpl
- Simple job_citizen_liability_fz53_exists check NEW
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow1.hpl
- change_status_citizen_liability_fz53_flow1_success.hpl
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow1.hpl
- change_status_citizen_liability_fz53_flow1_error.hpl
- Y
- N
- N
-
-
- citizen_liability_fz53_flow2.hpl
- change_status_citizen_liability_fz53_flow2_success.hpl
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow2.hpl
- change_status_citizen_liability_fz53_flow2_error.hpl
- Y
- N
- N
-
-
- citizen_liability_fz53_flow3.hpl
- change_status_citizen_liability_fz53_flow3_success.hpl
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow3.hpl
- change_status_citizen_liability_fz53_flow3_error.hpl
- Y
- N
- N
-
-
- citizen_liability_fz53_flow4.hpl
- change_status_citizen_liability_fz53_flow4_success.hpl
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow4.hpl
- change_status_citizen_liability_fz53_flow4_error.hpl
- Y
- N
- N
-
-
- citizen_liability_fz53_flow5.hpl
- change_status_citizen_liability_fz53_flow5_success.hpl
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow5.hpl
- change_status_citizen_liability_fz53_flow5_error.hpl
- Y
- N
- N
-
-
- change_status_citizen_liability_fz53_flow5_error.hpl
- checkpoint_job_citizen_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow5_success.hpl
- checkpoint_job_citizen_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow4_error.hpl
- checkpoint_job_citizen_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow4_success.hpl
- checkpoint_job_citizen_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow3_error.hpl
- checkpoint_job_citizen_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow3_success.hpl
- checkpoint_job_citizen_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow2_error.hpl
- checkpoint_job_citizen_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow2_success.hpl
- checkpoint_job_citizen_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow1_error.hpl
- checkpoint_job_citizen_liability_fz53.hpl
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow1_success.hpl
- checkpoint_job_citizen_liability_fz53.hpl
- Y
- N
- Y
-
-
- checkpoint_job_citizen_liability_fz53.hpl
- Success new citizen_liability_fz53
- Y
- Y
- N
-
-
- checkpoint_job_citizen_liability_fz53.hpl (2)
- branching_citizen_liability_fz53.hpl
- Y
- N
- Y
-
-
- Simple job_citizen_liability_fz53_exists check NEW
- checkpoint_job_citizen_liability_fz53.hpl (2)
- Y
- N
- N
-
-
- delta_citizen_liability_fz53_flow1.hpl
- change_status_delta_citizen_liability_fz53_flow1_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_liability_fz53_flow1.hpl
- change_status_delta_citizen_liability_fz53_flow1_error.hpl
- Y
- N
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl
- change_status_to_processing.hpl
- Y
- Y
- N
-
-
- Simple job_citizen_liability_fz53_exists check NEW
- recruitment_rows_five_flow_citizen_liability_fz53.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- change_status_to_processing.hpl (2)
- Y
- Y
- N
-
-
- Simple citizen_liability_fz53 WHERE ERROR
- recruitment_rows_five_flow_if_error.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl (2)
- delta_citizen_liability_fz53_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl (2)
- change_status_to_processing_delta.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl (2)
- Abort workflow 2 2
- Y
- N
- N
-
-
- delta_citizen_liability_fz53_flow2.hpl
- change_status_delta_citizen_liability_fz53_flow2_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_liability_fz53_flow2.hpl
- change_status_delta_citizen_liability_fz53_flow2_error.hpl
- Y
- N
- N
-
-
- delta_citizen_liability_fz53_flow3.hpl
- change_status_delta_citizen_liability_fz53_flow3_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_liability_fz53_flow3.hpl
- change_status_delta_citizen_liability_fz53_flow3_error.hpl
- Y
- N
- N
-
-
- delta_citizen_liability_fz53_flow4.hpl
- change_status_delta_citizen_liability_fz53_flow4_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_liability_fz53_flow4.hpl
- change_status_delta_citizen_liability_fz53_flow4_error.hpl
- Y
- N
- N
-
-
- delta_citizen_liability_fz53_flow5.hpl
- change_status_delta_citizen_liability_fz53_flow5_success.hpl
- Y
- Y
- N
-
-
- delta_citizen_liability_fz53_flow5.hpl
- change_status_delta_citizen_liability_fz53_flow5_error.hpl
- Y
- N
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl (2)
- delta_citizen_liability_fz53_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl (2)
- delta_citizen_liability_fz53_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl (2)
- delta_citizen_liability_fz53_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_liability_fz53.hpl (2)
- delta_citizen_liability_fz53_flow5.hpl
- Y
- Y
- N
-
-
- Simple citizen_liability_fz53 WHERE SUCCESS
- branching_citizen_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- Simple delta_citizen_liability_fz53 WHERE ERROR
- delta_citizen_liability_fz53 success
- Y
- N
- N
-
-
- branching_citizen_liability_fz53_delta.hpl
- Simple delta_citizen_liability_fz53 WHERE ERROR
- Y
- Y
- N
-
-
- Simple delta_citizen_liability_fz53 WHERE ERROR
- recruitment_rows_five_flow_citizen_liability_fz53.hpl (2)
- Y
- Y
- N
-
-
- change_status_delta_citizen_liability_fz53_flow1_success.hpl
- checkpoint_job_citizen_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_liability_fz53_flow3_success.hpl
- checkpoint_job_citizen_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_liability_fz53_flow2_error.hpl
- checkpoint_job_citizen_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_liability_fz53_flow2_success.hpl
- checkpoint_job_citizen_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_liability_fz53_flow1_error.hpl
- checkpoint_job_citizen_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_liability_fz53_flow3_error.hpl
- checkpoint_job_citizen_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_liability_fz53_flow4_success.hpl
- checkpoint_job_citizen_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_liability_fz53_flow4_error.hpl
- checkpoint_job_citizen_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_liability_fz53_flow5_success.hpl
- checkpoint_job_citizen_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_liability_fz53_flow5_error.hpl
- checkpoint_job_citizen_liability_fz53_delta.hpl
- Y
- Y
- N
-
-
- checkpoint_job_citizen_liability_fz53_delta.hpl
- Success delta_citizen_liability_fz53
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow1.hpl 2
- change_status_citizen_liability_fz53_flow1_success.hpl 2
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow1.hpl 2
- change_status_citizen_liability_fz53_flow1_error.hpl 2
- Y
- N
- N
-
-
- citizen_liability_fz53_flow2.hpl 2
- change_status_citizen_liability_fz53_flow2_success.hpl 2
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow2.hpl 2
- change_status_citizen_liability_fz53_flow2_error.hpl 2
- Y
- N
- N
-
-
- citizen_liability_fz53_flow3.hpl 2
- change_status_citizen_liability_fz53_flow3_success.hpl 2
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow3.hpl 2
- change_status_citizen_liability_fz53_flow3_error.hpl 2
- Y
- N
- N
-
-
- citizen_liability_fz53_flow4.hpl 2
- change_status_citizen_liability_fz53_flow4_success.hpl 2
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow4.hpl 2
- change_status_citizen_liability_fz53_flow4_error.hpl 2
- Y
- N
- N
-
-
- citizen_liability_fz53_flow5.hpl 2
- change_status_citizen_liability_fz53_flow5_success.hpl 2
- Y
- Y
- N
-
-
- citizen_liability_fz53_flow5.hpl 2
- change_status_citizen_liability_fz53_flow5_error.hpl 2
- Y
- N
- N
-
-
- change_status_citizen_liability_fz53_flow1_success.hpl 2
- checkpoint_job_citizen_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow1_error.hpl 2
- checkpoint_job_citizen_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow2_success.hpl 2
- checkpoint_job_citizen_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow2_error.hpl 2
- checkpoint_job_citizen_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow3_success.hpl 2
- checkpoint_job_citizen_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow3_error.hpl 2
- checkpoint_job_citizen_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow4_success.hpl 2
- checkpoint_job_citizen_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow4_error.hpl 2
- checkpoint_job_citizen_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow5_success.hpl 2
- checkpoint_job_citizen_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_liability_fz53_flow5_error.hpl 2
- checkpoint_job_citizen_liability_fz53.hpl 2
- Y
- N
- Y
-
-
- checkpoint_job_citizen_liability_fz53.hpl 2
- Success citizen_liability_fz53 after error
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_liability_fz53_flow3.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_liability_fz53_flow2.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_liability_fz53_flow1.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_liability_fz53_flow4.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_liability_fz53_flow5.hpl 2
- Y
- Y
- N
-
-
-
-
- 251
- 232
- 201
- 90
- 58
- 14
- N
- 90
- 58
- 14
- N
- Segoe UI
- 9
- 72
- 1088
- 176
- 0001-01-01 00:00:00
-
-3001-01-01 00:00:00
-
- 114
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl
new file mode 100644
index 0000000..cd944ae
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl
@@ -0,0 +1,554 @@
+
+
+
+ citizen_liability_fz53_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 14:31:22.799
+ -
+ 2025/08/05 14:31:22.799
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Table output
+ Change job status on error
+ Y
+
+
+ Table output
+ Group by
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Table input
+ Table output
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1360
+ 1056
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1360
+ 832
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1808
+ 656
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id)
+VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}');
+
+
+
+
+ 320
+ 832
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1584
+ 656
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1584
+ 768
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_liability_fz53_raw
+ is_liability_fz53
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 720
+ 656
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 912
+ 656
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.decision-document-service
+ N
+ SELECT
+ i.recruit_id,
+ i.created_at,
+ i.updated_at,
+ i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
+ i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
+ i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
+ i.decision_number AS case_number, -- номер дела об административном правонарушении
+ i.decision_date AS date_resolution, -- дата постановления
+ i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
+ i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
+ i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
+ CASE
+ WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
+ WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
+ WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
+ ELSE NULL
+ END AS reason_use, -- причина применения
+ i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
+ i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
+ CASE
+ WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
+ WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
+ ELSE NULL
+ END AS type_punishment, -- вид наказания
+ i.hidden,
+ CASE
+ WHEN i.hidden is false THEN 1
+ ELSE 0
+ END AS is_liability_fz53
+FROM public.infringement i
+JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}' >= i.created_at
+ --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
+WHERE -- hidden IS FALSE AND
+ type = 'ADMINISTRATIVE'
+
+${LIMIT_FW}
+ Y
+
+
+ 512
+ 832
+
+
+
+ Table output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ 1000
+ ervu-dashboard
+
+
+ recruit_id
+ recruit_id
+
+
+ created_at
+ created_at
+
+
+ updated_at
+ updated_at
+
+
+ case_number_before
+ case_number_before
+
+
+ date_initiation
+ date_initiation
+
+
+ body_initiated
+ body_initiated
+
+
+ case_number
+ case_number
+
+
+ date_resolution
+ date_resolution
+
+
+ article_koap_rf
+ article_koap_rf
+
+
+ court_decision
+ court_decision
+
+
+ name_vc
+ name_vc
+
+
+ reason_use
+ reason_use
+
+
+ start_date
+ start_date
+
+
+ size_term_punishment
+ size_term_punishment
+
+
+ hidden
+ hidden
+
+
+ type_punishment
+ type_punishment
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
citizen_liability_fz53
+ N
+ Y
+ N
+ Y
+
+
+ 720
+ 832
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- date_resolution
- date_resolution
- Y
-
-
- article_koap_rf
- article_koap_rf
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- name_vc
- name_vc
- Y
-
-
- reason_use
- reason_use
- Y
-
-
- start_date
- start_date
- Y
-
-
- size_term_punishment
- size_term_punishment
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- has_liability_fz53
- has_liability_fz53
- Y
-
-
- N
-
-
- 880
- 288
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- postgres.decision-document-service
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
- i.decision_number AS case_number, -- номер дела об административном правонарушении
- i.decision_date AS date_resolution, -- дата постановления
- i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
- i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
- i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
- CASE
- WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
- WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
- WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
- ELSE NULL
- END AS reason_use, -- причина применения
- i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
- i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE -- hidden IS FALSE AND
- type = 'ADMINISTRATIVE'
- Y
-
-
- 448
- 288
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow2.hpl
deleted file mode 100644
index 1950156..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow2.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- citizen_liability_fz53_flow2
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- date_resolution
- date_resolution
- Y
-
-
- article_koap_rf
- article_koap_rf
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- name_vc
- name_vc
- Y
-
-
- reason_use
- reason_use
- Y
-
-
- start_date
- start_date
- Y
-
-
- size_term_punishment
- size_term_punishment
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- has_liability_fz53
- has_liability_fz53
- Y
-
-
- N
-
-
- 960
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- postgres.decision-document-service
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
- i.decision_number AS case_number, -- номер дела об административном правонарушении
- i.decision_date AS date_resolution, -- дата постановления
- i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
- i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
- i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
- CASE
- WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
- WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
- WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
- ELSE NULL
- END AS reason_use, -- причина применения
- i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
- i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE -- hidden IS FALSE AND
- type = 'ADMINISTRATIVE'
- Y
-
-
- 528
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow3.hpl
deleted file mode 100644
index cb454d6..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow3.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- citizen_liability_fz53_flow3
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- date_resolution
- date_resolution
- Y
-
-
- article_koap_rf
- article_koap_rf
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- name_vc
- name_vc
- Y
-
-
- reason_use
- reason_use
- Y
-
-
- start_date
- start_date
- Y
-
-
- size_term_punishment
- size_term_punishment
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- has_liability_fz53
- has_liability_fz53
- Y
-
-
- N
-
-
- 1056
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- postgres.decision-document-service
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
- i.decision_number AS case_number, -- номер дела об административном правонарушении
- i.decision_date AS date_resolution, -- дата постановления
- i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
- i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
- i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
- CASE
- WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
- WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
- WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
- ELSE NULL
- END AS reason_use, -- причина применения
- i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
- i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE -- hidden IS FALSE AND
- type = 'ADMINISTRATIVE'
- Y
-
-
- 624
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow4.hpl
deleted file mode 100644
index 49a4f14..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow4.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- citizen_liability_fz53_flow4
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- date_resolution
- date_resolution
- Y
-
-
- article_koap_rf
- article_koap_rf
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- name_vc
- name_vc
- Y
-
-
- reason_use
- reason_use
- Y
-
-
- start_date
- start_date
- Y
-
-
- size_term_punishment
- size_term_punishment
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- has_liability_fz53
- has_liability_fz53
- Y
-
-
- N
-
-
- 1008
- 384
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- postgres.decision-document-service
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
- i.decision_number AS case_number, -- номер дела об административном правонарушении
- i.decision_date AS date_resolution, -- дата постановления
- i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
- i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
- i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
- CASE
- WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
- WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
- WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
- ELSE NULL
- END AS reason_use, -- причина применения
- i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
- i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE -- hidden IS FALSE AND
- type = 'ADMINISTRATIVE'
- Y
-
-
- 576
- 384
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow5.hpl
deleted file mode 100644
index 88a3711..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow5.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- citizen_liability_fz53_flow5
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- date_resolution
- date_resolution
- Y
-
-
- article_koap_rf
- article_koap_rf
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- name_vc
- name_vc
- Y
-
-
- reason_use
- reason_use
- Y
-
-
- start_date
- start_date
- Y
-
-
- size_term_punishment
- size_term_punishment
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- has_liability_fz53
- has_liability_fz53
- Y
-
-
- N
-
-
- 1072
- 368
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- postgres.decision-document-service
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
- i.decision_number AS case_number, -- номер дела об административном правонарушении
- i.decision_date AS date_resolution, -- дата постановления
- i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
- i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
- i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
- CASE
- WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
- WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
- WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
- ELSE NULL
- END AS reason_use, -- причина применения
- i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
- i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE -- hidden IS FALSE AND
- type = 'ADMINISTRATIVE'
- Y
-
-
- 640
- 368
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl
new file mode 100644
index 0000000..a39fd49
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl
@@ -0,0 +1,575 @@
+
+
+
+ citizen_liability_fz53_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:22:56.048
+ -
+ 2025/08/11 13:22:56.048
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1520
+ 560
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1520
+ 400
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1920
+ 240
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 416
+ 400
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1712
+ 240
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1712
+ 336
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_liability_fz53_raw
+ is_liability_fz53
+ MAX
+
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+
+ grp
+
+
+ 880
+ 240
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 1072
+ 240
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ =
+ created_at
+ created_at
+
+ ervu_dashboard
+
citizen_liability_fz53
+
+ recruit_id
+ recruit_id
+ N
+
+
+ created_at
+ created_at
+ N
+
+
+ updated_at
+ updated_at
+ Y
+
+
+ case_number_before
+ case_number_before
+ Y
+
+
+ date_initiation
+ date_initiation
+ Y
+
+
+ body_initiated
+ body_initiated
+ Y
+
+
+ case_number
+ case_number
+ Y
+
+
+ date_resolution
+ date_resolution
+ Y
+
+
+ article_koap_rf
+ article_koap_rf
+ Y
+
+
+ court_decision
+ court_decision
+ Y
+
+
+ name_vc
+ name_vc
+ Y
+
+
+ reason_use
+ reason_use
+ Y
+
+
+ start_date
+ start_date
+ Y
+
+
+ size_term_punishment
+ size_term_punishment
+ Y
+
+
+ type_punishment
+ type_punishment
+ Y
+
+
+ hidden
+ hidden
+ Y
+
+
+ N
+
+
+ 880
+ 400
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.decision-document-service
+ N
+ SELECT
+ i.recruit_id,
+ i.created_at,
+ i.updated_at,
+ i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
+ i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
+ i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
+ i.decision_number AS case_number, -- номер дела об административном правонарушении
+ i.decision_date AS date_resolution, -- дата постановления
+ i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
+ i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
+ i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
+ CASE
+ WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
+ WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
+ WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
+ ELSE NULL
+ END AS reason_use, -- причина применения
+ i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
+ i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
+ CASE
+ WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
+ WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
+ ELSE NULL
+ END AS type_punishment, -- вид наказания
+ i.hidden,
+ CASE
+ WHEN i.hidden is false THEN 1
+ ELSE 0
+ END AS is_liability_fz53
+FROM public.infringement i
+JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}'
+ AND i.updated_at >= '${M_R_UP_DATE}'::timestamp --coalesce(i.updated_at,i.created_at)
+ --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
+WHERE -- hidden IS FALSE AND
+ type = 'ADMINISTRATIVE'
+
+${LIMIT_FW}
+ Y
+
+
+ 624
+ 400
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_liability_fz53
+ has_liability_fz53
+
+
+ N
+ Y
+
+
+ 1520
+ 240
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_liability_fz53
+ has_liability_fz53_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1296
+ 240
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl
new file mode 100644
index 0000000..6a020cb
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl
@@ -0,0 +1,588 @@
+
+
+
+ citizen_liability_fz53_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 13:25:52.319
+ -
+ 2025/08/08 13:25:52.319
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1312
+ 400
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1312
+ 208
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1872
+ 80
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (
+ id,
+ job_name,
+ status,
+ execution_datetime,
+ error_description,
+ recruitment_id
+)
+VALUES (
+ DEFAULT,
+ '${JOB_NAME}',
+ 'PROCESSING',
+ DEFAULT,
+ NULL,
+ '${IDM_ID}'
+)
+ON CONFLICT (job_name, recruitment_id)
+DO UPDATE SET
+ status = 'PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+
+
+
+ 272
+ 208
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1584
+ 80
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1584
+ 176
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_liability_fz53_raw
+ is_liability_fz53
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 672
+ 80
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 864
+ 80
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ =
+ created_at
+ created_at
+
+ ervu_dashboard
+
citizen_liability_fz53
+
+ recruit_id
+ recruit_id
+ N
+
+
+ created_at
+ created_at
+ N
+
+
+ updated_at
+ updated_at
+ Y
+
+
+ case_number_before
+ case_number_before
+ Y
+
+
+ date_initiation
+ date_initiation
+ Y
+
+
+ body_initiated
+ body_initiated
+ Y
+
+
+ case_number
+ case_number
+ Y
+
+
+ date_resolution
+ date_resolution
+ Y
+
+
+ article_koap_rf
+ article_koap_rf
+ Y
+
+
+ court_decision
+ court_decision
+ Y
+
+
+ name_vc
+ name_vc
+ Y
+
+
+ reason_use
+ reason_use
+ Y
+
+
+ start_date
+ start_date
+ Y
+
+
+ size_term_punishment
+ size_term_punishment
+ Y
+
+
+ type_punishment
+ type_punishment
+ Y
+
+
+ hidden
+ hidden
+ Y
+
+
+ N
+
+
+ 672
+ 208
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.decision-document-service
+ N
+ SELECT
+ i.recruit_id,
+ i.created_at,
+ i.updated_at,
+ i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
+ i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
+ i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
+ i.decision_number AS case_number, -- номер дела об административном правонарушении
+ i.decision_date AS date_resolution, -- дата постановления
+ i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
+ i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
+ i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
+ CASE
+ WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
+ WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
+ WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
+ ELSE NULL
+ END AS reason_use, -- причина применения
+ i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
+ i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
+ CASE
+ WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
+ WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
+ ELSE NULL
+ END AS type_punishment, -- вид наказания
+ i.hidden,
+ CASE
+ WHEN i.hidden is false THEN 1
+ ELSE 0
+ END AS is_liability_fz53
+FROM public.infringement i
+JOIN public.recruit r ON r.id = i.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(r.current_recruitment, r.target_recruitment) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}' >= i.created_at
+ --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
+WHERE -- hidden IS FALSE AND
+ type = 'ADMINISTRATIVE'
+
+${LIMIT_FW}
+ Y
+
+
+ 480
+ 208
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- date_resolution
- date_resolution
- Y
-
-
- article_koap_rf
- article_koap_rf
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- name_vc
- name_vc
- Y
-
-
- reason_use
- reason_use
- Y
-
-
- start_date
- start_date
- Y
-
-
- size_term_punishment
- size_term_punishment
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- has_liability_fz53
- has_liability_fz53
- Y
-
-
- N
-
-
- 1168
- 336
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- postgres.decision-document-service
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
- i.decision_number AS case_number, -- номер дела об административном правонарушении
- i.decision_date AS date_resolution, -- дата постановления
- i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
- i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
- i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
- CASE
- WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
- WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
- WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
- ELSE NULL
- END AS reason_use, -- причина применения
- i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
- i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F1}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE -- hidden IS FALSE AND
- type = 'ADMINISTRATIVE'
- Y
-
-
- 736
- 336
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow2.hpl
deleted file mode 100644
index 15704f1..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow2.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- delta_citizen_liability_fz53_flow2
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- date_resolution
- date_resolution
- Y
-
-
- article_koap_rf
- article_koap_rf
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- name_vc
- name_vc
- Y
-
-
- reason_use
- reason_use
- Y
-
-
- start_date
- start_date
- Y
-
-
- size_term_punishment
- size_term_punishment
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- has_liability_fz53
- has_liability_fz53
- Y
-
-
- N
-
-
- 1056
- 240
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- postgres.decision-document-service
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
- i.decision_number AS case_number, -- номер дела об административном правонарушении
- i.decision_date AS date_resolution, -- дата постановления
- i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
- i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
- i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
- CASE
- WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
- WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
- WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
- ELSE NULL
- END AS reason_use, -- причина применения
- i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
- i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F2}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE -- hidden IS FALSE AND
- type = 'ADMINISTRATIVE'
- Y
-
-
- 624
- 240
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow3.hpl
deleted file mode 100644
index e1fe0b5..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow3.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- delta_citizen_liability_fz53_flow3
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- date_resolution
- date_resolution
- Y
-
-
- article_koap_rf
- article_koap_rf
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- name_vc
- name_vc
- Y
-
-
- reason_use
- reason_use
- Y
-
-
- start_date
- start_date
- Y
-
-
- size_term_punishment
- size_term_punishment
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- has_liability_fz53
- has_liability_fz53
- Y
-
-
- N
-
-
- 1152
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- postgres.decision-document-service
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
- i.decision_number AS case_number, -- номер дела об административном правонарушении
- i.decision_date AS date_resolution, -- дата постановления
- i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
- i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
- i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
- CASE
- WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
- WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
- WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
- ELSE NULL
- END AS reason_use, -- причина применения
- i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
- i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F3}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE -- hidden IS FALSE AND
- type = 'ADMINISTRATIVE'
- Y
-
-
- 720
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow4.hpl
deleted file mode 100644
index 19d16e5..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow4.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- delta_citizen_liability_fz53_flow4
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- date_resolution
- date_resolution
- Y
-
-
- article_koap_rf
- article_koap_rf
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- name_vc
- name_vc
- Y
-
-
- reason_use
- reason_use
- Y
-
-
- start_date
- start_date
- Y
-
-
- size_term_punishment
- size_term_punishment
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- has_liability_fz53
- has_liability_fz53
- Y
-
-
- N
-
-
- 1104
- 336
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- postgres.decision-document-service
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
- i.decision_number AS case_number, -- номер дела об административном правонарушении
- i.decision_date AS date_resolution, -- дата постановления
- i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
- i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
- i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
- CASE
- WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
- WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
- WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
- ELSE NULL
- END AS reason_use, -- причина применения
- i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
- i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F4}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE -- hidden IS FALSE AND
- type = 'ADMINISTRATIVE'
- Y
-
-
- 672
- 336
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow5.hpl
deleted file mode 100644
index f18a7f4..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/parallel/delta_citizen_liability_fz53_flow5.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- delta_citizen_liability_fz53_flow5
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- =
- created_at
- created_at
-
- ervu_dashboard
-
citizen_liability_fz53
-
- recruit_id
- recruit_id
- N
-
-
- created_at
- created_at
- N
-
-
- updated_at
- updated_at
- Y
-
-
- case_number_before
- case_number_before
- Y
-
-
- date_initiation
- date_initiation
- Y
-
-
- body_initiated
- body_initiated
- Y
-
-
- case_number
- case_number
- Y
-
-
- date_resolution
- date_resolution
- Y
-
-
- article_koap_rf
- article_koap_rf
- Y
-
-
- court_decision
- court_decision
- Y
-
-
- name_vc
- name_vc
- Y
-
-
- reason_use
- reason_use
- Y
-
-
- start_date
- start_date
- Y
-
-
- size_term_punishment
- size_term_punishment
- Y
-
-
- type_punishment
- type_punishment
- Y
-
-
- has_liability_fz53
- has_liability_fz53
- Y
-
-
- N
-
-
- 1184
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- postgres.decision-document-service
- N
- 0
- SELECT
- i.recruit_id,
- i.created_at,
- i.updated_at,
- i.extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный)
- i.extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении
- i.extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении
- i.decision_number AS case_number, -- номер дела об административном правонарушении
- i.decision_date AS date_resolution, -- дата постановления
- i.extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ
- i.extra_info->>'court' AS court_decision, -- суд, вынесший постановление
- i.extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер
- CASE
- WHEN i.decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету'
- WHEN i.decision_reason = '2' THEN 'Уклонение от медицинского обследования'
- WHEN i.decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета'
- ELSE NULL
- END AS reason_use, -- причина применения
- i.extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера
- i.extra_info->>'description' AS size_term_punishment, -- размер и срок наказания
- CASE
- WHEN i.extra_info->>'punishment' = '1' THEN 'Предупреждение'
- WHEN i.extra_info->>'punishment' = '2' THEN 'Административный штраф'
- ELSE NULL
- END AS type_punishment, -- вид наказания
- CASE
- WHEN i.hidden is false THEN true
- ELSE false
- END AS has_liability_fz53
-FROM public.infringement i
-JOIN public.recruit r ON r.id = i.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку
- AND COALESCE(r.current_recruitment, r.target_recruitment) = '${ID_F5}'
- --AND '${INFRINGEMENT_DATE}'::timestamp <= coalesce(i.updated_at, i.created_at) -- для дельты
-WHERE -- hidden IS FALSE AND
- type = 'ADMINISTRATIVE'
- Y
-
-
- 752
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_delta.hpl
new file mode 100644
index 0000000..64316a1
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_delta.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:16:11.204
+ -
+ 2025/08/11 13:16:11.204
+
+
+
+
+
+ Table input
+ citizen_liability_fz53_flow_delta.hpl
+ Y
+
+
+ Table input
+ citizen_liability_fz53_flow_delta.hpl 2
+ Y
+
+
+ Table input
+ citizen_liability_fz53_flow_delta.hpl 3
+ Y
+
+
+ Table input
+ citizen_liability_fz53_flow_delta.hpl 4
+ Y
+
+
+ Table input
+ citizen_liability_fz53_flow_delta.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_liability_fz53_job'
+where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');
+ N
+
+
+ 352
+ 288
+
+
+
+ citizen_liability_fz53_flow_delta.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 576
+ 128
+
+
+
+ citizen_liability_fz53_flow_delta.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 576
+ 208
+
+
+
+ citizen_liability_fz53_flow_delta.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 576
+ 288
+
+
+
+ citizen_liability_fz53_flow_delta.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 576
+ 368
+
+
+
+ citizen_liability_fz53_flow_delta.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 576
+ 448
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_on_error.hpl
new file mode 100644
index 0000000..597384a
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_five_flow_on_error.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_on_error
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 12:54:50.126
+ -
+ 2025/08/05 12:54:50.126
+
+
+
+
+
+ Table input
+ citizen_liability_fz53_flow_repeat.hpl
+ Y
+
+
+ Table input
+ citizen_liability_fz53_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ citizen_liability_fz53_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ citizen_liability_fz53_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ citizen_liability_fz53_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_liability_fz53_job'
+where je.status is null or je.status in('ERROR', 'PROCESSING');
+ N
+
+
+ 272
+ 368
+
+
+
+ citizen_liability_fz53_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 480
+ 208
+
+
+
+ citizen_liability_fz53_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 480
+ 288
+
+
+
+ citizen_liability_fz53_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 480
+ 368
+
+
+
+ citizen_liability_fz53_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 480
+ 448
+
+
+
+ citizen_liability_fz53_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 480
+ 528
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_rows_five_flow_if_error.hpl
deleted file mode 100644
index 92f9426..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitment_rows_five_flow_if_error.hpl
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-
- recruitment_rows_five_flow_if_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/23 14:28:22.572
- -
- 2025/05/23 14:28:22.572
-
-
-
-
-
- Table input
- Copy rows to result
- Y
-
-
-
- Copy rows to result
- RowsToResult
-
- Y
-
- 1
-
- none
-
-
-
-
- 880
- 288
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-fr_check AS (
- SELECT
- last_recruitment_id AS recruitment_id,
- recruitment_created_date,
- status,
- job_name
- FROM public.etl_checkpoints
- WHERE status = 'ERROR' AND job_name IN ('citizen_liability_fz53_flow1', 'citizen_liability_fz53_flow2', 'citizen_liability_fz53_flow3', 'citizen_liability_fz53_flow4', 'citizen_liability_fz53_flow5')
-),
-ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num,
- ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position
- FROM ordered
-),
-pivoted AS (
- SELECT
- position,
- MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow1') THEN created_at END) AS cr_flow1,
- MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow1') THEN idm_id::text END) AS idm_flow1,
- MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow2') THEN created_at END) AS cr_flow2,
- MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow2') THEN idm_id::text END) AS idm_flow2,
- MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow3') THEN created_at END) AS cr_flow3,
- MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow3') THEN idm_id::text END) AS idm_flow3,
- MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow4') THEN created_at END) AS cr_flow4,
- MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow4') THEN idm_id::text END) AS idm_flow4,
- MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow5') THEN created_at END) AS cr_flow5,
- MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'citizen_liability_fz53_flow5') THEN idm_id::text END) AS idm_flow5
- FROM splitted
- GROUP BY position
-),
-remains as (
- SELECT
- position,
- cr_flow1,
- idm_flow1::uuid,
- cr_flow2,
- idm_flow2::uuid,
- cr_flow3,
- idm_flow3::uuid,
- cr_flow4,
- idm_flow4::uuid,
- cr_flow5,
- idm_flow5::uuid
- FROM pivoted
- WHERE (cr_flow1 IS NOT NULL AND idm_flow1 IS NOT NULL)
- OR (cr_flow2 IS NOT NULL AND idm_flow2 IS NOT NULL)
- OR (cr_flow3 IS NOT NULL AND idm_flow3 IS NOT NULL)
- OR (cr_flow4 IS NOT NULL AND idm_flow4 IS NOT NULL)
- OR (cr_flow5 IS NOT NULL AND idm_flow5 IS NOT NULL)
- order by position
-),
-idm1 as (
- select
- cr_flow1,
- idm_flow1
- from remains
- where cr_flow1 is not null and idm_flow1 is not null
-),
-idm2 as (
- select
- cr_flow2,
- idm_flow2
- from remains
- where cr_flow2 is not null and idm_flow2 is not null
-),
-idm3 as (
- select
- cr_flow3,
- idm_flow3
- from remains
- where cr_flow3 is not null and idm_flow3 is not null
-),
-idm4 as (
- select
- cr_flow4,
- idm_flow4
- from remains
- where cr_flow4 is not null and idm_flow4 is not null
-),
-idm5 as (
- select
- cr_flow5,
- idm_flow5
- from remains
- where cr_flow5 is not null and idm_flow5 is not null
-)
-select
- i1.*,
- i2.*,
- i3.*,
- i4.*,
- i5.*
-FROM
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn
-ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn)
-limit 2
- N
-
-
- 512
- 288
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitments_five_flow.hpl
new file mode 100644
index 0000000..ccea1cd
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_liability_fz53/recruitments_five_flow.hpl
@@ -0,0 +1,373 @@
+
+
+
+ recruitments_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/04/18 09:48:01.970
+ -
+ 2025/04/18 09:48:01.970
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ citizen_liability_fz53_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_liability_fz53_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_liability_fz53_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_liability_fz53_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_liability_fz53_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+idm_id AS recruitment
+FROM ervu_dashboard.recruitment
+${COMMENT}/*
+where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a',
+'cff66da8-2be0-4839-bd8e-332b1a150031',
+'34c8685e-f08a-4877-afb1-a0589800a21c',
+'0e10678c-f272-41c3-94dd-c15830321f9a',
+'9703f108-761a-467a-aad3-89617e5539ed',
+'55eae374-9bb5-4295-9e3a-5fbcdaba870d',
+'dad6c101-34be-45c3-8173-57190cb69dfb',
+'fc10523f-af31-4f6b-b0e2-00799758f634',
+'61807cc2-9913-4060-8802-0672877c28c8',
+'eba7fd7d-e3da-49a7-8e65-8fc85e47190e',
+'f59afe6d-c166-4196-a489-6d17f02fc05e',
+'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9',
+'0fe2bdf0-afbb-402d-93da-67e511799afa',
+'6139de3b-2378-496f-9fca-7df7dab90832',
+'50ba73dd-1726-48f1-8b7c-7a77ff965299')
+${COMMENT}*/
+ Y
+
+
+ 432
+ 304
+
+
+
+ citizen_liability_fz53_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 144
+
+
+
+ citizen_liability_fz53_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 224
+
+
+
+ citizen_liability_fz53_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 304
+
+
+
+ citizen_liability_fz53_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 384
+
+
+
+ citizen_liability_fz53_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_liability_fz53/parallel/citizen_liability_fz53_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_liability_fz53_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 464
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/branching_citizen_spouse.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/branching_citizen_spouse.hpl
deleted file mode 100644
index a4251dd..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/branching_citizen_spouse.hpl
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
- branching_citizen_spouse
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1056
- 256
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- select
- status as STATUS,
- job_name AS PIPELINE
-from public.etl_checkpoints
-where job_name = 'job_citizen_spouse'
- N
-
-
- 816
- 256
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1280
- 256
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/check_if_need_to_repeat_job.hpl
new file mode 100644
index 0000000..d371924
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_spouse/check_if_need_to_repeat_job.hpl
@@ -0,0 +1,86 @@
+
+
+
+ check_if_need_to_repeat_job
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 12:27:51.630
+ -
+ 2025/08/08 12:27:51.630
+
+
+
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ need_to_repeat_job
+ NEED_TO_REPEAT_JOB
+ ROOT_WORKFLOW
+
+
+ Y
+
+
+ 624
+ 288
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (SELECT 1
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_spouse_job'
+where je.status is null or je.status in ('ERROR', 'PROCESSING')
+limit 1
+) as need_to_repeat_job;
+ N
+
+
+ 336
+ 288
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_error.hpl
deleted file mode 100644
index dc19556..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_error.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_citizen_spouse_flow1_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'citizen_spouse_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_success.hpl
deleted file mode 100644
index 645816b..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_success.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_citizen_spouse_flow1_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'citizen_spouse_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_error.hpl
deleted file mode 100644
index 8380623..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_error.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_citizen_spouse_flow2_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_spouse_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_success.hpl
deleted file mode 100644
index baa3bbb..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_success.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_citizen_spouse_flow2_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_spouse_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_error.hpl
deleted file mode 100644
index 495f0f1..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_error.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_citizen_spouse_flow3_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_spouse_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_success.hpl
deleted file mode 100644
index e399fd1..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_success.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_citizen_spouse_flow3_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_spouse_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_error.hpl
deleted file mode 100644
index 5deb8d0..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_spouse_flow4_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_spouse_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_success.hpl
deleted file mode 100644
index f8024a0..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_spouse_flow4_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_spouse_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_error.hpl
deleted file mode 100644
index 32fcfb9..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_spouse_flow5_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_spouse_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_success.hpl
deleted file mode 100644
index 1bf12a5..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_citizen_spouse_flow5_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_spouse ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'citizen_spouse_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_error.hpl
deleted file mode 100644
index dcc34fb..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_error.hpl
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
- change_status_delta_citizen_spouse_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_spouse' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
-union all
-
- SELECT
- 'job_citizen_spouse' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_success.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_success.hpl
deleted file mode 100644
index d704ea8..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_success.hpl
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
- change_status_delta_citizen_spouse_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_citizen_spouse' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
-
-union all
-
- SELECT
- 'job_citizen_spouse' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
-
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing.hpl
deleted file mode 100644
index 3ad2861..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing.hpl
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- change_status_to_processing
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/11 16:14:31.162
- -
- 2025/06/11 16:14:31.162
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 784
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'PROCESSING' AS status,
- 'job_citizen_spouse' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_spouse_flow1' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_spouse_flow2' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_spouse_flow3' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_spouse_flow4' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'citizen_spouse_flow5' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 368
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing_delta.hpl
deleted file mode 100644
index 3619918..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing_delta.hpl
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
- change_status_to_processing_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 13:42:26.494
- -
- 2025/06/16 13:42:26.494
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1248
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'PROCESSING' AS status,
- 'delta_citizen_spouse' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 832
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_citizen_spouse_job_exists.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_citizen_spouse_job_exists.hpl
new file mode 100644
index 0000000..a62f9ed
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_citizen_spouse_job_exists.hpl
@@ -0,0 +1,113 @@
+
+
+
+ check_if_citizen_spouse_job_exists
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 13:28:46.661
+ -
+ 2025/08/05 13:28:46.661
+
+
+
+
+
+ Set variables
+ Write to log
+ N
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ job_executed_flag
+ JOB_EXECUTED_FLAG
+ PARENT_WORKFLOW
+
+
+ Y
+
+
+ 672
+ 336
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'citizen_spouse_job'
+ limit 1
+ ) AS job_executed_flag;
+ N
+
+
+ 384
+ 336
+
+
+
+ Write to log
+ WriteToLog
+
+ Y
+
+ 1
+
+ none
+
+
+ Basic
+ Y
+ N
+ 0
+ ${STATUS}
+
+
+
+
+ 944
+ 224
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_citizen_spouse_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_citizen_spouse_error.hpl
deleted file mode 100644
index 11ad83c..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_citizen_spouse_error.hpl
+++ /dev/null
@@ -1,273 +0,0 @@
-
-
-
- checkpoint_citizen_spouse_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 10:01:04.895
- -
- 2025/06/09 10:01:04.895
-
-
-
-
-
- Select values
- Table output
- N
-
-
- Table input
- Select values
- N
-
-
- Table input
- Table output
- Y
-
-
-
- Select values
- SelectValues
-
- Y
-
- 1
-
- none
-
-
-
- N
-
- idm_id
- idm_id
- String
- -2
- -2
-
- false
-
-
- false
-
-
-
-
-
-
-
-
-
- 1008
- 608
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'job_child_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-)
-select * from for_checkpoints
- N
-
-
- 736
- 448
-
-
-
- Table output
- TableOutput
-
- Y
-
- 1
-
- none
-
-
- 1000
- ervu-dashboard
-
-
- N
- N
- N
- N
- Y
- N
- public
- N
-
etl_checkpoints
- N
- Y
- N
- Y
-
-
- 1248
- 448
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl
deleted file mode 100644
index ed32b9f..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_citizen_spouse
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 14:19:02.590
- -
- 2025/06/03 14:19:02.590
-
-
-
-
-
- Filter rows
- Abort
- N
-
-
- JSON input state_child_flow1.json
- Filter rows
- N
-
-
- JSON input state_child_flow2.json
- Filter rows
- N
-
-
- JSON input state_child_flow3.json
- Filter rows
- N
-
-
- JSON input state_child_flow4.json
- Filter rows
- N
-
-
- JSON input state_child_flow5.json
- Filter rows
- N
-
-
- Table input
- Insert / update
- Y
-
-
- Dummy (do nothing)
- JSON input state_child_flow1.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow2.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow3.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow4.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow5.json
- N
-
-
-
- Abort
- Abort
-
- Y
-
- 1
-
- none
-
-
- ABORT_WITH_ERROR
- Y
- 0
-
-
- 1264
- 592
-
-
-
- Dummy (do nothing)
- Dummy
-
- Y
-
- 1
-
- none
-
-
-
-
- 352
- 592
-
-
-
- Filter rows
- FilterRows
-
- Y
-
- 1
-
- none
-
-
-
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow1
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow2
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow3
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow4
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow5
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- Abort
-
-
- 944
- 592
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1264
- 208
-
-
-
- JSON input state_child_flow1.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 432
-
-
-
- JSON input state_child_flow2.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 512
-
-
-
- JSON input state_child_flow3.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 592
-
-
-
- JSON input state_child_flow4.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 672
-
-
-
- JSON input state_child_flow5.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 752
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH status_check AS (
- SELECT
- bool_or(status = 'ERROR' AND job_name IN (
- 'citizen_spouse_flow1',
- 'citizen_spouse_flow2',
- 'citizen_spouse_flow3',
- 'citizen_spouse_flow4',
- 'citizen_spouse_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'citizen_spouse_flow1',
- 'citizen_spouse_flow2',
- 'citizen_spouse_flow3',
- 'citizen_spouse_flow4',
- 'citizen_spouse_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_citizen_spouse' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 896
- 208
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/xxjob_create_files_child.hwf b/mappings/info_recruits/citizen_tables/citizen_spouse/checkpoints/xxjob_create_files_child.hwf
deleted file mode 100644
index b31ca9f..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/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/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_citizen_spouse.hwf b/mappings/info_recruits/citizen_tables/citizen_spouse/job_citizen_spouse.hwf
deleted file mode 100644
index c3c8681..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/job_citizen_spouse.hwf
+++ /dev/null
@@ -1,1841 +0,0 @@
-
-
- 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
- 368
- 400
-
-
-
- checkpoint_job_citizen_spouse.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1136
- 1280
-
-
-
- recruitment_rows_five_flow_citizen_spouse.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen_spouse.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2352
- 400
-
-
-
- citizen_spouse_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 80
-
-
-
- citizen_spouse_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 240
-
-
-
- citizen_spouse_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 400
-
-
-
- citizen_spouse_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 560
-
-
-
- citizen_spouse_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 720
-
-
-
- Abort workflow
-
- ABORT
-
- N
- N
- 2336
- 208
-
-
-
- Success new citizen
-
- SUCCESS
-
- N
- 3728
- 432
-
-
-
- branching_citizen_spouse.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/branching_citizen_spouse.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1584
- 1280
-
-
-
- Simple citizen_spouse WHERE SUCCESS
-
- SIMPLE_EVAL
-
- SUCCESS
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1840
- 1792
-
-
-
- Simple citizen_spouse WHERE ERROR
-
- SIMPLE_EVAL
-
- ERROR
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1840
- 1280
-
-
-
- recruitment_rows_five_flow_if_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/recruitment_rows_five_flow_if_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2384
- 1280
-
-
-
- Abort workflow 2
-
- ABORT
-
- N
- N
- 2288
- 1040
-
-
-
- delta_citizen_spouse.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/delta_citizen_spouse.hpl
- Basic
-
-
- M_R_UP_DATE
- ${M_R_UP_DATE}
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2640
- 1792
-
-
-
- Success delta_citizen
-
- SUCCESS
-
- N
- 3280
- 1792
-
-
-
- error delta_citizen
-
- SUCCESS
-
- N
- 3280
- 1872
-
-
-
- check_if_job_citizen_spouse_exists.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/check_if_job_citizen_spouse_exists.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 576
- 400
-
-
-
- Simple job_citizen_spouse_exists check NEW
-
- SIMPLE_EVAL
-
- NEW
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 896
- 400
-
-
-
- change_status_to_processing.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1264
- 400
-
-
-
- change_status_citizen_spouse_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 80
-
-
-
- change_status_citizen_spouse_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 160
-
-
-
- change_status_citizen_spouse_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 240
-
-
-
- change_status_citizen_spouse_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 320
-
-
-
- change_status_citizen_spouse_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 400
-
-
-
- change_status_citizen_spouse_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 480
-
-
-
- change_status_citizen_spouse_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 560
-
-
-
- change_status_citizen_spouse_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 640
-
-
-
- change_status_citizen_spouse_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 720
-
-
-
- change_status_citizen_spouse_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 800
-
-
-
- checkpoint_job_citizen_spouse.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3456
- 432
-
-
-
- change_status_to_processing.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2112
- 1280
-
-
-
- change_status_to_processing_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_to_processing_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2144
- 1792
-
-
-
- change_status_delta_citizen_spouse_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1792
-
-
-
- change_status_delta_citizen_spouse_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_delta_citizen_spouse_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1872
-
-
-
- citizen_spouse_flow1.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 960
-
-
-
- citizen_spouse_flow2.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1120
-
-
-
- citizen_spouse_flow3.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1280
-
-
-
- citizen_spouse_flow4.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1440
-
-
-
- citizen_spouse_flow5.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1600
-
-
-
- Success new citizen 2
-
- SUCCESS
-
- N
- 3728
- 1312
-
-
-
- change_status_citizen_spouse_flow1_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 960
-
-
-
- change_status_citizen_spouse_flow1_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1040
-
-
-
- change_status_citizen_spouse_flow2_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1120
-
-
-
- change_status_citizen_spouse_flow2_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1200
-
-
-
- change_status_citizen_spouse_flow3_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1280
-
-
-
- change_status_citizen_spouse_flow3_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1360
-
-
-
- change_status_citizen_spouse_flow4_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1440
-
-
-
- change_status_citizen_spouse_flow4_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1520
-
-
-
- change_status_citizen_spouse_flow5_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1600
-
-
-
- change_status_citizen_spouse_flow5_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/change_status_citizen_spouse_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1680
-
-
-
- checkpoint_job_citizen_spouse.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/checkpoints/checkpoint_job_citizen_spouse.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3456
- 1312
-
-
-
-
-
- recruitment_rows_five_flow_citizen_spouse.hpl
- citizen_spouse_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_spouse.hpl
- citizen_spouse_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_spouse.hpl
- citizen_spouse_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_spouse.hpl
- citizen_spouse_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_spouse.hpl
- citizen_spouse_flow5.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_citizen_spouse.hpl
- Abort workflow
- Y
- N
- N
-
-
- branching_citizen_spouse.hpl
- Simple citizen_spouse WHERE ERROR
- Y
- N
- Y
-
-
- branching_citizen_spouse.hpl
- Simple citizen_spouse WHERE SUCCESS
- Y
- N
- Y
-
-
- recruitment_rows_five_flow_if_error.hpl
- Abort workflow 2
- Y
- N
- N
-
-
- Start
- check_if_job_citizen_spouse_exists.hpl
- Y
- Y
- Y
-
-
- check_if_job_citizen_spouse_exists.hpl
- Simple job_citizen_spouse_exists check NEW
- Y
- Y
- N
-
-
- Simple job_citizen_spouse_exists check NEW
- change_status_to_processing.hpl
- Y
- Y
- N
-
-
- change_status_to_processing.hpl
- recruitment_rows_five_flow_citizen_spouse.hpl
- Y
- Y
- N
-
-
- citizen_spouse_flow1.hpl
- change_status_citizen_spouse_flow1_success.hpl
- Y
- Y
- N
-
-
- citizen_spouse_flow1.hpl
- change_status_citizen_spouse_flow1_error.hpl
- Y
- N
- N
-
-
- citizen_spouse_flow2.hpl
- change_status_citizen_spouse_flow2_success.hpl
- Y
- Y
- N
-
-
- citizen_spouse_flow2.hpl
- change_status_citizen_spouse_flow2_error.hpl
- Y
- N
- N
-
-
- citizen_spouse_flow3.hpl
- change_status_citizen_spouse_flow3_success.hpl
- Y
- Y
- N
-
-
- citizen_spouse_flow3.hpl
- change_status_citizen_spouse_flow3_error.hpl
- Y
- N
- N
-
-
- citizen_spouse_flow4.hpl
- change_status_citizen_spouse_flow4_success.hpl
- Y
- Y
- N
-
-
- citizen_spouse_flow4.hpl
- change_status_citizen_spouse_flow4_error.hpl
- Y
- N
- N
-
-
- citizen_spouse_flow5.hpl
- change_status_citizen_spouse_flow5_success.hpl
- Y
- Y
- N
-
-
- citizen_spouse_flow5.hpl
- change_status_citizen_spouse_flow5_error.hpl
- Y
- N
- N
-
-
- change_status_citizen_spouse_flow5_error.hpl
- checkpoint_job_citizen_spouse.hpl
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow5_success.hpl
- checkpoint_job_citizen_spouse.hpl
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow4_error.hpl
- checkpoint_job_citizen_spouse.hpl
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow4_success.hpl
- checkpoint_job_citizen_spouse.hpl
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow3_error.hpl
- checkpoint_job_citizen_spouse.hpl
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow3_success.hpl
- checkpoint_job_citizen_spouse.hpl
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow2_error.hpl
- checkpoint_job_citizen_spouse.hpl
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow2_success.hpl
- checkpoint_job_citizen_spouse.hpl
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow1_error.hpl
- checkpoint_job_citizen_spouse.hpl
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow1_success.hpl
- checkpoint_job_citizen_spouse.hpl
- Y
- N
- Y
-
-
- checkpoint_job_citizen_spouse.hpl
- Success new citizen
- Y
- Y
- N
-
-
- checkpoint_job_citizen_spouse.hpl (2)
- branching_citizen_spouse.hpl
- Y
- N
- Y
-
-
- Simple job_citizen_spouse_exists check NEW
- checkpoint_job_citizen_spouse.hpl (2)
- Y
- N
- N
-
-
- Simple citizen_spouse WHERE ERROR
- change_status_to_processing.hpl (2)
- Y
- Y
- N
-
-
- change_status_to_processing.hpl (2)
- recruitment_rows_five_flow_if_error.hpl
- Y
- Y
- N
-
-
- Simple citizen_spouse WHERE SUCCESS
- change_status_to_processing_delta.hpl
- Y
- Y
- N
-
-
- delta_citizen_spouse.hpl
- change_status_delta_citizen_spouse_success.hpl
- Y
- Y
- N
-
-
- change_status_delta_citizen_spouse_success.hpl
- Success delta_citizen
- Y
- Y
- N
-
-
- delta_citizen_spouse.hpl
- change_status_delta_citizen_spouse_error.hpl
- Y
- N
- N
-
-
- change_status_delta_citizen_spouse_error.hpl
- error delta_citizen
- Y
- Y
- N
-
-
- change_status_to_processing_delta.hpl
- delta_citizen_spouse.hpl
- Y
- Y
- N
-
-
- citizen_spouse_flow1.hpl 2
- change_status_citizen_spouse_flow1_success.hpl 2
- Y
- Y
- N
-
-
- citizen_spouse_flow1.hpl 2
- change_status_citizen_spouse_flow1_error.hpl 2
- Y
- N
- N
-
-
- citizen_spouse_flow2.hpl 2
- change_status_citizen_spouse_flow2_success.hpl 2
- Y
- Y
- N
-
-
- citizen_spouse_flow2.hpl 2
- change_status_citizen_spouse_flow2_error.hpl 2
- Y
- N
- N
-
-
- citizen_spouse_flow3.hpl 2
- change_status_citizen_spouse_flow3_success.hpl 2
- Y
- Y
- N
-
-
- citizen_spouse_flow3.hpl 2
- change_status_citizen_spouse_flow3_error.hpl 2
- Y
- N
- N
-
-
- citizen_spouse_flow4.hpl 2
- change_status_citizen_spouse_flow4_success.hpl 2
- Y
- Y
- N
-
-
- citizen_spouse_flow4.hpl 2
- change_status_citizen_spouse_flow4_error.hpl 2
- Y
- N
- N
-
-
- citizen_spouse_flow5.hpl 2
- change_status_citizen_spouse_flow5_success.hpl 2
- Y
- Y
- N
-
-
- citizen_spouse_flow5.hpl 2
- change_status_citizen_spouse_flow5_error.hpl 2
- Y
- N
- N
-
-
- change_status_citizen_spouse_flow1_success.hpl 2
- checkpoint_job_citizen_spouse.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow1_error.hpl 2
- checkpoint_job_citizen_spouse.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow2_success.hpl 2
- checkpoint_job_citizen_spouse.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow2_error.hpl 2
- checkpoint_job_citizen_spouse.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow3_success.hpl 2
- checkpoint_job_citizen_spouse.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow3_error.hpl 2
- checkpoint_job_citizen_spouse.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow4_success.hpl 2
- checkpoint_job_citizen_spouse.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow4_error.hpl 2
- checkpoint_job_citizen_spouse.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow5_success.hpl 2
- checkpoint_job_citizen_spouse.hpl 2
- Y
- N
- Y
-
-
- change_status_citizen_spouse_flow5_error.hpl 2
- checkpoint_job_citizen_spouse.hpl 2
- Y
- N
- Y
-
-
- checkpoint_job_citizen_spouse.hpl 2
- Success new citizen 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_spouse_flow3.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_spouse_flow2.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_spouse_flow1.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_spouse_flow4.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- citizen_spouse_flow5.hpl 2
- Y
- Y
- N
-
-
-
-
- 251
- 232
- 201
- 90
- 58
- 14
- N
- 90
- 58
- 14
- N
- Segoe UI
- 9
- 72
- 1088
- 176
- 0001-01-01 00:00:00
-
-3001-01-01 00:00:00
-
- 114
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_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
+
-
- 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
-
-
- 944
- 288
-
-
-
- Select values 4 2
- SelectValues
-
- Y
-
- 1
-
- none
-
-
-
- N
-
- ID_F1
- ID_F1
- String
- -2
- -2
-
- false
-
-
- false
-
-
-
-
-
-
-
-
-
- 720
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH suprug AS (
- SELECT
- supr.supri AS supr,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' AS marriage_date,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' AS divorce_date,
- CASE
- WHEN (ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1') THEN true
- ELSE false
- END AS information_excluded,
- ri.recruit_id
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
- JOIN LATERAL (
- SELECT jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri
- WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array'
- ) AS supr ON true
-)
-SELECT
- r.recruit_id AS recruit_id,
- supr->>'rodstvSvyazSuprugNaim' AS kinship_type,
- CONCAT_WS(' ',
- supr->'svedFLBS'->'fio'->>'familiya',
- supr->'svedFLBS'->'fio'->>'imya',
- supr->'svedFLBS'->'fio'->>'otchestvo'
- ) AS full_name,
- MAKE_DATE(
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int,
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int,
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int
- ) AS birth_date,
- (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date,
- supr->'svedSmert'->>'nomerZapis' AS death_az_number,
- marriage_az_number,
- marriage_date::date,
- divorce_az_number,
- divorce_date::date,
- information_excluded
-FROM ervu_dashboard.citizen r
-JOIN suprug ON r.recruit_id = suprug.recruit_id
- Y
-
-
- 448
- 288
-
-
-
-
- Select values 4 2
- Get variables
- Y
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl
deleted file mode 100644
index 712f5ee..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow2.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- citizen_spouse_flow2
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
- ervu_dashboard
-
citizen_spouse
-
- recruit_id
- recruit_id
- N
-
-
- kinship_type
- kinship_type
- Y
-
-
- full_name
- full_name
- Y
-
-
- birth_date
- birth_date
- Y
-
-
- death_date
- death_date
- Y
-
-
- death_az_number
- death_az_number
- Y
-
-
- marriage_az_number
- marriage_az_number
- Y
-
-
- marriage_date
- marriage_date
- Y
-
-
- divorce_az_number
- divorce_az_number
- Y
-
-
- divorce_date
- divorce_date
- Y
-
-
- information_excluded
- information_excluded
- Y
-
-
- N
-
-
- 1280
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH suprug AS (
- SELECT
- supr.supri AS supr,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' AS marriage_date,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' AS divorce_date,
- CASE
- WHEN (ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1') THEN true
- ELSE false
- END AS information_excluded,
- ri.recruit_id
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
- JOIN LATERAL (
- SELECT jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri
- WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array'
- ) AS supr ON true
-)
-SELECT
- r.recruit_id AS recruit_id,
- supr->>'rodstvSvyazSuprugNaim' AS kinship_type,
- CONCAT_WS(' ',
- supr->'svedFLBS'->'fio'->>'familiya',
- supr->'svedFLBS'->'fio'->>'imya',
- supr->'svedFLBS'->'fio'->>'otchestvo'
- ) AS full_name,
- MAKE_DATE(
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int,
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int,
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int
- ) AS birth_date,
- (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date,
- supr->'svedSmert'->>'nomerZapis' AS death_az_number,
- marriage_az_number,
- marriage_date::date,
- divorce_az_number,
- divorce_date::date,
- information_excluded
-FROM ervu_dashboard.citizen r
-JOIN suprug ON r.recruit_id = suprug.recruit_id
- Y
-
-
- 784
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl
deleted file mode 100644
index bcb2772..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow3.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- citizen_spouse_flow3
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
- ervu_dashboard
-
citizen_spouse
-
- recruit_id
- recruit_id
- N
-
-
- kinship_type
- kinship_type
- Y
-
-
- full_name
- full_name
- Y
-
-
- birth_date
- birth_date
- Y
-
-
- death_date
- death_date
- Y
-
-
- death_az_number
- death_az_number
- Y
-
-
- marriage_az_number
- marriage_az_number
- Y
-
-
- marriage_date
- marriage_date
- Y
-
-
- divorce_az_number
- divorce_az_number
- Y
-
-
- divorce_date
- divorce_date
- Y
-
-
- information_excluded
- information_excluded
- Y
-
-
- N
-
-
- 1152
- 336
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH suprug AS (
- SELECT
- supr.supri AS supr,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' AS marriage_date,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' AS divorce_date,
- CASE
- WHEN (ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1') THEN true
- ELSE false
- END AS information_excluded,
- ri.recruit_id
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
- JOIN LATERAL (
- SELECT jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri
- WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array'
- ) AS supr ON true
-)
-SELECT
- r.recruit_id AS recruit_id,
- supr->>'rodstvSvyazSuprugNaim' AS kinship_type,
- CONCAT_WS(' ',
- supr->'svedFLBS'->'fio'->>'familiya',
- supr->'svedFLBS'->'fio'->>'imya',
- supr->'svedFLBS'->'fio'->>'otchestvo'
- ) AS full_name,
- MAKE_DATE(
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int,
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int,
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int
- ) AS birth_date,
- (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date,
- supr->'svedSmert'->>'nomerZapis' AS death_az_number,
- marriage_az_number,
- marriage_date::date,
- divorce_az_number,
- divorce_date::date,
- information_excluded
-FROM ervu_dashboard.citizen r
-JOIN suprug ON r.recruit_id = suprug.recruit_id
- Y
-
-
- 656
- 336
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl
deleted file mode 100644
index 31e629e..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow4.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- citizen_spouse_flow4
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
- ervu_dashboard
-
citizen_spouse
-
- recruit_id
- recruit_id
- N
-
-
- kinship_type
- kinship_type
- Y
-
-
- full_name
- full_name
- Y
-
-
- birth_date
- birth_date
- Y
-
-
- death_date
- death_date
- Y
-
-
- death_az_number
- death_az_number
- Y
-
-
- marriage_az_number
- marriage_az_number
- Y
-
-
- marriage_date
- marriage_date
- Y
-
-
- divorce_az_number
- divorce_az_number
- Y
-
-
- divorce_date
- divorce_date
- Y
-
-
- information_excluded
- information_excluded
- Y
-
-
- N
-
-
- 1184
- 384
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH suprug AS (
- SELECT
- supr.supri AS supr,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' AS marriage_date,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' AS divorce_date,
- CASE
- WHEN (ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1') THEN true
- ELSE false
- END AS information_excluded,
- ri.recruit_id
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
- JOIN LATERAL (
- SELECT jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri
- WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array'
- ) AS supr ON true
-)
-SELECT
- r.recruit_id AS recruit_id,
- supr->>'rodstvSvyazSuprugNaim' AS kinship_type,
- CONCAT_WS(' ',
- supr->'svedFLBS'->'fio'->>'familiya',
- supr->'svedFLBS'->'fio'->>'imya',
- supr->'svedFLBS'->'fio'->>'otchestvo'
- ) AS full_name,
- MAKE_DATE(
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int,
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int,
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int
- ) AS birth_date,
- (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date,
- supr->'svedSmert'->>'nomerZapis' AS death_az_number,
- marriage_az_number,
- marriage_date::date,
- divorce_az_number,
- divorce_date::date,
- information_excluded
-FROM ervu_dashboard.citizen r
-JOIN suprug ON r.recruit_id = suprug.recruit_id
- Y
-
-
- 688
- 384
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl
deleted file mode 100644
index 18f686f..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow5.hpl
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- citizen_spouse_flow5
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
- ervu_dashboard
-
citizen_spouse
-
- recruit_id
- recruit_id
- N
-
-
- kinship_type
- kinship_type
- Y
-
-
- full_name
- full_name
- Y
-
-
- birth_date
- birth_date
- Y
-
-
- death_date
- death_date
- Y
-
-
- death_az_number
- death_az_number
- Y
-
-
- marriage_az_number
- marriage_az_number
- Y
-
-
- marriage_date
- marriage_date
- Y
-
-
- divorce_az_number
- divorce_az_number
- Y
-
-
- divorce_date
- divorce_date
- Y
-
-
- information_excluded
- information_excluded
- Y
-
-
- N
-
-
- 1152
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH suprug AS (
- SELECT
- supr.supri AS supr,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' AS marriage_date,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number,
- ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' AS divorce_date,
- CASE
- WHEN (ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1') THEN true
- ELSE false
- END AS information_excluded,
- ri.recruit_id
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
- JOIN LATERAL (
- SELECT jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri
- WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array'
- ) AS supr ON true
-)
-SELECT
- r.recruit_id AS recruit_id,
- supr->>'rodstvSvyazSuprugNaim' AS kinship_type,
- CONCAT_WS(' ',
- supr->'svedFLBS'->'fio'->>'familiya',
- supr->'svedFLBS'->'fio'->>'imya',
- supr->'svedFLBS'->'fio'->>'otchestvo'
- ) AS full_name,
- MAKE_DATE(
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int,
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int,
- NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int
- ) AS birth_date,
- (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date,
- supr->'svedSmert'->>'nomerZapis' AS death_az_number,
- marriage_az_number,
- marriage_date::date,
- divorce_az_number,
- divorce_date::date,
- information_excluded
-FROM ervu_dashboard.citizen r
-JOIN suprug ON r.recruit_id = suprug.recruit_id
- Y
-
-
- 656
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl
new file mode 100644
index 0000000..99e9f11
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl
@@ -0,0 +1,452 @@
+
+
+
+ citizen_spouse_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:22:56.048
+ -
+ 2025/08/11 13:22:56.048
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update
+ Filter rows
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Insert / update
+ Detect empty stream
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Table input
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ Insert / update
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 976
+ 480
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ error_code
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 736
+ 480
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS',
+ error_description = null
+WHERE job_name = '${JOB_NAME}'
+ and recruitment_id = '${IDM_ID}'
+ and status = 'DELTA_PROCESSING';
+
+
+
+ 1200
+ 80
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = DEFAULT
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 96
+ 224
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1200
+ 224
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 736
+ 80
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 576
+ 224
+
+
+
+ Insert / update
+ InsertUpdate
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ =
+ spouse_external_id
+ spouse_external_id
+
+ ervu_dashboard
+
citizen_spouse
+
+ recruit_id
+ recruit_id
+ N
+
+
+ spouse_external_id
+ spouse_external_id
+ N
+
+
+ spouse_id_ern
+ spouse_id_ern
+ Y
+
+
+ kinship_type
+ kinship_type
+ Y
+
+
+ last_name
+ last_name
+ Y
+
+
+ first_name
+ first_name
+ Y
+
+
+ middle_name
+ middle_name
+ Y
+
+
+ full_name
+ full_name
+ Y
+
+
+ birth_date
+ birth_date
+ Y
+
+
+ death_date
+ death_date
+ Y
+
+
+ death_az_number
+ death_az_number
+ Y
+
+
+ marriage_az_number
+ marriage_az_number
+ Y
+
+
+ marriage_date
+ marriage_date
+ Y
+
+
+ divorce_az_number
+ divorce_az_number
+ Y
+
+
+ divorce_date
+ divorce_date
+ Y
+
+
+ information_excluded
+ information_excluded
+ Y
+
+
+ N
+
+
+ 736
+ 224
+
+
+
+ Table input
+ TableInput
+
+ N
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ SELECT
+ ri.recruit_id AS recruit_id,
+ (supr->>'id')::uuid AS spouse_external_id,
+ NULLIF(supr->>'idERN', '') AS spouse_id_ern,
+ NULLIF(supr->>'rodstvSvyazSuprug', '')::int AS kinship_type,
+ supr->'svedFLBS'->'fio'->>'familiya' AS last_name,
+ supr->'svedFLBS'->'fio'->>'imya' AS first_name,
+ supr->'svedFLBS'->'fio'->>'otchestvo' AS middle_name,
+ CONCAT_WS(' ',
+ supr->'svedFLBS'->'fio'->>'familiya',
+ supr->'svedFLBS'->'fio'->>'imya',
+ supr->'svedFLBS'->'fio'->>'otchestvo'
+ ) AS full_name,
+ MAKE_DATE(
+ NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int,
+ NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int,
+ NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den', '')::int
+ ) AS birth_date,
+ (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date,
+ supr->'svedSmert'->>'nomerZapis' AS death_az_number,
+ ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number,
+ (ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend')::date AS marriage_date,
+ ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number,
+ (ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend')::date AS divorce_date,
+ CASE
+ WHEN ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1' THEN true
+ ELSE false
+ END AS information_excluded
+FROM ervu_dashboard.recruits_info ri
+JOIN ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id
+CROSS JOIN LATERAL (
+ SELECT supri
+ FROM jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri
+ WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array'
+) AS supr(supr)
+WHERE
+ '${IDM_ID}' != ''
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date
+ AND c.update_date >= '${M_R_UP_DATE}'::timestamp;
+
+ Y
+
+
+ 368
+ 224
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+ error_description
+
+ error_code
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl
new file mode 100644
index 0000000..d92ae63
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl
@@ -0,0 +1,467 @@
+
+
+
+ citizen_spouse_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 13:25:52.319
+ -
+ 2025/08/08 13:25:52.319
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update
+ Filter rows
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Table input
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ Insert / update
+ Y
+
+
+ Insert / update
+ Detect empty stream
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1008
+ 576
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ error_code
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 704
+ 576
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS',
+error_description = null
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}'
+and status = 'PROCESSING';
+
+
+
+
+
+ 1136
+ 64
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (
+ id,
+ job_name,
+ status,
+ execution_datetime,
+ error_description,
+ recruitment_id
+)
+VALUES (
+ DEFAULT,
+ '${JOB_NAME}',
+ 'PROCESSING',
+ DEFAULT,
+ NULL,
+ '${IDM_ID}'
+)
+ON CONFLICT (job_name, recruitment_id)
+DO UPDATE SET
+ status = 'PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+
+
+ 112
+ 208
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1136
+ 208
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 704
+ 64
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 528
+ 208
+
+
+
+ Insert / update
+ InsertUpdate
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ =
+ spouse_external_id
+ spouse_external_id
+
+ ervu_dashboard
+
citizen_spouse
+
+ recruit_id
+ recruit_id
+ N
+
+
+ spouse_external_id
+ spouse_external_id
+ N
+
+
+ spouse_id_ern
+ spouse_id_ern
+ Y
+
+
+ kinship_type
+ kinship_type
+ Y
+
+
+ last_name
+ last_name
+ Y
+
+
+ first_name
+ first_name
+ Y
+
+
+ middle_name
+ middle_name
+ Y
+
+
+ full_name
+ full_name
+ Y
+
+
+ birth_date
+ birth_date
+ Y
+
+
+ death_date
+ death_date
+ Y
+
+
+ death_az_number
+ death_az_number
+ Y
+
+
+ marriage_az_number
+ marriage_az_number
+ Y
+
+
+ marriage_date
+ marriage_date
+ Y
+
+
+ divorce_az_number
+ divorce_az_number
+ Y
+
+
+ divorce_date
+ divorce_date
+ Y
+
+
+ information_excluded
+ information_excluded
+ Y
+
+
+ N
+
+
+ 704
+ 208
+
+
+
+ Table input
+ TableInput
+
+ N
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ SELECT
+ ri.recruit_id AS recruit_id,
+ (supr->>'id')::uuid AS spouse_external_id,
+ NULLIF(supr->>'idERN', '') AS spouse_id_ern,
+ NULLIF(supr->>'rodstvSvyazSuprug', '')::int AS kinship_type,
+ supr->'svedFLBS'->'fio'->>'familiya' AS last_name,
+ supr->'svedFLBS'->'fio'->>'imya' AS first_name,
+ supr->'svedFLBS'->'fio'->>'otchestvo' AS middle_name,
+ CONCAT_WS(' ',
+ supr->'svedFLBS'->'fio'->>'familiya',
+ supr->'svedFLBS'->'fio'->>'imya',
+ supr->'svedFLBS'->'fio'->>'otchestvo'
+ ) AS full_name,
+ MAKE_DATE(
+ NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int,
+ NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz', '')::int,
+ NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den', '')::int
+ ) AS birth_date,
+ (supr->'svedSmert'->'extend'->>'dataSmert')::date AS death_date,
+ supr->'svedSmert'->>'nomerZapis' AS death_az_number,
+ ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' AS marriage_az_number,
+ (ri.info->'svedFL'->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend')::date AS marriage_date,
+ ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' AS divorce_az_number,
+ (ri.info->'svedFL'->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend')::date AS divorce_date,
+ CASE
+ WHEN ri.info->'svedFL'->'svedSemPolozh'->>'svedSuprIskl' = '1' THEN true
+ ELSE false
+ END AS information_excluded
+FROM ervu_dashboard.recruits_info ri
+JOIN ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id
+CROSS JOIN LATERAL (
+ SELECT supri
+ FROM jsonb_array_elements(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') AS supri
+ WHERE jsonb_typeof(ri.info->'svedFL'->'svedSemPolozh'->'suprugi') = 'array'
+) AS supr(supr)
+WHERE
+ '${IDM_ID}' != ''
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}'::timestamp >= r.recruit_create_date;
+ Y
+
+
+ 352
+ 208
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+ error_description
+
+ error_code
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_delta.hpl
new file mode 100644
index 0000000..a89ab4b
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_delta.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:16:11.204
+ -
+ 2025/08/11 13:16:11.204
+
+
+
+
+
+ Table input
+ citizen_spouse_flow_delta.hpl
+ Y
+
+
+ Table input
+ citizen_spouse_flow_delta.hpl 2
+ Y
+
+
+ Table input
+ citizen_spouse_flow_delta.hpl 3
+ Y
+
+
+ Table input
+ citizen_spouse_flow_delta.hpl 4
+ Y
+
+
+ Table input
+ citizen_spouse_flow_delta.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_spouse_job'
+where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');
+ N
+
+
+ 352
+ 288
+
+
+
+ citizen_spouse_flow_delta.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 128
+
+
+
+ citizen_spouse_flow_delta.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 208
+
+
+
+ citizen_spouse_flow_delta.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 288
+
+
+
+ citizen_spouse_flow_delta.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 368
+
+
+
+ citizen_spouse_flow_delta.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 448
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_on_error.hpl
new file mode 100644
index 0000000..b0ef287
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_five_flow_on_error.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_on_error
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 12:54:50.126
+ -
+ 2025/08/05 12:54:50.126
+
+
+
+
+
+ Table input
+ citizen_spouse_flow_repeat.hpl
+ Y
+
+
+ Table input
+ citizen_spouse_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ citizen_spouse_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ citizen_spouse_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ citizen_spouse_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizen_spouse_job'
+where je.status is null or je.status in('ERROR', 'PROCESSING');
+ N
+
+
+ 272
+ 368
+
+
+
+ citizen_spouse_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 208
+
+
+
+ citizen_spouse_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 288
+
+
+
+ citizen_spouse_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 368
+
+
+
+ citizen_spouse_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 448
+
+
+
+ citizen_spouse_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 464
+ 528
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_rows_five_flow_if_error.hpl
deleted file mode 100644
index 95a193c..0000000
--- a/mappings/info_recruits/citizen_tables/citizen_spouse/recruitment_rows_five_flow_if_error.hpl
+++ /dev/null
@@ -1,261 +0,0 @@
-
-
-
- recruitment_rows_five_flow_if_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/23 14:28:22.572
- -
- 2025/05/23 14:28:22.572
-
-
-
-
-
- Table input
- Copy rows to result
- Y
-
-
-
- Copy rows to result
- RowsToResult
-
- Y
-
- 1
-
- none
-
-
-
-
- 880
- 288
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH 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
-),
-remains as (
- select
- CASE
- WHEN created_at >= (select cr_flow1 from result_max) and flow_num = 1 THEN created_at
- ELSE null
- END as cr_flow1,
- CASE
- WHEN created_at >= (select cr_flow1 from result_max) and flow_num = 1 THEN idm_id
- ELSE null
- END as idm_flow1,
-
- CASE
- WHEN created_at >= (select cr_flow2 from result_max) and flow_num = 2 THEN created_at
- ELSE null
- END as cr_flow2,
- CASE
- WHEN created_at >= (select cr_flow2 from result_max) and flow_num = 2 THEN idm_id
- ELSE null
- END as idm_flow2,
-
- CASE
- WHEN created_at >= (select cr_flow3 from result_max) and flow_num = 3 THEN created_at
- ELSE null
- END as cr_flow3,
- CASE
- WHEN created_at >= (select cr_flow3 from result_max) and flow_num = 3 THEN idm_id
- ELSE null
- END as idm_flow3,
-
- CASE
- WHEN created_at >= (select cr_flow4 from result_max) and flow_num = 4 THEN created_at
- ELSE null
- END as cr_flow4,
- CASE
- WHEN created_at >= (select cr_flow4 from result_max) and flow_num = 4 THEN idm_id
- ELSE null
- END as idm_flow4,
-
- CASE
- WHEN created_at >= (select cr_flow5 from result_max) and flow_num = 5 THEN created_at
- ELSE null
- END as cr_flow5,
- CASE
- WHEN created_at >= (select cr_flow5 from result_max) and flow_num = 5 THEN idm_id
- ELSE null
- END as idm_flow5
- from splitted
-),
-idm1 as (
- select
- cr_flow1,
- idm_flow1
- from remains
- where cr_flow1 is not null and idm_flow1 is not null
-),
-idm2 as (
- select
- cr_flow2,
- idm_flow2
- from remains
- where cr_flow2 is not null and idm_flow2 is not null
-),
-idm3 as (
- select
- cr_flow3,
- idm_flow3
- from remains
- where cr_flow3 is not null and idm_flow3 is not null
-),
-idm4 as (
- select
- cr_flow4,
- idm_flow4
- from remains
- where cr_flow4 is not null and idm_flow4 is not null
-),
-idm5 as (
- select
- cr_flow5,
- idm_flow5
- from remains
- where cr_flow5 is not null and idm_flow5 is not null
-)
-select
- i1.*,
- i2.*,
- i3.*,
- i4.*,
- i5.*
-FROM
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn
-ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn)
-limit 2
- N
-
-
- 512
- 288
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/citizen_spouse/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitments_five_flow.hpl
new file mode 100644
index 0000000..6dccdb6
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizen_spouse/recruitments_five_flow.hpl
@@ -0,0 +1,356 @@
+
+
+
+ recruitments_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/04/18 09:48:01.970
+ -
+ 2025/04/18 09:48:01.970
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ citizen_spouse_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_spouse_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_spouse_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_spouse_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizen_spouse_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ SELECT
+idm_id AS recruitment
+FROM ervu_dashboard.recruitment;
+ N
+
+
+ 432
+ 304
+
+
+
+ citizen_spouse_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 144
+
+
+
+ citizen_spouse_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 224
+
+
+
+ citizen_spouse_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 304
+
+
+
+ citizen_spouse_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 384
+
+
+
+ citizen_spouse_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizen_spouse/parallel/citizen_spouse_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizen_spouse_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 464
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizenship/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/citizenship/check_if_need_to_repeat_job.hpl
new file mode 100644
index 0000000..b63f652
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizenship/check_if_need_to_repeat_job.hpl
@@ -0,0 +1,86 @@
+
+
+
+ check_if_need_to_repeat_job
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 12:27:51.630
+ -
+ 2025/08/08 12:27:51.630
+
+
+
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ need_to_repeat_job
+ NEED_TO_REPEAT_JOB
+ ROOT_WORKFLOW
+
+
+ Y
+
+
+ 624
+ 288
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (SELECT 1
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizenship_job'
+where je.status is null or je.status in ('ERROR', 'PROCESSING')
+limit 1
+) as need_to_repeat_job;
+ N
+
+
+ 336
+ 288
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_job_citizen_guardianship_exists.hpl b/mappings/info_recruits/citizen_tables/citizenship/checkpoints/check_if_citizenship_job_exists.hpl
similarity index 69%
rename from mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_job_citizen_guardianship_exists.hpl
rename to mappings/info_recruits/citizen_tables/citizenship/checkpoints/check_if_citizenship_job_exists.hpl
index 64a9b1d..99157b0 100644
--- a/mappings/info_recruits/citizen_tables/citizen_guardianship/checkpoints/check_if_job_citizen_guardianship_exists.hpl
+++ b/mappings/info_recruits/citizen_tables/citizenship/checkpoints/check_if_citizenship_job_exists.hpl
@@ -1,7 +1,7 @@
- check_if_job_citizen_guardianship_exists
+ check_if_citizenship_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_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
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'citizenship_job'
+ limit 1
+ ) AS job_executed_flag;N
- 400
- 352
+ 384
+ 336
@@ -120,8 +103,8 @@ FROM (
${STATUS}
- 960
- 240
+ 944
+ 224
diff --git a/mappings/info_recruits/citizen_tables/citizenship/citizenship_job.hwf b/mappings/info_recruits/citizen_tables/citizenship/citizenship_job.hwf
new file mode 100644
index 0000000..f0195f9
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizenship/citizenship_job.hwf
@@ -0,0 +1,358 @@
+
+
+ citizenship_job
+ Y
+
+
+
+ 0
+ -
+ 2025/08/05 12:45:28.561
+ -
+ 2025/08/05 12:45:28.561
+
+
+ COMMENT
+
+
+
+
+ LIMIT_FW
+ ;
+
+
+
+ M_R_CR_DATE
+ 3001-01-01 00:00:00
+
+
+
+ M_R_UP_DATE
+ 0001-01-01 00:00:00
+
+
+
+
+
+ Start
+
+ SPECIAL
+
+ 1
+ 12
+ 60
+ 0
+ 0
+ N
+ 0
+ 1
+ N
+ 224
+ 304
+
+
+
+ check_if_citizenship_job_exists.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/checkpoints/check_if_citizenship_job_exists.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 416
+ 304
+
+
+
+ citizenship_job_exists_check
+
+ SIMPLE_EVAL
+
+ boolean
+ false
+ equal
+ equal
+ N
+ variable
+ JOB_EXECUTED_FLAG
+ N
+ 688
+ 304
+
+
+
+ recruitments_five_flow.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/recruitments_five_flow.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ Y
+ 928
+ 304
+
+
+
+ recruitment_five_flow_on_error.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/recruitment_five_flow_on_error.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 928
+ 608
+
+
+
+ check_if_need_to_repeat_job.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/check_if_need_to_repeat_job.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 688
+ 464
+
+
+
+ Simple evaluation
+
+ SIMPLE_EVAL
+
+ boolean
+ true
+ equal
+ equal
+ N
+ variable
+ NEED_TO_REPEAT_JOB
+ N
+ 688
+ 608
+
+
+
+ recruitment_five_flow_delta.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/recruitment_five_flow_delta.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 688
+ 800
+
+
+
+
+
+ Start
+ check_if_citizenship_job_exists.hpl
+ Y
+ Y
+ Y
+
+
+ check_if_citizenship_job_exists.hpl
+ citizenship_job_exists_check
+ Y
+ Y
+ N
+
+
+ citizenship_job_exists_check
+ recruitments_five_flow.hpl
+ Y
+ Y
+ N
+
+
+ citizenship_job_exists_check
+ check_if_need_to_repeat_job.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat_job.hpl
+ Simple evaluation
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_on_error.hpl
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_delta.hpl
+ Y
+ N
+ N
+
+
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 800
+ 256
+ Первичка
+ 65
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 800
+ 560
+ Повторка
+ 64
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 608
+ 720
+ Дельта
+ 49
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ Segoe UI
+ 9
+ 150
+ 1200
+ 80
+ citizenship_job
+
+M_R_UP_DATE
+
+M_R_CR_DATE
+
+0001-01-01 00:00:00
+
+3001-01-01 00:00:00
+ 114
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl
new file mode 100644
index 0000000..632f01c
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl
@@ -0,0 +1,722 @@
+
+
+
+ citizenship_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 14:31:22.799
+ -
+ 2025/08/05 14:31:22.799
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Table output
+ Change job status on error
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Table input
+ Table output
+ Y
+
+
+ Table output
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1328
+ 496
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1328
+ 320
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1856
+ 176
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id)
+VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}');
+
+
+
+
+ 288
+ 320
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1536
+ 176
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1536
+ 304
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_property_raw
+ is_property
+ MAX
+
+
+ has_ground_transport_raw
+ is_ground_transport
+ MAX
+
+
+ has_air_transport_raw
+ is_air_transport
+ MAX
+
+
+ has_water_transport_raw
+ is_water_transport
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 688
+ 176
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 880
+ 176
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ WITH
+base as(
+ SELECT
+ ri.recruit_id,
+ ri.info
+ FROM ervu_dashboard.recruits_info ri
+ join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
+),
+prop AS (
+ SELECT
+ base.recruit_id,
+ 'realty' AS property_type,
+ ry.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+ THEN base.info->'svedFL'->'svedON'->'on'
+ ELSE '[]'::jsonb
+ END
+ ) AS ry ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'ground_transportation' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+ THEN base.info->'svedFL'->'svedNazTS'->'nazTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'air_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+ THEN base.info->'svedFL'->'svedVozTS'->'vozTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'water_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+ THEN base.info->'svedFL'->'svedVodTS'->'vodTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+),
+all_data as(
+ -- Недвижимость
+ SELECT
+ base.recruit_id,
+ property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля
+ property_data->'adrObSob'->>'adrObSobTekst' AS address,
+ NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date,
+ 'realty' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'realty'
+
+ UNION ALL
+
+ -- Наземный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'vidTS' AS vehicle_type,
+ property_data->>'godVyp' AS issue_year,
+ property_data->>'markaTS' AS brand_model,
+ property_data->>'gosRegZn' AS reg_plate,
+ property_data->>'idenNom' AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'ground_transportation' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'ground_transportation'
+
+ UNION ALL
+
+ -- Воздушный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'air_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'air_vehicles'
+
+ UNION ALL
+
+ -- Водный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'water_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'water_vehicles'
+)
+select
+ *,
+ CASE
+ WHEN type_property = 'realty' THEN 1
+ ELSE 0
+ END AS is_property, -- недвиж//has_property
+ CASE
+ WHEN type_property = 'ground_transportation'THEN 1
+ ELSE 0
+ END AS is_ground_transport, -- наземный транспорт//has_ground_transport
+ CASE
+ WHEN type_property = 'air_vehicles' THEN 1
+ ELSE 0
+ END AS is_air_transport, -- воздушный транспорт//has_air_transport
+ CASE
+ WHEN type_property = 'water_vehicles' THEN 1
+ ELSE 0
+ END AS is_water_transport -- водный транспорт//has_water_transport
+from all_data
+ Y
+
+
+ 496
+ 320
+
+
+
+ Table output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ 1000
+ ervu-dashboard
+
+
+ recruit_id
+ recruit_id
+
+
+ kind_right
+ kind_right
+
+
+ address
+ address
+
+
+ vehicle_type
+ vehicle_type
+
+
+ issue_year
+ issue_year
+
+
+ brand_model
+ brand_model
+
+
+ reg_plate
+ reg_plate
+
+
+ vin
+ vin
+
+
+ vehicle_category
+ vehicle_category
+
+
+ start_date
+ start_date
+
+
+ close_date
+ close_date
+
+
+ type_property
+ type_property
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
property
+ N
+ Y
+ N
+ Y
+
+
+ 688
+ 320
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_property
+ has_property
+
+
+ has_ground_transport
+ has_ground_transport
+
+
+ has_air_transport
+ has_air_transport
+
+
+ has_water_transport
+ has_water_transport
+
+
+ N
+ Y
+
+
+ 1328
+ 176
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_property
+ has_property_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_ground_transport
+ has_ground_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_air_transport
+ has_air_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_water_transport
+ has_water_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1104
+ 176
+
+
+
+
+ Table output
+ Change job status on error
+ Y
+
+ error_description
+
+ error_code
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl
new file mode 100644
index 0000000..08270bf
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl
@@ -0,0 +1,743 @@
+
+
+
+ citizenship_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:22:56.048
+ -
+ 2025/08/11 13:22:56.048
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1392
+ 528
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1392
+ 352
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1872
+ 208
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 352
+ 352
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1632
+ 208
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1632
+ 320
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_property_raw
+ is_property
+ MAX
+
+
+ has_ground_transport_raw
+ is_ground_transport
+ MAX
+
+
+ has_air_transport_raw
+ is_air_transport
+ MAX
+
+
+ has_water_transport_raw
+ is_water_transport
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 752
+ 208
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 944
+ 208
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ id
+ id
+
+
+ =
+ start_date
+ start_date
+
+
+ =
+ type_property
+ type_property
+
+ ervu_dashboard
+
property
+
+ recruit_id
+ recruit_id
+ N
+
+
+ kind_right
+ kind_right
+ Y
+
+
+ address
+ address
+ Y
+
+
+ vehicle_type
+ vehicle_type
+ Y
+
+
+ issue_year
+ issue_year
+ Y
+
+
+ brand_model
+ brand_model
+ Y
+
+
+ reg_plate
+ reg_plate
+ Y
+
+
+ vin
+ vin
+ Y
+
+
+ vehicle_category
+ vehicle_category
+ Y
+
+
+ start_date
+ start_date
+ Y
+
+
+ close_date
+ close_date
+ Y
+
+
+ type_property
+ type_property
+ Y
+
+
+ N
+
+
+ 752
+ 352
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ WITH
+base as(
+ SELECT
+ ri.recruit_id,
+ ri.info
+ FROM ervu_dashboard.recruits_info ri
+ join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ --AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
+ AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp
+),
+prop AS (
+ SELECT
+ base.recruit_id,
+ 'realty' AS property_type,
+ ry.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+ THEN base.info->'svedFL'->'svedON'->'on'
+ ELSE '[]'::jsonb
+ END
+ ) AS ry ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'ground_transportation' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+ THEN base.info->'svedFL'->'svedNazTS'->'nazTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'air_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+ THEN base.info->'svedFL'->'svedVozTS'->'vozTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'water_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+ THEN base.info->'svedFL'->'svedVodTS'->'vodTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+),
+all_data as(
+ -- Недвижимость
+ SELECT
+ base.recruit_id,
+ property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля
+ property_data->'adrObSob'->>'adrObSobTekst' AS address,
+ NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date,
+ 'realty' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'realty'
+
+ UNION ALL
+
+ -- Наземный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'vidTS' AS vehicle_type,
+ property_data->>'godVyp' AS issue_year,
+ property_data->>'markaTS' AS brand_model,
+ property_data->>'gosRegZn' AS reg_plate,
+ property_data->>'idenNom' AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'ground_transportation' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'ground_transportation'
+
+ UNION ALL
+
+ -- Воздушный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'air_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'air_vehicles'
+
+ UNION ALL
+
+ -- Водный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'water_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'water_vehicles'
+)
+select
+ *,
+ CASE
+ WHEN type_property = 'realty' THEN 1
+ ELSE 0
+ END AS is_property, -- недвиж//has_property
+ CASE
+ WHEN type_property = 'ground_transportation' THEN 1
+ ELSE 0
+ END AS is_ground_transport, -- наземный транспорт//has_ground_transport
+ CASE
+ WHEN type_property = 'air_vehicles' THEN 1
+ ELSE 0
+ END AS is_air_transport, -- воздушный транспорт//has_air_transport
+ CASE
+ WHEN type_property = 'water_vehicles' THEN 1
+ ELSE 0
+ END AS is_water_transport -- водный транспорт//has_water_transport
+from all_data
+ Y
+
+
+ 560
+ 352
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_property
+ has_property
+
+
+ has_ground_transport
+ has_ground_transport
+
+
+ has_air_transport
+ has_air_transport
+
+
+ has_water_transport
+ has_water_transport
+
+
+ N
+ Y
+
+
+ 1392
+ 208
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_property
+ has_property_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_ground_transport
+ has_ground_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_air_transport
+ has_air_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_water_transport
+ has_water_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1168
+ 208
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl
new file mode 100644
index 0000000..1fbed12
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl
@@ -0,0 +1,757 @@
+
+
+
+ citizenship_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 13:25:52.319
+ -
+ 2025/08/08 13:25:52.319
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1312
+ 400
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1312
+ 208
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1776
+ 64
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (
+ id,
+ job_name,
+ status,
+ execution_datetime,
+ error_description,
+ recruitment_id
+)
+VALUES (
+ DEFAULT,
+ '${JOB_NAME}',
+ 'PROCESSING',
+ DEFAULT,
+ NULL,
+ '${IDM_ID}'
+)
+ON CONFLICT (job_name, recruitment_id)
+DO UPDATE SET
+ status = 'PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+
+
+
+ 272
+ 208
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1568
+ 64
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1568
+ 176
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_property_raw
+ is_property
+ MAX
+
+
+ has_ground_transport_raw
+ is_ground_transport
+ MAX
+
+
+ has_air_transport_raw
+ is_air_transport
+ MAX
+
+
+ has_water_transport_raw
+ is_water_transport
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 672
+ 64
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 864
+ 64
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ id
+ id
+
+
+ =
+ start_date
+ start_date
+
+
+ =
+ type_property
+ type_property
+
+ ervu_dashboard
+
property
+
+ recruit_id
+ recruit_id
+ N
+
+
+ kind_right
+ kind_right
+ Y
+
+
+ address
+ address
+ Y
+
+
+ vehicle_type
+ vehicle_type
+ Y
+
+
+ issue_year
+ issue_year
+ Y
+
+
+ brand_model
+ brand_model
+ Y
+
+
+ reg_plate
+ reg_plate
+ Y
+
+
+ vin
+ vin
+ Y
+
+
+ vehicle_category
+ vehicle_category
+ Y
+
+
+ start_date
+ start_date
+ Y
+
+
+ close_date
+ close_date
+ Y
+
+
+ type_property
+ type_property
+ Y
+
+
+ N
+
+
+ 672
+ 208
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ WITH
+base as(
+ SELECT
+ ri.recruit_id,
+ ri.info
+ FROM ervu_dashboard.recruits_info ri
+ join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
+),
+prop AS (
+ SELECT
+ base.recruit_id,
+ 'realty' AS property_type,
+ ry.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+ THEN base.info->'svedFL'->'svedON'->'on'
+ ELSE '[]'::jsonb
+ END
+ ) AS ry ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'ground_transportation' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+ THEN base.info->'svedFL'->'svedNazTS'->'nazTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'air_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+ THEN base.info->'svedFL'->'svedVozTS'->'vozTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'water_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+ THEN base.info->'svedFL'->'svedVodTS'->'vodTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+),
+all_data as(
+ -- Недвижимость
+ SELECT
+ base.recruit_id,
+ property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля
+ property_data->'adrObSob'->>'adrObSobTekst' AS address,
+ NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date,
+ 'realty' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'realty'
+
+ UNION ALL
+
+ -- Наземный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'vidTS' AS vehicle_type,
+ property_data->>'godVyp' AS issue_year,
+ property_data->>'markaTS' AS brand_model,
+ property_data->>'gosRegZn' AS reg_plate,
+ property_data->>'idenNom' AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'ground_transportation' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'ground_transportation'
+
+ UNION ALL
+
+ -- Воздушный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'air_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'air_vehicles'
+
+ UNION ALL
+
+ -- Водный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'water_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'water_vehicles'
+)
+select
+ *,
+ CASE
+ WHEN type_property = 'realty' THEN 1
+ ELSE 0
+ END AS is_property, -- недвиж//has_property
+ CASE
+ WHEN type_property = 'ground_transportation' THEN 1
+ ELSE 0
+ END AS is_ground_transport, -- наземный транспорт//has_ground_transport
+ CASE
+ WHEN type_property = 'air_vehicles' THEN 1
+ ELSE 0
+ END AS is_air_transport, -- воздушный транспорт//has_air_transport
+ CASE
+ WHEN type_property = 'water_vehicles' THEN 1
+ ELSE 0
+ END AS is_water_transport -- водный транспорт//has_water_transport
+from all_data
+ Y
+
+
+ 480
+ 208
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_property
+ has_property
+
+
+ has_ground_transport
+ has_ground_transport
+
+
+ has_air_transport
+ has_air_transport
+
+
+ has_water_transport
+ has_water_transport
+
+
+ N
+ Y
+
+
+ 1312
+ 64
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_property
+ has_property_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_ground_transport
+ has_ground_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_air_transport
+ has_air_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_water_transport
+ has_water_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1088
+ 64
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_delta.hpl
new file mode 100644
index 0000000..be774d3
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_delta.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:16:11.204
+ -
+ 2025/08/11 13:16:11.204
+
+
+
+
+
+ Table input
+ citizenship_flow_delta.hpl
+ Y
+
+
+ Table input
+ citizenship_flow_delta.hpl 2
+ Y
+
+
+ Table input
+ citizenship_flow_delta.hpl 3
+ Y
+
+
+ Table input
+ citizenship_flow_delta.hpl 4
+ Y
+
+
+ Table input
+ citizenship_flow_delta.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizenship_job'
+where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');
+ N
+
+
+ 352
+ 288
+
+
+
+ citizenship_flow_delta.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 640
+ 128
+
+
+
+ citizenship_flow_delta.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 656
+ 208
+
+
+
+ citizenship_flow_delta.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 656
+ 288
+
+
+
+ citizenship_flow_delta.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 656
+ 368
+
+
+
+ citizenship_flow_delta.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 656
+ 448
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_on_error.hpl
new file mode 100644
index 0000000..4001044
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizenship/recruitment_five_flow_on_error.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_on_error
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 12:54:50.126
+ -
+ 2025/08/05 12:54:50.126
+
+
+
+
+
+ Table input
+ citizenship_flow_repeat.hpl
+ Y
+
+
+ Table input
+ citizenship_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ citizenship_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ citizenship_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ citizenship_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'citizenship_job'
+where je.status is null or je.status in('ERROR', 'PROCESSING');
+ N
+
+
+ 272
+ 368
+
+
+
+ citizenship_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 208
+
+
+
+ citizenship_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 560
+ 288
+
+
+
+ citizenship_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 560
+ 368
+
+
+
+ citizenship_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 560
+ 448
+
+
+
+ citizenship_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 560
+ 528
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/citizenship/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/citizenship/recruitments_five_flow.hpl
new file mode 100644
index 0000000..31961c5
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/citizenship/recruitments_five_flow.hpl
@@ -0,0 +1,373 @@
+
+
+
+ recruitments_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/04/18 09:48:01.970
+ -
+ 2025/04/18 09:48:01.970
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ citizenship_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizenship_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizenship_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizenship_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ citizenship_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+idm_id AS recruitment
+FROM ervu_dashboard.recruitment
+${COMMENT}/*
+where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a',
+'cff66da8-2be0-4839-bd8e-332b1a150031',
+'34c8685e-f08a-4877-afb1-a0589800a21c',
+'0e10678c-f272-41c3-94dd-c15830321f9a',
+'9703f108-761a-467a-aad3-89617e5539ed',
+'55eae374-9bb5-4295-9e3a-5fbcdaba870d',
+'dad6c101-34be-45c3-8173-57190cb69dfb',
+'fc10523f-af31-4f6b-b0e2-00799758f634',
+'61807cc2-9913-4060-8802-0672877c28c8',
+'eba7fd7d-e3da-49a7-8e65-8fc85e47190e',
+'f59afe6d-c166-4196-a489-6d17f02fc05e',
+'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9',
+'0fe2bdf0-afbb-402d-93da-67e511799afa',
+'6139de3b-2378-496f-9fca-7df7dab90832',
+'50ba73dd-1726-48f1-8b7c-7a77ff965299')
+${COMMENT}*/
+ Y
+
+
+ 432
+ 304
+
+
+
+ citizenship_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 144
+
+
+
+ citizenship_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 240
+
+
+
+ citizenship_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 336
+
+
+
+ citizenship_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 432
+
+
+
+ citizenship_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/citizenship/parallel/citizenship_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ citizenship_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 512
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/property/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/property/check_if_need_to_repeat_job.hpl
new file mode 100644
index 0000000..b70250e
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/property/check_if_need_to_repeat_job.hpl
@@ -0,0 +1,86 @@
+
+
+
+ check_if_need_to_repeat_job
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 12:27:51.630
+ -
+ 2025/08/08 12:27:51.630
+
+
+
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ need_to_repeat_job
+ NEED_TO_REPEAT_JOB
+ ROOT_WORKFLOW
+
+
+ Y
+
+
+ 624
+ 288
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (SELECT 1
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'property_job'
+where je.status is null or je.status in ('ERROR', 'PROCESSING')
+limit 1
+) as need_to_repeat_job;
+ N
+
+
+ 336
+ 288
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/property/checkpoints/check_if_property_job_exists.hpl b/mappings/info_recruits/citizen_tables/property/checkpoints/check_if_property_job_exists.hpl
new file mode 100644
index 0000000..09a5ca3
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/property/checkpoints/check_if_property_job_exists.hpl
@@ -0,0 +1,113 @@
+
+
+
+ check_if_property_job_exists
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 13:28:46.661
+ -
+ 2025/08/05 13:28:46.661
+
+
+
+
+
+ Set variables
+ Write to log
+ N
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ job_executed_flag
+ JOB_EXECUTED_FLAG
+ PARENT_WORKFLOW
+
+
+ Y
+
+
+ 672
+ 336
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'property_job'
+ limit 1
+ ) AS job_executed_flag;
+ N
+
+
+ 384
+ 336
+
+
+
+ Write to log
+ WriteToLog
+
+ Y
+
+ 1
+
+ none
+
+
+ Y
+
+
+ N
+ 0
+ Basic
+ ${STATUS}
+
+
+ 944
+ 224
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/property/parallel/property_flow.hpl b/mappings/info_recruits/citizen_tables/property/parallel/property_flow.hpl
new file mode 100644
index 0000000..a387b6a
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/property/parallel/property_flow.hpl
@@ -0,0 +1,722 @@
+
+
+
+ property_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 14:31:22.799
+ -
+ 2025/08/05 14:31:22.799
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Table output
+ Change job status on error
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Table input
+ Table output
+ Y
+
+
+ Table output
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1328
+ 496
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1328
+ 320
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1856
+ 176
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id)
+VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}');
+
+
+
+
+ 288
+ 320
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1536
+ 176
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1536
+ 304
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_property_raw
+ is_property
+ MAX
+
+
+ has_ground_transport_raw
+ is_ground_transport
+ MAX
+
+
+ has_air_transport_raw
+ is_air_transport
+ MAX
+
+
+ has_water_transport_raw
+ is_water_transport
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 688
+ 176
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 880
+ 176
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ WITH
+base as(
+ SELECT
+ ri.recruit_id,
+ ri.info
+ FROM ervu_dashboard.recruits_info ri
+ join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
+),
+prop AS (
+ SELECT
+ base.recruit_id,
+ 'realty' AS property_type,
+ ry.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+ THEN base.info->'svedFL'->'svedON'->'on'
+ ELSE '[]'::jsonb
+ END
+ ) AS ry ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'ground_transportation' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+ THEN base.info->'svedFL'->'svedNazTS'->'nazTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'air_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+ THEN base.info->'svedFL'->'svedVozTS'->'vozTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'water_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+ THEN base.info->'svedFL'->'svedVodTS'->'vodTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+),
+all_data as(
+ -- Недвижимость
+ SELECT
+ base.recruit_id,
+ property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля
+ property_data->'adrObSob'->>'adrObSobTekst' AS address,
+ NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date,
+ 'realty' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'realty'
+
+ UNION ALL
+
+ -- Наземный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'vidTS' AS vehicle_type,
+ property_data->>'godVyp' AS issue_year,
+ property_data->>'markaTS' AS brand_model,
+ property_data->>'gosRegZn' AS reg_plate,
+ property_data->>'idenNom' AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'ground_transportation' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'ground_transportation'
+
+ UNION ALL
+
+ -- Воздушный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'air_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'air_vehicles'
+
+ UNION ALL
+
+ -- Водный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'water_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'water_vehicles'
+)
+select
+ *,
+ CASE
+ WHEN type_property = 'realty' THEN 1
+ ELSE 0
+ END AS is_property, -- недвиж//has_property
+ CASE
+ WHEN type_property = 'ground_transportation'THEN 1
+ ELSE 0
+ END AS is_ground_transport, -- наземный транспорт//has_ground_transport
+ CASE
+ WHEN type_property = 'air_vehicles' THEN 1
+ ELSE 0
+ END AS is_air_transport, -- воздушный транспорт//has_air_transport
+ CASE
+ WHEN type_property = 'water_vehicles' THEN 1
+ ELSE 0
+ END AS is_water_transport -- водный транспорт//has_water_transport
+from all_data
+ Y
+
+
+ 496
+ 320
+
+
+
+ Table output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ 1000
+ ervu-dashboard
+
+
+ recruit_id
+ recruit_id
+
+
+ kind_right
+ kind_right
+
+
+ address
+ address
+
+
+ vehicle_type
+ vehicle_type
+
+
+ issue_year
+ issue_year
+
+
+ brand_model
+ brand_model
+
+
+ reg_plate
+ reg_plate
+
+
+ vin
+ vin
+
+
+ vehicle_category
+ vehicle_category
+
+
+ start_date
+ start_date
+
+
+ close_date
+ close_date
+
+
+ type_property
+ type_property
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
property
+ N
+ Y
+ N
+ Y
+
+
+ 688
+ 320
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_property
+ has_property
+
+
+ has_ground_transport
+ has_ground_transport
+
+
+ has_air_transport
+ has_air_transport
+
+
+ has_water_transport
+ has_water_transport
+
+
+ N
+ Y
+
+
+ 1328
+ 176
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_property
+ has_property_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_ground_transport
+ has_ground_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_air_transport
+ has_air_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_water_transport
+ has_water_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1104
+ 176
+
+
+
+
+ Table output
+ Change job status on error
+ Y
+
+ error_description
+
+ error_code
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl b/mappings/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl
new file mode 100644
index 0000000..2499f87
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl
@@ -0,0 +1,743 @@
+
+
+
+ property_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:22:56.048
+ -
+ 2025/08/11 13:22:56.048
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1392
+ 528
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1392
+ 352
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1872
+ 208
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 352
+ 352
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1632
+ 208
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1632
+ 320
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_property_raw
+ is_property
+ MAX
+
+
+ has_ground_transport_raw
+ is_ground_transport
+ MAX
+
+
+ has_air_transport_raw
+ is_air_transport
+ MAX
+
+
+ has_water_transport_raw
+ is_water_transport
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 752
+ 208
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 944
+ 208
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ id
+ id
+
+
+ =
+ start_date
+ start_date
+
+
+ =
+ type_property
+ type_property
+
+ ervu_dashboard
+
property
+
+ recruit_id
+ recruit_id
+ N
+
+
+ kind_right
+ kind_right
+ Y
+
+
+ address
+ address
+ Y
+
+
+ vehicle_type
+ vehicle_type
+ Y
+
+
+ issue_year
+ issue_year
+ Y
+
+
+ brand_model
+ brand_model
+ Y
+
+
+ reg_plate
+ reg_plate
+ Y
+
+
+ vin
+ vin
+ Y
+
+
+ vehicle_category
+ vehicle_category
+ Y
+
+
+ start_date
+ start_date
+ Y
+
+
+ close_date
+ close_date
+ Y
+
+
+ type_property
+ type_property
+ Y
+
+
+ N
+
+
+ 752
+ 352
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ WITH
+base as(
+ SELECT
+ ri.recruit_id,
+ ri.info
+ FROM ervu_dashboard.recruits_info ri
+ join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ --AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
+ AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp
+),
+prop AS (
+ SELECT
+ base.recruit_id,
+ 'realty' AS property_type,
+ ry.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+ THEN base.info->'svedFL'->'svedON'->'on'
+ ELSE '[]'::jsonb
+ END
+ ) AS ry ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'ground_transportation' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+ THEN base.info->'svedFL'->'svedNazTS'->'nazTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'air_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+ THEN base.info->'svedFL'->'svedVozTS'->'vozTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'water_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+ THEN base.info->'svedFL'->'svedVodTS'->'vodTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+),
+all_data as(
+ -- Недвижимость
+ SELECT
+ base.recruit_id,
+ property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля
+ property_data->'adrObSob'->>'adrObSobTekst' AS address,
+ NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date,
+ 'realty' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'realty'
+
+ UNION ALL
+
+ -- Наземный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'vidTS' AS vehicle_type,
+ property_data->>'godVyp' AS issue_year,
+ property_data->>'markaTS' AS brand_model,
+ property_data->>'gosRegZn' AS reg_plate,
+ property_data->>'idenNom' AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'ground_transportation' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'ground_transportation'
+
+ UNION ALL
+
+ -- Воздушный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'air_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'air_vehicles'
+
+ UNION ALL
+
+ -- Водный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'water_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'water_vehicles'
+)
+select
+ *,
+ CASE
+ WHEN type_property = 'realty' THEN 1
+ ELSE 0
+ END AS is_property, -- недвиж//has_property
+ CASE
+ WHEN type_property = 'ground_transportation' THEN 1
+ ELSE 0
+ END AS is_ground_transport, -- наземный транспорт//has_ground_transport
+ CASE
+ WHEN type_property = 'air_vehicles' THEN 1
+ ELSE 0
+ END AS is_air_transport, -- воздушный транспорт//has_air_transport
+ CASE
+ WHEN type_property = 'water_vehicles' THEN 1
+ ELSE 0
+ END AS is_water_transport -- водный транспорт//has_water_transport
+from all_data
+ Y
+
+
+ 560
+ 352
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_property
+ has_property
+
+
+ has_ground_transport
+ has_ground_transport
+
+
+ has_air_transport
+ has_air_transport
+
+
+ has_water_transport
+ has_water_transport
+
+
+ N
+ Y
+
+
+ 1392
+ 208
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_property
+ has_property_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_ground_transport
+ has_ground_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_air_transport
+ has_air_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_water_transport
+ has_water_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1168
+ 208
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl
new file mode 100644
index 0000000..2aa2f33
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl
@@ -0,0 +1,757 @@
+
+
+
+ property_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 13:25:52.319
+ -
+ 2025/08/08 13:25:52.319
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1312
+ 400
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1312
+ 208
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1776
+ 64
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (
+ id,
+ job_name,
+ status,
+ execution_datetime,
+ error_description,
+ recruitment_id
+)
+VALUES (
+ DEFAULT,
+ '${JOB_NAME}',
+ 'PROCESSING',
+ DEFAULT,
+ NULL,
+ '${IDM_ID}'
+)
+ON CONFLICT (job_name, recruitment_id)
+DO UPDATE SET
+ status = 'PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+
+
+
+ 272
+ 208
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1568
+ 64
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1568
+ 176
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_property_raw
+ is_property
+ MAX
+
+
+ has_ground_transport_raw
+ is_ground_transport
+ MAX
+
+
+ has_air_transport_raw
+ is_air_transport
+ MAX
+
+
+ has_water_transport_raw
+ is_water_transport
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 672
+ 64
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 864
+ 64
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ id
+ id
+
+
+ =
+ start_date
+ start_date
+
+
+ =
+ type_property
+ type_property
+
+ ervu_dashboard
+
property
+
+ recruit_id
+ recruit_id
+ N
+
+
+ kind_right
+ kind_right
+ Y
+
+
+ address
+ address
+ Y
+
+
+ vehicle_type
+ vehicle_type
+ Y
+
+
+ issue_year
+ issue_year
+ Y
+
+
+ brand_model
+ brand_model
+ Y
+
+
+ reg_plate
+ reg_plate
+ Y
+
+
+ vin
+ vin
+ Y
+
+
+ vehicle_category
+ vehicle_category
+ Y
+
+
+ start_date
+ start_date
+ Y
+
+
+ close_date
+ close_date
+ Y
+
+
+ type_property
+ type_property
+ Y
+
+
+ N
+
+
+ 672
+ 208
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ WITH
+base as(
+ SELECT
+ ri.recruit_id,
+ ri.info
+ FROM ervu_dashboard.recruits_info ri
+ join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
+),
+prop AS (
+ SELECT
+ base.recruit_id,
+ 'realty' AS property_type,
+ ry.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+ THEN base.info->'svedFL'->'svedON'->'on'
+ ELSE '[]'::jsonb
+ END
+ ) AS ry ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedON'->'on') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'ground_transportation' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+ THEN base.info->'svedFL'->'svedNazTS'->'nazTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedNazTS'->'nazTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'air_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+ THEN base.info->'svedFL'->'svedVozTS'->'vozTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVozTS'->'vozTS') = 'array'
+
+ UNION ALL
+
+ SELECT
+ base.recruit_id,
+ 'water_vehicles' AS property_type,
+ property_data.value AS property_data
+ FROM base
+ LEFT JOIN LATERAL jsonb_array_elements(
+ CASE
+ WHEN jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+ THEN base.info->'svedFL'->'svedVodTS'->'vodTS'
+ ELSE '[]'::jsonb
+ END
+ ) AS property_data ON true
+ WHERE jsonb_typeof(base.info->'svedFL'->'svedVodTS'->'vodTS') = 'array'
+),
+all_data as(
+ -- Недвижимость
+ SELECT
+ base.recruit_id,
+ property_data->>'naimVidPrav' AS kind_right, -- Исправлено название поля
+ property_data->'adrObSob'->>'adrObSobTekst' AS address,
+ NULL AS vehicle_type, -- Добавлено для соответствия числа столбцов
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPrav', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPrav', 'YYYY-MM-DD') AS close_date,
+ 'realty' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'realty'
+
+ UNION ALL
+
+ -- Наземный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'vidTS' AS vehicle_type,
+ property_data->>'godVyp' AS issue_year,
+ property_data->>'markaTS' AS brand_model,
+ property_data->>'gosRegZn' AS reg_plate,
+ property_data->>'idenNom' AS vin,
+ NULL AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'ground_transportation' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'ground_transportation'
+
+ UNION ALL
+
+ -- Воздушный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'air_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'air_vehicles'
+
+ UNION ALL
+
+ -- Водный транспорт
+ SELECT
+ base.recruit_id,
+ NULL AS kind_right,
+ NULL AS address,
+ property_data->>'naimVid' AS vehicle_type,
+ NULL AS issue_year,
+ NULL AS brand_model,
+ NULL AS reg_plate,
+ NULL AS vin,
+ property_data->>'naznKat' AS vehicle_category,
+ to_date(property_data->>'dataRegPr', 'YYYY-MM-DD') AS start_date,
+ to_date(property_data->>'dataPrekPr', 'YYYY-MM-DD') AS close_date,
+ 'water_vehicles' AS type_property
+ FROM base
+ JOIN prop ON base.recruit_id = prop.recruit_id
+ WHERE prop.property_type = 'water_vehicles'
+)
+select
+ *,
+ CASE
+ WHEN type_property = 'realty' THEN 1
+ ELSE 0
+ END AS is_property, -- недвиж//has_property
+ CASE
+ WHEN type_property = 'ground_transportation' THEN 1
+ ELSE 0
+ END AS is_ground_transport, -- наземный транспорт//has_ground_transport
+ CASE
+ WHEN type_property = 'air_vehicles' THEN 1
+ ELSE 0
+ END AS is_air_transport, -- воздушный транспорт//has_air_transport
+ CASE
+ WHEN type_property = 'water_vehicles' THEN 1
+ ELSE 0
+ END AS is_water_transport -- водный транспорт//has_water_transport
+from all_data
+ Y
+
+
+ 480
+ 208
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_property
+ has_property
+
+
+ has_ground_transport
+ has_ground_transport
+
+
+ has_air_transport
+ has_air_transport
+
+
+ has_water_transport
+ has_water_transport
+
+
+ N
+ Y
+
+
+ 1312
+ 64
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_property
+ has_property_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_ground_transport
+ has_ground_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_air_transport
+ has_air_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_water_transport
+ has_water_transport_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1088
+ 64
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/property/property_job.hwf b/mappings/info_recruits/citizen_tables/property/property_job.hwf
new file mode 100644
index 0000000..1b74416
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/property/property_job.hwf
@@ -0,0 +1,360 @@
+
+
+ property_job
+ Y
+
+
+
+ 0
+ -
+ 2025/08/05 12:45:28.561
+ -
+ 2025/08/05 12:45:28.561
+
+
+ COMMENT
+
+
+
+
+ LIMIT_FW
+ ;
+
+
+
+ M_R_CR_DATE
+ 3001-01-01 00:00:00
+
+
+
+ M_R_UP_DATE
+ 0001-01-01 00:00:00
+
+
+
+
+
+ Start
+
+ SPECIAL
+
+ 1
+ 12
+ 60
+ 0
+ 0
+ N
+ 0
+ 1
+ N
+ 224
+ 304
+
+
+
+ check_if_property_job_exists.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/checkpoints/check_if_property_job_exists.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 416
+ 304
+
+
+
+ subpoena_job_exists_check
+
+ SIMPLE_EVAL
+
+ boolean
+ false
+ equal
+ equal
+ N
+ variable
+ JOB_EXECUTED_FLAG
+ N
+ 688
+ 304
+
+
+
+ recruitments_five_flow.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/recruitments_five_flow.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ Y
+ 928
+ 304
+
+
+
+ recruitment_five_flow_on_error.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/recruitment_five_flow_on_error.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 928
+ 608
+
+
+
+ check_if_need_to_repeat_job.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/check_if_need_to_repeat_job.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 688
+ 464
+
+
+
+ Simple evaluation
+
+ SIMPLE_EVAL
+
+ boolean
+ true
+ equal
+ equal
+ N
+ variable
+ NEED_TO_REPEAT_JOB
+ N
+ 688
+ 608
+
+
+
+ recruitment_five_flow_delta.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/recruitment_five_flow_delta.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 688
+ 800
+
+
+
+
+
+ Start
+ check_if_property_job_exists.hpl
+ Y
+ Y
+ Y
+
+
+ check_if_property_job_exists.hpl
+ subpoena_job_exists_check
+ Y
+ Y
+ N
+
+
+ subpoena_job_exists_check
+ recruitments_five_flow.hpl
+ Y
+ Y
+ N
+
+
+ subpoena_job_exists_check
+ check_if_need_to_repeat_job.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat_job.hpl
+ Simple evaluation
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_on_error.hpl
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_delta.hpl
+ Y
+ N
+ N
+
+
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 800
+ 256
+ Первичка
+ 65
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 800
+ 560
+ Повторка
+ 64
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 608
+ 720
+ Дельта
+ 49
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ Segoe UI
+ 9
+ 150
+ 1200
+ 80
+ subpoena_job
+
+M_R_UP_DATE
+
+M_R_CR_DATE
+
+0001-01-01 00:00:00
+
+3001-01-01 00:00:00
+ 114
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_delta.hpl
new file mode 100644
index 0000000..0ac96e5
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_delta.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:16:11.204
+ -
+ 2025/08/11 13:16:11.204
+
+
+
+
+
+ Table input
+ property_flow_delta.hpl
+ Y
+
+
+ Table input
+ property_flow_delta.hpl 2
+ Y
+
+
+ Table input
+ property_flow_delta.hpl 3
+ Y
+
+
+ Table input
+ property_flow_delta.hpl 4
+ Y
+
+
+ Table input
+ property_flow_delta.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'property_job'
+where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');
+ N
+
+
+ 352
+ 288
+
+
+
+ property_flow_delta.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 640
+ 128
+
+
+
+ property_flow_delta.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 640
+ 208
+
+
+
+ property_flow_delta.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 640
+ 288
+
+
+
+ property_flow_delta.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 640
+ 368
+
+
+
+ property_flow_delta.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 640
+ 448
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_on_error.hpl
new file mode 100644
index 0000000..b7c2cde
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/property/recruitment_five_flow_on_error.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_on_error
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 12:54:50.126
+ -
+ 2025/08/05 12:54:50.126
+
+
+
+
+
+ Table input
+ property_flow_repeat.hpl
+ Y
+
+
+ Table input
+ property_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ property_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ property_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ property_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'property_job'
+where je.status is null or je.status in('ERROR', 'PROCESSING');
+ N
+
+
+ 272
+ 368
+
+
+
+ property_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 208
+
+
+
+ property_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 288
+
+
+
+ property_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 368
+
+
+
+ property_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 448
+
+
+
+ property_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 544
+ 528
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/property/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/property/recruitments_five_flow.hpl
new file mode 100644
index 0000000..14c764d
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/property/recruitments_five_flow.hpl
@@ -0,0 +1,373 @@
+
+
+
+ recruitments_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/04/18 09:48:01.970
+ -
+ 2025/04/18 09:48:01.970
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ property_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ property_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ property_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ property_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ property_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+idm_id AS recruitment
+FROM ervu_dashboard.recruitment
+${COMMENT}/*
+where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a',
+'cff66da8-2be0-4839-bd8e-332b1a150031',
+'34c8685e-f08a-4877-afb1-a0589800a21c',
+'0e10678c-f272-41c3-94dd-c15830321f9a',
+'9703f108-761a-467a-aad3-89617e5539ed',
+'55eae374-9bb5-4295-9e3a-5fbcdaba870d',
+'dad6c101-34be-45c3-8173-57190cb69dfb',
+'fc10523f-af31-4f6b-b0e2-00799758f634',
+'61807cc2-9913-4060-8802-0672877c28c8',
+'eba7fd7d-e3da-49a7-8e65-8fc85e47190e',
+'f59afe6d-c166-4196-a489-6d17f02fc05e',
+'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9',
+'0fe2bdf0-afbb-402d-93da-67e511799afa',
+'6139de3b-2378-496f-9fca-7df7dab90832',
+'50ba73dd-1726-48f1-8b7c-7a77ff965299')
+${COMMENT}*/
+ Y
+
+
+ 432
+ 304
+
+
+
+ property_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 144
+
+
+
+ property_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 224
+
+
+
+ property_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 304
+
+
+
+ property_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 384
+
+
+
+ property_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/property/parallel/property_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ property_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 464
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn.hpl b/mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn.hpl
deleted file mode 100644
index aacbef5..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn.hpl
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
- branching_snils_inn
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1056
- 256
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- select
- status as STATUS,
- job_name AS PIPELINE
-from public.etl_checkpoints
-where job_name = 'job_snils_inn'
- N
-
-
- 816
- 256
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1280
- 256
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn_delta.hpl b/mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn_delta.hpl
deleted file mode 100644
index 0415b07..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/branching_snils_inn_delta.hpl
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- branching_snils_inn_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 09:54:43.724
- -
- 2025/06/09 09:54:43.724
-
-
-
-
-
- Set variables 2
- Write to log 2
- N
-
-
- Table input
- Set variables 2
- Y
-
-
-
- Set variables 2
- SetVariable
-
- Y
-
- 1
-
- none
-
-
-
-
- pipeline
- PIPE
- PARENT_WORKFLOW
-
-
- status
- STATUS
- PARENT_WORKFLOW
-
-
- Y
-
-
- 1056
- 256
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- COALESCE(job_name, 'job_snils_inn_delta') AS PIPELINE,
- COALESCE(status, 'ERROR') AS STATUS,
- current_timestamp::timestamp as record_created
-FROM (
- select
- CASE
- WHEN status = 'PROCESSING' THEN 'ERROR'
- ELSE status
- END AS status,
- job_name
- from public.etl_checkpoints
- where job_name = 'job_snils_inn_delta'
-
- UNION ALL
-
- SELECT NULL, NULL
- WHERE NOT EXISTS (
- SELECT 1
- FROM public.etl_checkpoints
- WHERE job_name = 'job_snils_inn_delta'
- )
-) t
- N
-
-
- 816
- 256
-
-
-
- Write to log 2
- WriteToLog
-
- Y
-
- 1
-
- none
-
-
- Y
-
-
- pipeline
-
-
- status
-
-
- N
- 0
- Basic
- ${PIPE}
-${STATUS}
-
-
- 1280
- 256
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/snils_inn/check_if_need_to_repeat_job.hpl
new file mode 100644
index 0000000..406fb97
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/snils_inn/check_if_need_to_repeat_job.hpl
@@ -0,0 +1,86 @@
+
+
+
+ check_if_need_to_repeat_job
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 12:27:51.630
+ -
+ 2025/08/08 12:27:51.630
+
+
+
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ need_to_repeat_job
+ NEED_TO_REPEAT_JOB
+ ROOT_WORKFLOW
+
+
+ Y
+
+
+ 624
+ 288
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (SELECT 1
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'recruits_info_job'
+where je.status is null or je.status in ('ERROR', 'PROCESSING')
+limit 1
+) as need_to_repeat_job;
+ N
+
+
+ 336
+ 288
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_error.hpl
deleted file mode 100644
index 272ccc9..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_snils_inn_flow1_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow1' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_success.hpl
deleted file mode 100644
index 60a3e53..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_snils_inn_flow1_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow1' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_error.hpl
deleted file mode 100644
index c2dbe25..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_error.hpl
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
- change_status_delta_snils_inn_flow2_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow2' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
-
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_success.hpl
deleted file mode 100644
index 549321d..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_snils_inn_flow2_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow2' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_error.hpl
deleted file mode 100644
index 681da71..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_snils_inn_flow3_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow3' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_success.hpl
deleted file mode 100644
index 2f7cad3..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_snils_inn_flow3_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow3' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_error.hpl
deleted file mode 100644
index 13ffe89..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_snils_inn_flow4_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow4' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_success.hpl
deleted file mode 100644
index 552dbf7..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_snils_inn_flow4_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow4' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_error.hpl
deleted file mode 100644
index 93465e3..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_error.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_snils_inn_flow5_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow5' as job_name,
- 'ERROR' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_success.hpl
deleted file mode 100644
index c961ab0..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_success.hpl
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
- change_status_delta_snils_inn_flow5_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 12:20:06.191
- -
- 2025/06/16 12:20:06.191
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1152
- 304
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'delta_snils_inn_flow5' as job_name,
- 'SUCCESS' as status,
- current_timestamp as record_created
- N
-
-
- 784
- 304
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_error.hpl
deleted file mode 100644
index 5bfe2fe..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_error.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_snils_inn_flow1_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'snils_inn_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_success.hpl
deleted file mode 100644
index f6b19c4..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_success.hpl
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- change_status_snils_inn_flow1_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-/*
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'snils_inn_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_error.hpl
deleted file mode 100644
index 1c08c6d..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_error.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_snils_inn_flow2_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'snils_inn_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_success.hpl
deleted file mode 100644
index 5a31299..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_success.hpl
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
- change_status_snils_inn_flow2_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- --MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- --(SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-*/
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2--,
-/*
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'snils_inn_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_error.hpl
deleted file mode 100644
index 8955f9a..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_error.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_snils_inn_flow3_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'snils_inn_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_success.hpl
deleted file mode 100644
index 1784e80..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_success.hpl
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
- change_status_snils_inn_flow3_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-*/
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3--,
-/*
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'snils_inn_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_error.hpl
deleted file mode 100644
index 164d123..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_snils_inn_flow4_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'snils_inn_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_success.hpl
deleted file mode 100644
index d5f76cd..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_snils_inn_flow4_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-/*
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-*/
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1--,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-*/
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4--,
-/*
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-*/
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'snils_inn_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-/*
- union all
-
- SELECT
- 'job_citizen_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-*/
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_error.hpl
deleted file mode 100644
index 9763f85..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_error.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_snils_inn_flow5_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'snils_inn_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_success.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_success.hpl
deleted file mode 100644
index 72af375..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_success.hpl
+++ /dev/null
@@ -1,256 +0,0 @@
-
-
-
- change_status_snils_inn_flow5_success
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 09:14:18.787
- -
- 2025/06/16 09:14:18.787
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- last_recruitment_id
- last_recruitment_id
- Y
-
-
- record_created
- record_created
- Y
-
-
- recruitment_created_date
- recruitment_created_date
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1056
- 400
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.snils ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
-/*
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4--,
-*/
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
-
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
-/*
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
-
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
-
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
-
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
-*/
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
-
- FROM result_ma
-),
-for_checkpoints as (
-/*
- SELECT
- 'job_citizen_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_citizen_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-*/
- SELECT
- 'snils_inn_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'SUCCESS' as status,
- current_timestamp as record_created
- from result_max
-
-)
-select * from for_checkpoints
- N
-
-
- 688
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing.hpl
deleted file mode 100644
index d0e503c..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing.hpl
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
- change_status_to_processing
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/11 16:14:31.162
- -
- 2025/06/11 16:14:31.162
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 784
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'PROCESSING' AS status,
- 'job_snils_inn' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'snils_inn_flow1' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'snils_inn_flow2' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'snils_inn_flow3' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'snils_inn_flow4' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
-
-UNION ALL
-
-SELECT
- 'PROCESSING' AS status,
- 'snils_inn_flow5' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 368
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing_delta.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing_delta.hpl
deleted file mode 100644
index 6ace1f9..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing_delta.hpl
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-
- change_status_to_processing_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/16 13:42:26.494
- -
- 2025/06/16 13:42:26.494
-
-
-
-
-
- Table input
- Insert / update
- Y
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1248
- 352
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- SELECT
- 'PROCESSING' AS status,
- 'delta_snils_inn' AS job_name,
- current_timestamp AS record_created
---FROM public.etl_checkpoints
- N
-
-
- 832
- 352
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_snils_inn_job_exists.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_snils_inn_job_exists.hpl
new file mode 100644
index 0000000..de2d8fd
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_snils_inn_job_exists.hpl
@@ -0,0 +1,113 @@
+
+
+
+ check_if_snils_inn_job_exists
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 13:28:46.661
+ -
+ 2025/08/05 13:28:46.661
+
+
+
+
+
+ Set variables
+ Write to log
+ N
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ job_executed_flag
+ JOB_EXECUTED_FLAG
+ PARENT_WORKFLOW
+
+
+ Y
+
+
+ 672
+ 336
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'snils_inn_job'
+ limit 1
+ ) AS job_executed_flag;
+ N
+
+
+ 384
+ 336
+
+
+
+ Write to log
+ WriteToLog
+
+ Y
+
+ 1
+
+ none
+
+
+ Y
+
+
+ N
+ 0
+ Basic
+ ${STATUS}
+
+
+ 944
+ 224
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl
deleted file mode 100644
index 1403bee..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_snils_inn
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 14:19:02.590
- -
- 2025/06/03 14:19:02.590
-
-
-
-
-
- Filter rows
- Abort
- N
-
-
- JSON input state_child_flow1.json
- Filter rows
- N
-
-
- JSON input state_child_flow2.json
- Filter rows
- N
-
-
- JSON input state_child_flow3.json
- Filter rows
- N
-
-
- JSON input state_child_flow4.json
- Filter rows
- N
-
-
- JSON input state_child_flow5.json
- Filter rows
- N
-
-
- Table input
- Insert / update
- Y
-
-
- Dummy (do nothing)
- JSON input state_child_flow1.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow2.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow3.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow4.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow5.json
- N
-
-
-
- Abort
- Abort
-
- Y
-
- 1
-
- none
-
-
- ABORT_WITH_ERROR
- Y
- 0
-
-
- 1264
- 592
-
-
-
- Dummy (do nothing)
- Dummy
-
- Y
-
- 1
-
- none
-
-
-
-
- 352
- 592
-
-
-
- Filter rows
- FilterRows
-
- Y
-
- 1
-
- none
-
-
-
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow1
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow2
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow3
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow4
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow5
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- Abort
-
-
- 944
- 592
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1264
- 208
-
-
-
- JSON input state_child_flow1.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 432
-
-
-
- JSON input state_child_flow2.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 512
-
-
-
- JSON input state_child_flow3.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 592
-
-
-
- JSON input state_child_flow4.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 672
-
-
-
- JSON input state_child_flow5.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 752
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH status_check AS (
- SELECT
- bool_or(status = 'ERROR' AND job_name IN (
- 'snils_inn_flow1',
- 'snils_inn_flow2',
- 'snils_inn_flow3',
- 'snils_inn_flow4',
- 'snils_inn_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'snils_inn_flow1',
- 'snils_inn_flow2',
- 'snils_inn_flow3',
- 'snils_inn_flow4',
- 'snils_inn_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_snils_inn' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 896
- 208
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn_delta.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn_delta.hpl
deleted file mode 100644
index 100f8e1..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn_delta.hpl
+++ /dev/null
@@ -1,869 +0,0 @@
-
-
-
- checkpoint_job_snils_inn_delta
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 14:19:02.590
- -
- 2025/06/03 14:19:02.590
-
-
-
-
-
- Filter rows
- Abort
- N
-
-
- JSON input state_child_flow1.json
- Filter rows
- N
-
-
- JSON input state_child_flow2.json
- Filter rows
- N
-
-
- JSON input state_child_flow3.json
- Filter rows
- N
-
-
- JSON input state_child_flow4.json
- Filter rows
- N
-
-
- JSON input state_child_flow5.json
- Filter rows
- N
-
-
- Table input
- Insert / update
- Y
-
-
- Dummy (do nothing)
- JSON input state_child_flow1.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow2.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow3.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow4.json
- N
-
-
- Dummy (do nothing)
- JSON input state_child_flow5.json
- N
-
-
-
- Abort
- Abort
-
- Y
-
- 1
-
- none
-
-
- ABORT_WITH_ERROR
- Y
- 0
-
-
- 1264
- 592
-
-
-
- Dummy (do nothing)
- Dummy
-
- Y
-
- 1
-
- none
-
-
-
-
- 352
- 592
-
-
-
- Filter rows
- FilterRows
-
- Y
-
- 1
-
- none
-
-
-
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow1
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow2
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow3
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow4
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
-
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- child_flow5
- String
-
-
-
-
-
- =
- status
- N
- AND
-
- N
- -1
- constant
- -1
- ERROR
- String
-
-
-
- =
- pipeline
- N
- OR
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- =
- pipeline
- N
- -
-
- N
- -1
- constant
- -1
- recruits_info_flow1
- String
-
-
-
- Abort
-
-
- 944
- 592
-
-
-
- Insert / update
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- job_name
- job_name
-
- public
-
etl_checkpoints
-
- job_name
- job_name
- N
-
-
- record_created
- record_created
- Y
-
-
- status
- status
- Y
-
-
- N
-
-
- 1264
- 208
-
-
-
- JSON input state_child_flow1.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 432
-
-
-
- JSON input state_child_flow2.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 512
-
-
-
- JSON input state_child_flow3.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 592
-
-
-
- JSON input state_child_flow4.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 672
-
-
-
- JSON input state_child_flow5.json
- JsonInput
-
- Y
-
- 1
-
- none
-
-
- N
-
- N
- N
- N
- N
- N
- Y
- Y
- Y
-
-
- ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json
-
-
- N
- N
-
-
-
- pipeline
- $.pipeline
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- status
- $.status
- String
-
-
-
-
- -1
- -1
- none
- N
-
-
- 0
- N
- N
-
-
-
-
-
-
-
-
-
-
-
- 640
- 752
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH status_check AS (
- SELECT
- bool_or(status = 'ERROR' AND job_name IN (
- 'delta_snils_inn_flow1',
- 'delta_snils_inn_flow2',
- 'delta_snils_inn_flow3',
- 'delta_snils_inn_flow4',
- 'delta_snils_inn_flow5'
- )) AS has_error,
- count(*) FILTER (
- WHERE status = 'SUCCESS' AND job_name IN (
- 'delta_snils_inn_flow1',
- 'delta_snils_inn_flow2',
- 'delta_snils_inn_flow3',
- 'delta_snils_inn_flow4',
- 'delta_snils_inn_flow5'
- )
- ) = 5 AS all_success
- FROM public.etl_checkpoints
-)
-SELECT
- 'job_snils_inn_delta' as job_name,
- CASE
- WHEN has_error THEN 'ERROR'
- WHEN all_success THEN 'SUCCESS'
- ELSE 'ERROR'
- END AS status,
- current_timestamp AS record_created
-FROM status_check;
- N
-
-
- 896
- 208
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_snils_inn_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_snils_inn_error.hpl
deleted file mode 100644
index 0d9cb80..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_snils_inn_error.hpl
+++ /dev/null
@@ -1,273 +0,0 @@
-
-
-
- checkpoint_snils_inn_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/09 10:01:04.895
- -
- 2025/06/09 10:01:04.895
-
-
-
-
-
- Select values
- Table output
- N
-
-
- Table input
- Select values
- N
-
-
- Table input
- Table output
- Y
-
-
-
- Select values
- SelectValues
-
- Y
-
- 1
-
- none
-
-
-
- N
-
- idm_id
- idm_id
- String
- -2
- -2
-
- false
-
-
- false
-
-
-
-
-
-
-
-
-
- 1008
- 608
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num
- FROM ordered
-),
-flow_ranges AS (
- SELECT
- flow_num,
- MIN(created_at) AS min_date,
- MAX(created_at) AS max_date
- FROM splitted
- GROUP BY flow_num
-),
-recr_inf AS (
- SELECT DISTINCT COALESCE(cit.recruitment_id, cit.target_recruitment_id) AS idm_id
- FROM ervu_dashboard.citizen cit
- join ervu_dashboard.citizen_child ch on ch.recruit_id = cit.recruit_id
-),
-flow_data AS (
- SELECT
- fr.flow_num,
- ri.idm_id,
- (SELECT r.created_at FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- AND r.created_at BETWEEN fr.min_date AND fr.max_date
- LIMIT 1) AS created_at
- FROM recr_inf ri
- CROSS JOIN flow_ranges fr
- WHERE EXISTS (
- SELECT 1 FROM ervu_dashboard.recruitment r
- WHERE r.idm_id = ri.idm_id
- )
-),
-result_ma as (
- SELECT
- MAX(created_at) FILTER(WHERE flow_num = 1) AS cr_flow1,
- (SELECT idm_id FROM flow_data WHERE flow_num = 1 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow1,
-
- MAX(created_at) FILTER(WHERE flow_num = 2) AS cr_flow2,
- (SELECT idm_id FROM flow_data WHERE flow_num = 2 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow2,
-
- MAX(created_at) FILTER(WHERE flow_num = 3) AS cr_flow3,
- (SELECT idm_id FROM flow_data WHERE flow_num = 3 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow3,
-
- MAX(created_at) FILTER(WHERE flow_num = 4) AS cr_flow4,
- (SELECT idm_id FROM flow_data WHERE flow_num = 4 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow4,
-
- MAX(created_at) FILTER(WHERE flow_num = 5) AS cr_flow5,
- (SELECT idm_id FROM flow_data WHERE flow_num = 5 ORDER BY created_at DESC NULLS LAST LIMIT 1) AS idm_flow5
- FROM flow_data
-),
-result_max as ( --костыль
- SELECT
- CASE
- WHEN cr_flow1 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow1
- END AS cr_flow1,
- idm_flow1,
- CASE
- WHEN cr_flow2 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow2
- END AS cr_flow2,
- idm_flow2,
- CASE
- WHEN cr_flow3 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow3
- END AS cr_flow3,
- idm_flow3,
- CASE
- WHEN cr_flow4 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow4
- END AS cr_flow4,
- idm_flow4,
- CASE
- WHEN cr_flow5 is null THEN '0001-01-01 00:00:00'::timestamp
- ELSE cr_flow5
- END AS cr_flow5,
- idm_flow5
- FROM result_ma
-),
-for_checkpoints as (
- SELECT
- 'job_child_flow1' as job_name,
- idm_flow1 as last_recruitment_id,
- cr_flow1 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow2' as job_name,
- idm_flow2 as last_recruitment_id,
- cr_flow2 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow3' as job_name,
- idm_flow3 as last_recruitment_id,
- cr_flow3 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow4' as job_name,
- idm_flow4 as last_recruitment_id,
- cr_flow4 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-
- union all
-
- SELECT
- 'job_child_flow5' as job_name,
- idm_flow5 as last_recruitment_id,
- cr_flow5 as recruitment_created_date,
- 'ERROR' as status,
- current_timestamp as record_created
- from result_max
-)
-select * from for_checkpoints
- N
-
-
- 736
- 448
-
-
-
- Table output
- TableOutput
-
- Y
-
- 1
-
- none
-
-
- 1000
- ervu-dashboard
-
-
- N
- N
- N
- N
- Y
- N
- public
- N
-
etl_checkpoints
- N
- Y
- N
- Y
-
-
- 1248
- 448
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/job_snils_inn.hwf b/mappings/info_recruits/citizen_tables/snils_inn/job_snils_inn.hwf
deleted file mode 100644
index c94e531..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/job_snils_inn.hwf
+++ /dev/null
@@ -1,2516 +0,0 @@
-
-
- job_snils_inn
- Y
-
-
-
- 0
- -
- 2025/06/05 14:27:15.055
- -
- 2025/06/05 14:27:15.055
-
-
- M_R_CR_DATE
- 3001-01-01 00:00:00
-
-
-
- M_R_UP_DATE
-
-
-
-
-
-
- Start
-
- SPECIAL
-
- 1
- 12
- 60
- 0
- 0
- N
- 0
- 1
- N
- 368
- 400
-
-
-
- checkpoint_job_snils_inn.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1136
- 1280
-
-
-
- recruitment_rows_five_flow_snils_inn.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_snils_inn.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2352
- 400
-
-
-
- snils_inn_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 80
-
-
-
- snils_inn_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 240
-
-
-
- snils_inn_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 400
-
-
-
- snils_inn_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 560
-
-
-
- snils_inn_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 720
-
-
-
- Abort workflow
-
- ABORT
-
- N
- N
- 2336
- 208
-
-
-
- Success new snils_inn
-
- SUCCESS
-
- N
- 3728
- 432
-
-
-
- branching_snils_inn.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/branching_snils_inn.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1584
- 1280
-
-
-
- Simple snils_inn WHERE SUCCESS
-
- SIMPLE_EVAL
-
- SUCCESS
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1696
- 1680
-
-
-
- Simple snils_inn WHERE ERROR
-
- SIMPLE_EVAL
-
- ERROR
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 1840
- 1280
-
-
-
- recruitment_rows_five_flow_if_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/recruitment_rows_five_flow_if_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2384
- 1280
-
-
-
- Abort workflow 2
-
- ABORT
-
- N
- N
- 2288
- 1040
-
-
-
- delta_snils_inn_flow1.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow1.hpl
-
-
- Basic
-
-
- M_R_UP_DATE
-
- ${M_R_UP_DATE}
-
-
- ID_F1
- IDM_FLOW1
-
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2640
- 1792
-
-
-
- check_if_job_snils_inn_exists.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_job_snils_inn_exists.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 576
- 400
-
-
-
- Simple job_snils_inn_exists check NEW
-
- SIMPLE_EVAL
-
- NEW
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 896
- 400
-
-
-
- change_status_to_processing.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2368
- 560
-
-
-
- change_status_snils_inn_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 80
-
-
-
- change_status_snils_inn_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 160
-
-
-
- change_status_snils_inn_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 240
-
-
-
- change_status_snils_inn_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 320
-
-
-
- change_status_snils_inn_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 400
-
-
-
- change_status_snils_inn_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 480
-
-
-
- change_status_snils_inn_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 560
-
-
-
- change_status_snils_inn_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 640
-
-
-
- change_status_snils_inn_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 720
-
-
-
- change_status_snils_inn_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 800
-
-
-
- checkpoint_job_snils_inn.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3456
- 432
-
-
-
- change_status_to_processing.hpl (2)
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2368
- 1424
-
-
-
- change_status_to_processing_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_to_processing_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2384
- 2304
-
-
-
- change_status_delta_snils_inn_flow1_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_success.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1792
-
-
-
- change_status_delta_snils_inn_flow1_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1872
-
-
-
- snils_inn_flow1.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow1.hpl
- Basic
-
-
- ID_F1
- IDM_FLOW1
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 960
-
-
-
- snils_inn_flow2.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow2.hpl
- Basic
-
-
- ID_F2
- IDM_FLOW2
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1120
-
-
-
- snils_inn_flow3.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow3.hpl
- Basic
-
-
- ID_F3
- IDM_FLOW3
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1280
-
-
-
- snils_inn_flow4.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow4.hpl
- Basic
-
-
- ID_F4
- IDM_FLOW4
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1440
-
-
-
- snils_inn_flow5.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow5.hpl
- Basic
-
-
- ID_F5
- IDM_FLOW5
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2672
- 1600
-
-
-
- Success snils_inn after error
-
- SUCCESS
-
- N
- 3728
- 1312
-
-
-
- change_status_snils_inn_flow1_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 960
-
-
-
- change_status_snils_inn_flow1_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow1_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1040
-
-
-
- change_status_snils_inn_flow2_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1120
-
-
-
- change_status_snils_inn_flow2_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow2_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1200
-
-
-
- change_status_snils_inn_flow3_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1280
-
-
-
- change_status_snils_inn_flow3_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow3_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1360
-
-
-
- change_status_snils_inn_flow4_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1440
-
-
-
- change_status_snils_inn_flow4_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow4_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1520
-
-
-
- change_status_snils_inn_flow5_success.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_success.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1600
-
-
-
- change_status_snils_inn_flow5_error.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_snils_inn_flow5_error.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1680
-
-
-
- checkpoint_job_snils_inn.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3456
- 1312
-
-
-
- recruitment_rows_five_flow_snils_inn.hpl 2
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_snils_inn.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- Y
- 2352
- 2112
-
-
-
- Abort workflow 2 2
-
- ABORT
-
- N
- N
- 2336
- 1952
-
-
-
- delta_snils_inn_flow2.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow2.hpl
-
-
- Basic
-
-
- M_R_UP_DATE
-
- ${M_R_UP_DATE}
-
-
- ID_F2
- IDM_FLOW2
-
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2640
- 1952
-
-
-
- change_status_delta_snils_inn_flow2_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_success.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 1952
-
-
-
- change_status_delta_snils_inn_flow2_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow2_error.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2032
-
-
-
- delta_snils_inn_flow3.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow3.hpl
-
-
- Basic
-
-
- M_R_UP_DATE
-
- ${M_R_UP_DATE}
-
-
- ID_F3
- IDM_FLOW3
-
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2640
- 2112
-
-
-
- change_status_delta_snils_inn_flow3_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_success.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2112
-
-
-
- change_status_delta_snils_inn_flow3_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow3_error.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2192
-
-
-
- delta_snils_inn_flow4.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow4.hpl
-
-
- Basic
-
-
- M_R_UP_DATE
-
- ${M_R_UP_DATE}
-
-
- ID_F4
- IDM_FLOW4
-
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2640
- 2272
-
-
-
- change_status_delta_snils_inn_flow4_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_success.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2272
-
-
-
- change_status_delta_snils_inn_flow4_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow4_error.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2352
-
-
-
- delta_snils_inn_flow5.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- Y
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow5.hpl
-
-
- Basic
-
-
- M_R_UP_DATE
-
- ${M_R_UP_DATE}
-
-
- ID_F5
- IDM_FLOW5
-
-
- Y
-
- Y
- local
- N
- N
- Y
- N
- 2640
- 2432
-
-
-
- change_status_delta_snils_inn_flow5_success.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_success.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2432
-
-
-
- change_status_delta_snils_inn_flow5_error.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/change_status_delta_snils_inn_flow5_error.hpl
-
-
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 2992
- 2512
-
-
-
- branching_snils_inn_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/branching_snils_inn_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 1824
- 2112
-
-
-
- Simple delta_snils_inn WHERE ERROR
-
- SIMPLE_EVAL
-
- ERROR
- string
- true
- equal
- equal
- N
- variable
- STATUS
- N
- 2064
- 2112
-
-
-
- delta_snils_inn success
-
- SUCCESS
-
- N
- 2160
- 1952
-
-
-
- checkpoint_job_snils_inn_delta.hpl
-
- PIPELINE
-
- N
- N
- N
- N
- N
- N
- ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/checkpoint_job_snils_inn_delta.hpl
- Basic
-
- Y
-
- N
- local
- N
- N
- Y
- N
- 3440
- 2112
-
-
-
- Success delta_snils_inn
-
- SUCCESS
-
- N
- 3728
- 2112
-
-
-
-
-
- recruitment_rows_five_flow_snils_inn.hpl
- snils_inn_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl
- snils_inn_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl
- snils_inn_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl
- snils_inn_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl
- snils_inn_flow5.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl
- Abort workflow
- Y
- N
- N
-
-
- branching_snils_inn.hpl
- Simple snils_inn WHERE ERROR
- Y
- N
- Y
-
-
- branching_snils_inn.hpl
- Simple snils_inn WHERE SUCCESS
- Y
- N
- Y
-
-
- recruitment_rows_five_flow_if_error.hpl
- Abort workflow 2
- Y
- N
- N
-
-
- Start
- check_if_job_snils_inn_exists.hpl
- Y
- Y
- Y
-
-
- check_if_job_snils_inn_exists.hpl
- Simple job_snils_inn_exists check NEW
- Y
- Y
- N
-
-
- snils_inn_flow1.hpl
- change_status_snils_inn_flow1_success.hpl
- Y
- Y
- N
-
-
- snils_inn_flow1.hpl
- change_status_snils_inn_flow1_error.hpl
- Y
- N
- N
-
-
- snils_inn_flow2.hpl
- change_status_snils_inn_flow2_success.hpl
- Y
- Y
- N
-
-
- snils_inn_flow2.hpl
- change_status_snils_inn_flow2_error.hpl
- Y
- N
- N
-
-
- snils_inn_flow3.hpl
- change_status_snils_inn_flow3_success.hpl
- Y
- Y
- N
-
-
- snils_inn_flow3.hpl
- change_status_snils_inn_flow3_error.hpl
- Y
- N
- N
-
-
- snils_inn_flow4.hpl
- change_status_snils_inn_flow4_success.hpl
- Y
- Y
- N
-
-
- snils_inn_flow4.hpl
- change_status_snils_inn_flow4_error.hpl
- Y
- N
- N
-
-
- snils_inn_flow5.hpl
- change_status_snils_inn_flow5_success.hpl
- Y
- Y
- N
-
-
- snils_inn_flow5.hpl
- change_status_snils_inn_flow5_error.hpl
- Y
- N
- N
-
-
- change_status_snils_inn_flow5_error.hpl
- checkpoint_job_snils_inn.hpl
- Y
- N
- Y
-
-
- change_status_snils_inn_flow5_success.hpl
- checkpoint_job_snils_inn.hpl
- Y
- N
- Y
-
-
- change_status_snils_inn_flow4_error.hpl
- checkpoint_job_snils_inn.hpl
- Y
- N
- Y
-
-
- change_status_snils_inn_flow4_success.hpl
- checkpoint_job_snils_inn.hpl
- Y
- N
- Y
-
-
- change_status_snils_inn_flow3_error.hpl
- checkpoint_job_snils_inn.hpl
- Y
- N
- Y
-
-
- change_status_snils_inn_flow3_success.hpl
- checkpoint_job_snils_inn.hpl
- Y
- N
- Y
-
-
- change_status_snils_inn_flow2_error.hpl
- checkpoint_job_snils_inn.hpl
- Y
- N
- Y
-
-
- change_status_snils_inn_flow2_success.hpl
- checkpoint_job_snils_inn.hpl
- Y
- N
- Y
-
-
- change_status_snils_inn_flow1_error.hpl
- checkpoint_job_snils_inn.hpl
- Y
- N
- Y
-
-
- change_status_snils_inn_flow1_success.hpl
- checkpoint_job_snils_inn.hpl
- Y
- N
- Y
-
-
- checkpoint_job_snils_inn.hpl
- Success new snils_inn
- Y
- Y
- N
-
-
- checkpoint_job_snils_inn.hpl (2)
- branching_snils_inn.hpl
- Y
- N
- Y
-
-
- Simple job_snils_inn_exists check NEW
- checkpoint_job_snils_inn.hpl (2)
- Y
- N
- N
-
-
- delta_snils_inn_flow1.hpl
- change_status_delta_snils_inn_flow1_success.hpl
- Y
- Y
- N
-
-
- delta_snils_inn_flow1.hpl
- change_status_delta_snils_inn_flow1_error.hpl
- Y
- N
- N
-
-
- snils_inn_flow1.hpl 2
- change_status_snils_inn_flow1_success.hpl 2
- Y
- Y
- N
-
-
- snils_inn_flow1.hpl 2
- change_status_snils_inn_flow1_error.hpl 2
- Y
- N
- N
-
-
- snils_inn_flow2.hpl 2
- change_status_snils_inn_flow2_success.hpl 2
- Y
- Y
- N
-
-
- snils_inn_flow2.hpl 2
- change_status_snils_inn_flow2_error.hpl 2
- Y
- N
- N
-
-
- snils_inn_flow3.hpl 2
- change_status_snils_inn_flow3_success.hpl 2
- Y
- Y
- N
-
-
- snils_inn_flow3.hpl 2
- change_status_snils_inn_flow3_error.hpl 2
- Y
- N
- N
-
-
- snils_inn_flow4.hpl 2
- change_status_snils_inn_flow4_success.hpl 2
- Y
- Y
- N
-
-
- snils_inn_flow4.hpl 2
- change_status_snils_inn_flow4_error.hpl 2
- Y
- N
- N
-
-
- snils_inn_flow5.hpl 2
- change_status_snils_inn_flow5_success.hpl 2
- Y
- Y
- N
-
-
- snils_inn_flow5.hpl 2
- change_status_snils_inn_flow5_error.hpl 2
- Y
- N
- N
-
-
- change_status_snils_inn_flow1_success.hpl 2
- checkpoint_job_snils_inn.hpl 2
- Y
- N
- Y
-
-
- change_status_snils_inn_flow1_error.hpl 2
- checkpoint_job_snils_inn.hpl 2
- Y
- N
- Y
-
-
- change_status_snils_inn_flow2_success.hpl 2
- checkpoint_job_snils_inn.hpl 2
- Y
- N
- Y
-
-
- change_status_snils_inn_flow2_error.hpl 2
- checkpoint_job_snils_inn.hpl 2
- Y
- N
- Y
-
-
- change_status_snils_inn_flow3_success.hpl 2
- checkpoint_job_snils_inn.hpl 2
- Y
- N
- Y
-
-
- change_status_snils_inn_flow3_error.hpl 2
- checkpoint_job_snils_inn.hpl 2
- Y
- N
- Y
-
-
- change_status_snils_inn_flow4_success.hpl 2
- checkpoint_job_snils_inn.hpl 2
- Y
- N
- Y
-
-
- change_status_snils_inn_flow4_error.hpl 2
- checkpoint_job_snils_inn.hpl 2
- Y
- N
- Y
-
-
- change_status_snils_inn_flow5_success.hpl 2
- checkpoint_job_snils_inn.hpl 2
- Y
- N
- Y
-
-
- change_status_snils_inn_flow5_error.hpl 2
- checkpoint_job_snils_inn.hpl 2
- Y
- N
- Y
-
-
- checkpoint_job_snils_inn.hpl 2
- Success snils_inn after error
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- snils_inn_flow3.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- snils_inn_flow2.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- snils_inn_flow1.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- snils_inn_flow4.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- snils_inn_flow5.hpl 2
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl
- change_status_to_processing.hpl
- Y
- Y
- N
-
-
- Simple job_snils_inn_exists check NEW
- recruitment_rows_five_flow_snils_inn.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_if_error.hpl
- change_status_to_processing.hpl (2)
- Y
- Y
- N
-
-
- Simple snils_inn WHERE ERROR
- recruitment_rows_five_flow_if_error.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl 2
- delta_snils_inn_flow1.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl 2
- change_status_to_processing_delta.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl 2
- Abort workflow 2 2
- Y
- N
- N
-
-
- delta_snils_inn_flow2.hpl
- change_status_delta_snils_inn_flow2_success.hpl
- Y
- Y
- N
-
-
- delta_snils_inn_flow2.hpl
- change_status_delta_snils_inn_flow2_error.hpl
- Y
- N
- N
-
-
- delta_snils_inn_flow3.hpl
- change_status_delta_snils_inn_flow3_success.hpl
- Y
- Y
- N
-
-
- delta_snils_inn_flow3.hpl
- change_status_delta_snils_inn_flow3_error.hpl
- Y
- N
- N
-
-
- delta_snils_inn_flow4.hpl
- change_status_delta_snils_inn_flow4_success.hpl
- Y
- Y
- N
-
-
- delta_snils_inn_flow4.hpl
- change_status_delta_snils_inn_flow4_error.hpl
- Y
- N
- N
-
-
- delta_snils_inn_flow5.hpl
- change_status_delta_snils_inn_flow5_success.hpl
- Y
- Y
- N
-
-
- delta_snils_inn_flow5.hpl
- change_status_delta_snils_inn_flow5_error.hpl
- Y
- N
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl 2
- delta_snils_inn_flow3.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl 2
- delta_snils_inn_flow2.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl 2
- delta_snils_inn_flow4.hpl
- Y
- Y
- N
-
-
- recruitment_rows_five_flow_snils_inn.hpl 2
- delta_snils_inn_flow5.hpl
- Y
- Y
- N
-
-
- Simple snils_inn WHERE SUCCESS
- branching_snils_inn_delta.hpl
- Y
- Y
- N
-
-
- Simple delta_snils_inn WHERE ERROR
- delta_snils_inn success
- Y
- N
- N
-
-
- branching_snils_inn_delta.hpl
- Simple delta_snils_inn WHERE ERROR
- Y
- Y
- N
-
-
- Simple delta_snils_inn WHERE ERROR
- recruitment_rows_five_flow_snils_inn.hpl 2
- Y
- Y
- N
-
-
- change_status_delta_snils_inn_flow1_success.hpl
- checkpoint_job_snils_inn_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_snils_inn_flow3_success.hpl
- checkpoint_job_snils_inn_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_snils_inn_flow2_error.hpl
- checkpoint_job_snils_inn_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_snils_inn_flow2_success.hpl
- checkpoint_job_snils_inn_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_snils_inn_flow1_error.hpl
- checkpoint_job_snils_inn_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_snils_inn_flow3_error.hpl
- checkpoint_job_snils_inn_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_snils_inn_flow4_success.hpl
- checkpoint_job_snils_inn_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_snils_inn_flow4_error.hpl
- checkpoint_job_snils_inn_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_snils_inn_flow5_success.hpl
- checkpoint_job_snils_inn_delta.hpl
- Y
- Y
- N
-
-
- change_status_delta_snils_inn_flow5_error.hpl
- checkpoint_job_snils_inn_delta.hpl
- Y
- Y
- N
-
-
- checkpoint_job_snils_inn_delta.hpl
- Success delta_snils_inn
- Y
- Y
- N
-
-
-
-
- 251
- 232
- 201
- 90
- 58
- 14
- N
- 90
- 58
- 14
- N
- Segoe UI
- 9
- 72
- 1088
- 176
- 0001-01-01 00:00:00
-
-3001-01-01 00:00:00
-
- 114
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow1.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow1.hpl
deleted file mode 100644
index fc9877b..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow1.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- delta_snils_inn_flow1
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update inn
- Y
-
-
- Table input
- Insert / update snils
- Y
-
-
-
- Insert / update inn
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- inn
-
- ervu_dashboard
-
inn
-
- recruit_id
- recruit_id
- N
-
-
- inn
- inn
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1184
- 320
-
-
-
- Insert / update snils
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- snils
-
- ervu_dashboard
-
snils
-
- recruit_id
- recruit_id
- N
-
-
- snils
- snils
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1184
- 480
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-base as (
- SELECT
- ri.recruit_id,
- ri.info
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку
- --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
- AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp
-)
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- true AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- false AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- true as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- false as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
- Y
-
-
- 704
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow2.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow2.hpl
deleted file mode 100644
index dc170be..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow2.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- delta_snils_inn_flow2
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update inn
- Y
-
-
- Table input
- Insert / update snils
- Y
-
-
-
- Insert / update inn
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- inn
-
- ervu_dashboard
-
inn
-
- recruit_id
- recruit_id
- N
-
-
- inn
- inn
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1184
- 320
-
-
-
- Insert / update snils
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- snils
-
- ervu_dashboard
-
snils
-
- recruit_id
- recruit_id
- N
-
-
- snils
- snils
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1184
- 480
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-base as (
- SELECT
- ri.recruit_id,
- ri.info
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку
- --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
- AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp
-)
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- true AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- false AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- true as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- false as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
- Y
-
-
- 704
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow3.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow3.hpl
deleted file mode 100644
index 9042d44..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow3.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- delta_snils_inn_flow3
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update inn
- Y
-
-
- Table input
- Insert / update snils
- Y
-
-
-
- Insert / update inn
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- inn
-
- ervu_dashboard
-
inn
-
- recruit_id
- recruit_id
- N
-
-
- inn
- inn
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1184
- 320
-
-
-
- Insert / update snils
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- snils
-
- ervu_dashboard
-
snils
-
- recruit_id
- recruit_id
- N
-
-
- snils
- snils
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1184
- 480
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-base as (
- SELECT
- ri.recruit_id,
- ri.info
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку
- --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
- AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp
-)
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- true AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- false AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- true as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- false as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
- Y
-
-
- 704
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow4.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow4.hpl
deleted file mode 100644
index 655073f..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow4.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- delta_snils_inn_flow4
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update inn
- Y
-
-
- Table input
- Insert / update snils
- Y
-
-
-
- Insert / update inn
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- inn
-
- ervu_dashboard
-
inn
-
- recruit_id
- recruit_id
- N
-
-
- inn
- inn
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1184
- 320
-
-
-
- Insert / update snils
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- snils
-
- ervu_dashboard
-
snils
-
- recruit_id
- recruit_id
- N
-
-
- snils
- snils
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1184
- 480
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-base as (
- SELECT
- ri.recruit_id,
- ri.info
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку
- --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
- AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp
-)
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- true AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- false AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- true as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- false as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
- Y
-
-
- 704
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow5.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow5.hpl
deleted file mode 100644
index f2ffc7a..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/delta_snils_inn_flow5.hpl
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
- delta_snils_inn_flow5
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/06/03 16:10:48.509
- -
- 2025/06/03 16:10:48.509
-
-
-
-
-
- Table input
- Insert / update inn
- Y
-
-
- Table input
- Insert / update snils
- Y
-
-
-
- Insert / update inn
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- inn
-
- ervu_dashboard
-
inn
-
- recruit_id
- recruit_id
- N
-
-
- inn
- inn
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1184
- 320
-
-
-
- Insert / update snils
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- snils
-
- ervu_dashboard
-
snils
-
- recruit_id
- recruit_id
- N
-
-
- snils
- snils
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1184
- 480
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-base as (
- SELECT
- ri.recruit_id,
- ri.info
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id --AND '${ID_F1}' != '' -- Проверка на пустую строку
- --AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
- AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp
-)
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- true AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- false AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- true as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- false as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
- Y
-
-
- 704
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl
new file mode 100644
index 0000000..b49a69f
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl
@@ -0,0 +1,440 @@
+
+
+
+ snils_inn_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 14:31:22.799
+ -
+ 2025/08/05 14:31:22.799
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Table input
+ Identify last row in a stream
+ Y
+
+
+ Insert / update snils
+ Filter rows
+ Y
+
+
+ Insert / update snils
+ Detect empty stream
+ Y
+
+
+ Insert / update snils
+ Change job status on error
+ Y
+
+
+ Identify last row in a stream
+ Insert / update inn
+ Y
+
+
+ Insert / update inn
+ Insert / update snils
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1376
+ 512
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1024
+ 512
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1632
+ 160
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id)
+VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}');
+
+
+
+
+ 288
+ 320
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1632
+ 320
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1024
+ 160
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 672
+ 320
+
+
+
+ Insert / update inn
+ InsertUpdate
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ IS NOT NULL
+ inn
+
+ ervu_dashboard
+
inn
+
+ recruit_id
+ recruit_id
+ N
+
+
+ inn
+ inn
+ Y
+
+
+ actual
+ actual
+ Y
+
+
+ N
+
+
+ 864
+ 320
+
+
+
+ Insert / update snils
+ InsertUpdate
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ IS NOT NULL
+ snils
+
+ ervu_dashboard
+
snils
+
+ recruit_id
+ recruit_id
+ N
+
+
+ snils
+ snils
+ Y
+
+
+ actual
+ actual
+ Y
+
+
+ N
+
+
+ 1024
+ 320
+
+
+
+ Table input
+ TableInput
+
+ N
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ WITH
+base as (
+ SELECT
+ ri.recruit_id,
+ ri.info
+ FROM ervu_dashboard.recruits_info ri
+ join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
+)
+SELECT
+ recruit_id,
+ null as inn,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
+ true AS actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
+
+UNION ALL
+
+SELECT
+ recruit_id,
+ null as inn,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
+ false AS actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
+
+UNION ALL
+
+SELECT
+ recruit_id,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
+ null as snils,
+ true as actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
+
+UNION ALL
+
+SELECT
+ recruit_id,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
+ null as snils,
+ false as actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
+
+${LIMIT_FW}
+ Y
+
+
+ 496
+ 320
+
+
+
+
+ Insert / update snils
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow1.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow1.hpl
deleted file mode 100644
index 4515f7c..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow1.hpl
+++ /dev/null
@@ -1,208 +0,0 @@
-
-
-
- snils_inn_flow1
- Y
-
-
-
- Normal
- 0
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update inn
- Y
-
-
- Table input
- Insert / update snils
- Y
-
-
-
- Insert / update inn
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
-
- IS NOT NULL
- inn
-
-
-
- ervu_dashboard
-
inn
-
- recruit_id
- recruit_id
- N
-
-
- inn
- inn
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 928
- 208
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-base as (
- SELECT
- ri.recruit_id,
- ri.info
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F1}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F1}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
-)
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- true AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- false AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- true as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- false as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
- Y
-
-
- 448
- 288
-
-
-
- Insert / update snils
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
-
- IS NOT NULL
- snils
-
-
-
- ervu_dashboard
-
snils
-
- recruit_id
- recruit_id
- N
-
-
- snils
- snils
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 928
- 368
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow2.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow2.hpl
deleted file mode 100644
index 12d0170..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow2.hpl
+++ /dev/null
@@ -1,201 +0,0 @@
-
-
-
- snils_inn_flow2
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update inn
- Y
-
-
- Table input
- Insert / update snils
- Y
-
-
-
- Insert / update inn
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- inn
-
- ervu_dashboard
-
inn
-
- recruit_id
- recruit_id
- N
-
-
- inn
- inn
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1152
- 320
-
-
-
- Insert / update snils
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- snils
-
- ervu_dashboard
-
snils
-
- recruit_id
- recruit_id
- N
-
-
- snils
- snils
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1152
- 480
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-base as (
- SELECT
- ri.recruit_id,
- ri.info
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
-)
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- true AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- false AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- true as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- false as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
- Y
-
-
- 672
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow3.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow3.hpl
deleted file mode 100644
index d2fc08b..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow3.hpl
+++ /dev/null
@@ -1,201 +0,0 @@
-
-
-
- snils_inn_flow3
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update inn
- Y
-
-
- Table input
- Insert / update snils
- Y
-
-
-
- Insert / update inn
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- inn
-
- ervu_dashboard
-
inn
-
- recruit_id
- recruit_id
- N
-
-
- inn
- inn
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1120
- 336
-
-
-
- Insert / update snils
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- snils
-
- ervu_dashboard
-
snils
-
- recruit_id
- recruit_id
- N
-
-
- snils
- snils
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1120
- 496
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-base as (
- SELECT
- ri.recruit_id,
- ri.info
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
-)
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- true AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- false AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- true as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- false as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
- Y
-
-
- 640
- 416
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow4.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow4.hpl
deleted file mode 100644
index cbdc121..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow4.hpl
+++ /dev/null
@@ -1,201 +0,0 @@
-
-
-
- snils_inn_flow4
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update inn
- Y
-
-
- Table input
- Insert / update snils
- Y
-
-
-
- Insert / update inn
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- inn
-
- ervu_dashboard
-
inn
-
- recruit_id
- recruit_id
- N
-
-
- inn
- inn
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1216
- 384
-
-
-
- Insert / update snils
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- snils
-
- ervu_dashboard
-
snils
-
- recruit_id
- recruit_id
- N
-
-
- snils
- snils
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1216
- 544
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-base as (
- SELECT
- ri.recruit_id,
- ri.info
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
-)
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- true AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- false AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- true as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- false as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
- Y
-
-
- 736
- 464
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow5.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow5.hpl
deleted file mode 100644
index 6f1cadb..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow5.hpl
+++ /dev/null
@@ -1,201 +0,0 @@
-
-
-
- snils_inn_flow5
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/21 14:05:02.260
- -
- 2025/05/21 14:05:02.260
-
-
-
-
-
- Table input
- Insert / update inn
- Y
-
-
- Table input
- Insert / update snils
- Y
-
-
-
- Insert / update inn
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- inn
-
- ervu_dashboard
-
inn
-
- recruit_id
- recruit_id
- N
-
-
- inn
- inn
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1200
- 320
-
-
-
- Insert / update snils
- InsertUpdate
-
- Y
-
- 1
-
- none
-
-
- 100
- ervu-dashboard
-
-
- =
- recruit_id
- recruit_id
-
-
- IS NOT NULL
- snils
-
- ervu_dashboard
-
snils
-
- recruit_id
- recruit_id
- N
-
-
- snils
- snils
- Y
-
-
- actual
- actual
- Y
-
-
- N
-
-
- 1200
- 480
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-base as (
- SELECT
- ri.recruit_id,
- ri.info
- FROM ervu_dashboard.recruits_info ri
- join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку
- AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}'
- AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
-)
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- true AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- null as inn,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
- false AS actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- true as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
-
-UNION ALL
-
-SELECT
- recruit_id,
- REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
- null as snils,
- false as actual
-FROM base
-WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
- Y
-
-
- 720
- 400
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl
new file mode 100644
index 0000000..2b60dda
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl
@@ -0,0 +1,445 @@
+
+
+
+ snils_inn_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:22:56.048
+ -
+ 2025/08/11 13:22:56.048
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Table input
+ Identify last row in a stream
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Identify last row in a stream
+ Insert / update inn
+ Y
+
+
+ Insert / update inn
+ Insert / update snils
+ Y
+
+
+ Insert / update snils
+ Filter rows
+ Y
+
+
+ Insert / update snils
+ Detect empty stream
+ Y
+
+
+ Insert / update snils
+ Change job status on error
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1328
+ 400
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1104
+ 400
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1408
+ 64
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 336
+ 224
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1408
+ 224
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1104
+ 64
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 736
+ 224
+
+
+
+ Insert / update inn
+ InsertUpdate
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ IS NOT NULL
+ inn
+
+ ervu_dashboard
+
inn
+
+ recruit_id
+ recruit_id
+ N
+
+
+ inn
+ inn
+ Y
+
+
+ actual
+ actual
+ Y
+
+
+ N
+
+
+ 928
+ 224
+
+
+
+ Insert / update snils
+ InsertUpdate
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ IS NOT NULL
+ snils
+
+ ervu_dashboard
+
snils
+
+ recruit_id
+ recruit_id
+ N
+
+
+ snils
+ snils
+ Y
+
+
+ actual
+ actual
+ Y
+
+
+ N
+
+
+ 1104
+ 224
+
+
+
+ Table input
+ TableInput
+
+ N
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+
+ WITH
+base as (
+ SELECT
+ ri.recruit_id,
+ ri.info
+ FROM ervu_dashboard.recruits_info ri
+ join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ --AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
+ AND ri.updated_at >= '${M_R_UP_DATE}'::timestamp
+)
+SELECT
+ recruit_id,
+ null as inn,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
+ true AS actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
+
+UNION ALL
+
+SELECT
+ recruit_id,
+ null as inn,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
+ false AS actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
+
+UNION ALL
+
+SELECT
+ recruit_id,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
+ null as snils,
+ true as actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
+
+UNION ALL
+
+SELECT
+ recruit_id,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
+ null as snils,
+ false as actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
+
+${LIMIT_FW}
+ Y
+
+
+ 544
+ 224
+
+
+
+
+ Insert / update snils
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl
new file mode 100644
index 0000000..fbfd0c3
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl
@@ -0,0 +1,458 @@
+
+
+
+ snils_inn_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 13:25:52.319
+ -
+ 2025/08/08 13:25:52.319
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Table input
+ Identify last row in a stream
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update snils
+ Filter rows
+ Y
+
+
+ Insert / update snils
+ Detect empty stream
+ Y
+
+
+ Insert / update snils
+ Change job status on error
+ Y
+
+
+ Identify last row in a stream
+ Insert / update inn
+ Y
+
+
+ Insert / update inn
+ Insert / update snils
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1296
+ 400
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1008
+ 400
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1440
+ 48
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (
+ id,
+ job_name,
+ status,
+ execution_datetime,
+ error_description,
+ recruitment_id
+)
+VALUES (
+ DEFAULT,
+ '${JOB_NAME}',
+ 'PROCESSING',
+ DEFAULT,
+ NULL,
+ '${IDM_ID}'
+)
+ON CONFLICT (job_name, recruitment_id)
+DO UPDATE SET
+ status = 'PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+
+
+
+ 272
+ 208
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1440
+ 208
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1008
+ 48
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 672
+ 208
+
+
+
+ Insert / update inn
+ InsertUpdate
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ IS NOT NULL
+ inn
+
+ ervu_dashboard
+
inn
+
+ recruit_id
+ recruit_id
+ N
+
+
+ inn
+ inn
+ Y
+
+
+ actual
+ actual
+ Y
+
+
+ N
+
+
+ 848
+ 208
+
+
+
+ Insert / update snils
+ InsertUpdate
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+
+ IS NOT NULL
+ snils
+
+ ervu_dashboard
+
snils
+
+ recruit_id
+ recruit_id
+ N
+
+
+ snils
+ snils
+ Y
+
+
+ actual
+ actual
+ Y
+
+
+ N
+
+
+ 1008
+ 208
+
+
+
+ Table input
+ TableInput
+
+ N
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ WITH
+base as (
+ SELECT
+ ri.recruit_id,
+ ri.info
+ FROM ervu_dashboard.recruits_info ri
+ join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}'::timestamp >= ri.created_at
+)
+SELECT
+ recruit_id,
+ null as inn,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
+ true AS actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
+
+UNION ALL
+
+SELECT
+ recruit_id,
+ null as inn,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g') AS snils,
+ false AS actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'snils'->'predSNILS'->>'snils', '[^0-9]', '', 'g')) = 11
+
+UNION ALL
+
+SELECT
+ recruit_id,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g') AS inn,
+ null as snils,
+ true as actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn', '[^0-9]', '', 'g')) = 12
+
+UNION ALL
+
+SELECT
+ recruit_id,
+ REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g') AS inn,
+ null as snils,
+ false as actual
+FROM base
+WHERE LENGTH(REGEXP_REPLACE(info->'svedFL'->'svedBS'->'inn'->'predINN'->>'inn', '[^0-9]', '', 'g')) = 12
+
+${LIMIT_FW}
+ Y
+
+
+ 480
+ 208
+
+
+
+
+ Insert / update snils
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_delta.hpl
new file mode 100644
index 0000000..0183676
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_delta.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:16:11.204
+ -
+ 2025/08/11 13:16:11.204
+
+
+
+
+
+ Table input
+ snils_inn_flow_delta.hpl
+ Y
+
+
+ Table input
+ snils_inn_flow_delta.hpl 2
+ Y
+
+
+ Table input
+ snils_inn_flow_delta.hpl 3
+ Y
+
+
+ Table input
+ snils_inn_flow_delta.hpl 4
+ Y
+
+
+ Table input
+ snils_inn_flow_delta.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'snils_inn_job'
+where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');
+ N
+
+
+ 352
+ 288
+
+
+
+ snils_inn_flow_delta.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 576
+ 128
+
+
+
+ snils_inn_flow_delta.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 576
+ 208
+
+
+
+ snils_inn_flow_delta.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 576
+ 288
+
+
+
+ snils_inn_flow_delta.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 576
+ 368
+
+
+
+ snils_inn_flow_delta.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 576
+ 448
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_on_error.hpl
new file mode 100644
index 0000000..e82e27f
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_on_error.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_on_error
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 12:54:50.126
+ -
+ 2025/08/05 12:54:50.126
+
+
+
+
+
+ Table input
+ snils_inn_flow_repeat.hpl
+ Y
+
+
+ Table input
+ snils_inn_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ snils_inn_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ snils_inn_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ snils_inn_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'snils_inn_job'
+where je.status is null or je.status in('ERROR', 'PROCESSING');
+ N
+
+
+ 272
+ 368
+
+
+
+ snils_inn_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 480
+ 208
+
+
+
+ snils_inn_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 480
+ 288
+
+
+
+ snils_inn_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 480
+ 368
+
+
+
+ snils_inn_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 480
+ 448
+
+
+
+ snils_inn_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 480
+ 528
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/snils_inn/recruitment_rows_five_flow_if_error.hpl
deleted file mode 100644
index a4a5b8a..0000000
--- a/mappings/info_recruits/citizen_tables/snils_inn/recruitment_rows_five_flow_if_error.hpl
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-
- recruitment_rows_five_flow_if_error
- Y
-
-
-
- Normal
-
-
- N
- 1000
- 100
- -
- 2025/05/23 14:28:22.572
- -
- 2025/05/23 14:28:22.572
-
-
-
-
-
- Table input
- Copy rows to result
- Y
-
-
-
- Copy rows to result
- RowsToResult
-
- Y
-
- 1
-
- none
-
-
-
-
- 880
- 288
-
-
-
- Table input
- TableInput
-
- Y
-
- 1
-
- none
-
-
- ervu-dashboard
- N
- 0
- WITH
-fr_check AS (
- SELECT
- last_recruitment_id AS recruitment_id,
- recruitment_created_date,
- status,
- job_name
- FROM public.etl_checkpoints
- WHERE status = 'ERROR' AND job_name IN ('snils_inn_flow1', 'snils_inn_flow2', 'snils_inn_flow3', 'snils_inn_flow4', 'snils_inn_flow5')
-),
-ordered AS (
- SELECT
- idm_id,
- created_at,
- ROW_NUMBER() OVER (ORDER BY created_at) AS rn,
- COUNT(*) OVER () AS total_rows
- FROM ervu_dashboard.recruitment
-),
-splitted AS (
- SELECT *,
- CEIL(total_rows / 5.0) AS part_size,
- FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num,
- ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position
- FROM ordered
-),
-pivoted AS (
- SELECT
- position,
- MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow1') THEN created_at END) AS cr_flow1,
- MAX(CASE WHEN flow_num = 1 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow1') THEN idm_id::text END) AS idm_flow1,
- MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow2') THEN created_at END) AS cr_flow2,
- MAX(CASE WHEN flow_num = 2 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow2') THEN idm_id::text END) AS idm_flow2,
- MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow3') THEN created_at END) AS cr_flow3,
- MAX(CASE WHEN flow_num = 3 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow3') THEN idm_id::text END) AS idm_flow3,
- MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow4') THEN created_at END) AS cr_flow4,
- MAX(CASE WHEN flow_num = 4 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow4') THEN idm_id::text END) AS idm_flow4,
- MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow5') THEN created_at END) AS cr_flow5,
- MAX(CASE WHEN flow_num = 5 AND created_at >= (SELECT recruitment_created_date FROM fr_check WHERE job_name = 'snils_inn_flow5') THEN idm_id::text END) AS idm_flow5
- FROM splitted
- GROUP BY position
-),
-remains as (
- SELECT
- position,
- cr_flow1,
- idm_flow1::uuid,
- cr_flow2,
- idm_flow2::uuid,
- cr_flow3,
- idm_flow3::uuid,
- cr_flow4,
- idm_flow4::uuid,
- cr_flow5,
- idm_flow5::uuid
- FROM pivoted
- WHERE (cr_flow1 IS NOT NULL AND idm_flow1 IS NOT NULL)
- OR (cr_flow2 IS NOT NULL AND idm_flow2 IS NOT NULL)
- OR (cr_flow3 IS NOT NULL AND idm_flow3 IS NOT NULL)
- OR (cr_flow4 IS NOT NULL AND idm_flow4 IS NOT NULL)
- OR (cr_flow5 IS NOT NULL AND idm_flow5 IS NOT NULL)
- order by position
-),
-idm1 as (
- select
- cr_flow1,
- idm_flow1
- from remains
- where cr_flow1 is not null and idm_flow1 is not null
-),
-idm2 as (
- select
- cr_flow2,
- idm_flow2
- from remains
- where cr_flow2 is not null and idm_flow2 is not null
-),
-idm3 as (
- select
- cr_flow3,
- idm_flow3
- from remains
- where cr_flow3 is not null and idm_flow3 is not null
-),
-idm4 as (
- select
- cr_flow4,
- idm_flow4
- from remains
- where cr_flow4 is not null and idm_flow4 is not null
-),
-idm5 as (
- select
- cr_flow5,
- idm_flow5
- from remains
- where cr_flow5 is not null and idm_flow5 is not null
-)
-select
- i1.*,
- i2.*,
- i3.*,
- i4.*,
- i5.*
-FROM
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm1) i1
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm2) i2 ON i1.rn = i2.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm3) i3 ON i1.rn = i3.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm4) i4 ON i1.rn = i4.rn
-FULL OUTER JOIN
- (SELECT *, ROW_NUMBER() OVER () as rn FROM idm5) i5 ON i1.rn = i5.rn
-ORDER BY COALESCE(i1.rn, i2.rn, i3.rn, i4.rn, i5.rn)
-limit 2
- N
-
-
- 512
- 288
-
-
-
-
-
-
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/snils_inn/recruitments_five_flow.hpl
new file mode 100644
index 0000000..7f2a3b1
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/snils_inn/recruitments_five_flow.hpl
@@ -0,0 +1,373 @@
+
+
+
+ recruitments_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/04/18 09:48:01.970
+ -
+ 2025/04/18 09:48:01.970
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ snils_inn_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ snils_inn_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ snils_inn_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ snils_inn_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ snils_inn_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+idm_id AS recruitment
+FROM ervu_dashboard.recruitment
+${COMMENT}/*
+where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a',
+'cff66da8-2be0-4839-bd8e-332b1a150031',
+'34c8685e-f08a-4877-afb1-a0589800a21c',
+'0e10678c-f272-41c3-94dd-c15830321f9a',
+'9703f108-761a-467a-aad3-89617e5539ed',
+'55eae374-9bb5-4295-9e3a-5fbcdaba870d',
+'dad6c101-34be-45c3-8173-57190cb69dfb',
+'fc10523f-af31-4f6b-b0e2-00799758f634',
+'61807cc2-9913-4060-8802-0672877c28c8',
+'eba7fd7d-e3da-49a7-8e65-8fc85e47190e',
+'f59afe6d-c166-4196-a489-6d17f02fc05e',
+'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9',
+'0fe2bdf0-afbb-402d-93da-67e511799afa',
+'6139de3b-2378-496f-9fca-7df7dab90832',
+'50ba73dd-1726-48f1-8b7c-7a77ff965299')
+${COMMENT}*/
+ Y
+
+
+ 432
+ 304
+
+
+
+ snils_inn_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 720
+ 144
+
+
+
+ snils_inn_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 720
+ 224
+
+
+
+ snils_inn_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 720
+ 304
+
+
+
+ snils_inn_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 720
+ 384
+
+
+
+ snils_inn_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/parallel/snils_inn_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ snils_inn_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 720
+ 464
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/snils_inn/snils_inn_job.hwf b/mappings/info_recruits/citizen_tables/snils_inn/snils_inn_job.hwf
new file mode 100644
index 0000000..cbcdc63
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/snils_inn/snils_inn_job.hwf
@@ -0,0 +1,366 @@
+
+
+ snils_inn_job
+ Y
+
+
+
+ 0
+ -
+ 2025/08/05 12:45:28.561
+ -
+ 2025/08/05 12:45:28.561
+
+
+ COMMENT
+
+
+
+
+ LIMIT_FW
+ ;
+
+
+
+ M_R_CR_DATE
+ 3001-01-01 00:00:00
+
+
+
+ M_R_UP_DATE
+ 0001-01-01 00:00:00
+
+
+
+
+
+ Start
+
+ SPECIAL
+
+ 1
+ 12
+ 60
+ 0
+ 0
+ N
+ 0
+ 1
+ N
+ 224
+ 304
+
+
+
+ check_if_snils_inn_job_exists.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/checkpoints/check_if_snils_inn_job_exists.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 416
+ 304
+
+
+
+ snils_inn_job_exists_check
+
+ SIMPLE_EVAL
+
+ boolean
+ false
+ equal
+ equal
+ N
+ variable
+ JOB_EXECUTED_FLAG
+ N
+ 688
+ 304
+
+
+
+ recruitments_five_flow.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/recruitments_five_flow.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ Y
+ 928
+ 304
+
+
+
+ recruitment_five_flow_on_error.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_on_error.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 928
+ 608
+
+
+
+ check_if_need_to_repeat_job.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/check_if_need_to_repeat_job.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 688
+ 464
+
+
+
+ Simple evaluation
+
+ SIMPLE_EVAL
+
+ boolean
+ true
+ equal
+ equal
+ N
+ variable
+ NEED_TO_REPEAT_JOB
+ N
+ 688
+ 608
+
+
+
+ recruitment_five_flow_delta.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/snils_inn/recruitment_five_flow_delta.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 688
+ 800
+
+
+
+
+
+ Start
+ check_if_snils_inn_job_exists.hpl
+ Y
+ Y
+ Y
+
+
+ check_if_snils_inn_job_exists.hpl
+ snils_inn_job_exists_check
+ Y
+ Y
+ N
+
+
+ snils_inn_job_exists_check
+ recruitments_five_flow.hpl
+ Y
+ Y
+ N
+
+
+ snils_inn_job_exists_check
+ check_if_need_to_repeat_job.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat_job.hpl
+ Simple evaluation
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_on_error.hpl
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_delta.hpl
+ Y
+ N
+ N
+
+
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 800
+ 256
+ Первичка
+ 65
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 800
+ 560
+ Повторка
+ 64
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 608
+ 720
+ Дельта
+ 49
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ Segoe UI
+ 9
+ 150
+ 1200
+ 80
+ snils_inn_job
+
+M_R_UP_DATE
+
+M_R_CR_DATE
+
+0001-01-01 00:00:00
+
+3001-01-01 00:00:00
+ 114
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/subpoena/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/subpoena/check_if_need_to_repeat_job.hpl
new file mode 100644
index 0000000..f15ccdf
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/subpoena/check_if_need_to_repeat_job.hpl
@@ -0,0 +1,86 @@
+
+
+
+ check_if_need_to_repeat_job
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 12:27:51.630
+ -
+ 2025/08/08 12:27:51.630
+
+
+
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ need_to_repeat_job
+ NEED_TO_REPEAT_JOB
+ ROOT_WORKFLOW
+
+
+ Y
+
+
+ 624
+ 288
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (SELECT 1
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'subpoena_job'
+where je.status is null or je.status in ('ERROR', 'PROCESSING')
+limit 1
+) as need_to_repeat_job;
+ N
+
+
+ 336
+ 288
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/subpoena/checkpoints/check_if_subpoena_job_exists.hpl b/mappings/info_recruits/citizen_tables/subpoena/checkpoints/check_if_subpoena_job_exists.hpl
new file mode 100644
index 0000000..e5f59bb
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/subpoena/checkpoints/check_if_subpoena_job_exists.hpl
@@ -0,0 +1,113 @@
+
+
+
+ check_if_subpoena_job_exists
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 13:28:46.661
+ -
+ 2025/08/05 13:28:46.661
+
+
+
+
+
+ Set variables
+ Write to log
+ N
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ job_executed_flag
+ JOB_EXECUTED_FLAG
+ PARENT_WORKFLOW
+
+
+ Y
+
+
+ 672
+ 336
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'subpoena_job'
+ limit 1
+ ) AS job_executed_flag;
+ N
+
+
+ 384
+ 336
+
+
+
+ Write to log
+ WriteToLog
+
+ Y
+
+ 1
+
+ none
+
+
+ Y
+
+
+ N
+ 0
+ Basic
+ ${STATUS}
+
+
+ 944
+ 224
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl
new file mode 100644
index 0000000..90b4e7c
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl
@@ -0,0 +1,603 @@
+
+
+
+ subpoena_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 14:31:22.799
+ -
+ 2025/08/05 14:31:22.799
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Table output
+ Change job status on error
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Table input
+ Table output
+ Y
+
+
+ Table output
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1328
+ 496
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1328
+ 320
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1856
+ 176
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id)
+VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}');
+
+
+
+
+ 288
+ 320
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1536
+ 176
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1536
+ 304
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_sent_summons_raw
+ is_sent_summons
+ MAX
+
+
+ has_served_summons_raw
+ is_served_summons
+ MAX
+
+
+ has_appeared_to_recruitment_center_raw
+ is_appeared_to_recruitment_center
+ MAX
+
+
+ has_not_appeared_by_valid_excuse_raw
+ is_not_appeared_by_valid_excuse
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 688
+ 176
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 880
+ 176
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.subpoena
+ N
+
+ SELECT
+ s.id, --id повестки
+ CASE
+ WHEN s.send_date is not null THEN 1
+ ELSE 0
+ END AS is_sent_summons, --факт направления повестки///Признак наличия направленной повестки
+ CASE
+ WHEN s.system_stages->'subpoenaAwarded' != 'true' THEN 1
+ ELSE 0
+ END AS is_served_summons, --has_served_summons//Признак наличия врученной повестки
+ CASE
+ WHEN s.system_stages->'recruitAttendanceConfirm' != 'true' THEN 1
+ ELSE 0
+ END AS is_appeared_to_recruitment_center, -- appeared_to_recruitment_center//Признак явки в военный комиссариат
+ CASE
+ WHEN ss.code = '5.1' THEN 1
+ ELSE 0
+ END AS is_not_appeared_by_valid_excuse, -- not_appeared_by_valid_excuse//Признак неявки в военкомат по уважительной причине
+ s.recruit_id,
+ s.send_date, --дата направления повестки
+ s.series, --серия повестки
+ s.number, --новер повестки
+ s.reason_id AS subpoena_reason, --причина вызова по повестке /// код передавать или сразу наименование?
+ s.full_name_responsible_user, --фио военного комиссара(фио пользователя сформировавшео повестку)
+ s.sig_info, --сертификат ключа проверки ЭП
+ s.recruitment_name, --наименование ВК
+ s.recruitment_address, --адрес, по которому необходимо явиться
+ s.visit_date, --дата и время явки
+ --, --способ направления // искать в subpoena_send_info
+ --, --УН заказного почтового отправления // искать в subpoena_send_info
+ s.status_id, --статус // ссылка на справочник subpoena_status/// AS subpoena_status
+ s.create_date, --дата создания // для загрузки данных
+ s.status_change_date --дата обновления // для загрузки данных (timestamp without time zone)
+
+-- поля для карточки, раздел "Сведения о направлении повестки военного комиссариата"
+
+FROM public.subpoena s
+join public.subpoena_status ss on s.status_id = ss.id
+WHERE
+ '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND s.department_id = '${IDM_ID}'
+ AND '${M_R_CR_DATE}' >= s.create_date
+
+${LIMIT_FW}
+ Y
+
+
+ 496
+ 320
+
+
+
+ Table output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ 1000
+ ervu-dashboard
+
+
+ id
+ id
+
+
+ recruit_id
+ recruit_id
+
+
+ send_date
+ send_date
+
+
+ series
+ series
+
+
+ number
+ number
+
+
+ reason_id
+ reason_id
+
+
+ full_name_responsible_user
+ full_name_responsible_user
+
+
+ sig_info
+ sig_info
+
+
+ recruitment_name
+ recruitment_name
+
+
+ recruitment_address
+ recruitment_address
+
+
+ visit_date
+ visit_date
+
+
+ status_id
+ status_id
+
+
+ create_date
+ create_date
+
+
+ status_change_date
+ status_change_date
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
recruits_info
+ N
+ Y
+ N
+ Y
+
+
+ 688
+ 320
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_sent_summons
+ has_sent_summons
+
+
+ has_served_summons
+ has_served_summons
+
+
+ appeared_to_recruitment_center
+ appeared_to_recruitment_center
+
+
+ not_appeared_by_valid_excuse
+ not_appeared_by_valid_excuse
+
+
+ N
+ Y
+
+
+ 1328
+ 176
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_sent_summons
+ has_sent_summons_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_served_summons
+ has_served_summons_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ appeared_to_recruitment_center
+ has_appeared_to_recruitment_center_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ not_appeared_by_valid_excuse
+ has_not_appeared_by_valid_excuse_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1104
+ 176
+
+
+
+
+ Table output
+ Change job status on error
+ Y
+
+ error_description
+
+ error_code
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl
new file mode 100644
index 0000000..824f5e6
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl
@@ -0,0 +1,615 @@
+
+
+
+ subpoena_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:22:56.048
+ -
+ 2025/08/11 13:22:56.048
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1392
+ 528
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1392
+ 352
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1872
+ 208
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 352
+ 352
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1632
+ 208
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1632
+ 320
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_sent_summons_raw
+ is_sent_summons
+ MAX
+
+
+ has_served_summons_raw
+ is_served_summons
+ MAX
+
+
+ has_appeared_to_recruitment_center_raw
+ is_appeared_to_recruitment_center
+ MAX
+
+
+ has_not_appeared_by_valid_excuse_raw
+ is_not_appeared_by_valid_excuse
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 752
+ 208
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 944
+ 208
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ id
+ id
+
+ ervu_dashboard
+
subpoena
+
+ id
+ id
+ N
+
+
+ recruit_id
+ recruit_id
+ Y
+
+
+ send_date
+ send_date
+ Y
+
+
+ series
+ series
+ Y
+
+
+ number
+ number
+ Y
+
+
+ reason_id
+ reason_id
+ Y
+
+
+ full_name_responsible_user
+ full_name_responsible_user
+ Y
+
+
+ sig_info
+ sig_info
+ Y
+
+
+ recruitment_name
+ recruitment_name
+ Y
+
+
+ recruitment_address
+ recruitment_address
+ Y
+
+
+ visit_date
+ visit_date
+ Y
+
+
+ status_id
+ status_id
+ Y
+
+
+ create_date
+ create_date
+ Y
+
+
+ status_change_date
+ status_change_date
+ Y
+
+
+ N
+
+
+ 752
+ 352
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.subpoena
+ N
+
+ SELECT
+ s.id, --id повестки
+ CASE
+ WHEN s.send_date is not null THEN 1
+ ELSE 0
+ END AS is_sent_summons, --факт направления повестки///Признак наличия направленной повестки
+ CASE
+ WHEN s.system_stages->'subpoenaAwarded' != 'true' THEN 1
+ ELSE 0
+ END AS is_served_summons, --has_served_summons//Признак наличия врученной повестки
+ CASE
+ WHEN s.system_stages->'recruitAttendanceConfirm' != 'true' THEN 1
+ ELSE 0
+ END AS is_appeared_to_recruitment_center, -- appeared_to_recruitment_center//Признак явки в военный комиссариат
+ CASE
+ WHEN ss.code = '5.1' THEN 1
+ ELSE 0
+ END AS is_not_appeared_by_valid_excuse, -- not_appeared_by_valid_excuse//Признак неявки в военкомат по уважительной причине
+ s.recruit_id,
+ s.send_date, --дата направления повестки
+ s.series, --серия повестки
+ s.number, --новер повестки
+ s.reason_id AS subpoena_reason, --причина вызова по повестке /// код передавать или сразу наименование?
+ s.full_name_responsible_user, --фио военного комиссара(фио пользователя сформировавшео повестку)
+ s.sig_info, --сертификат ключа проверки ЭП
+ s.recruitment_name, --наименование ВК
+ s.recruitment_address, --адрес, по которому необходимо явиться
+ s.visit_date, --дата и время явки
+ --, --способ направления // искать в subpoena_send_info
+ --, --УН заказного почтового отправления // искать в subpoena_send_info
+ s.status_id, --статус // ссылка на справочник subpoena_status/// AS subpoena_status
+ s.create_date, --дата создания // для загрузки данных
+ s.status_change_date --дата обновления // для загрузки данных (timestamp without time zone)
+
+-- поля для карточки, раздел "Сведения о направлении повестки военного комиссариата"
+
+FROM public.subpoena s
+join public.subpoena_status ss on s.status_id = ss.id
+WHERE
+ '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND s.department_id = '${IDM_ID}'
+ AND s.status_change_date >= '${M_R_UP_DATE}'::timestamp
+
+${LIMIT_FW}
+ Y
+
+
+ 560
+ 352
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_sent_summons
+ has_sent_summons
+
+
+ has_served_summons
+ has_served_summons
+
+
+ appeared_to_recruitment_center
+ appeared_to_recruitment_center
+
+
+ not_appeared_by_valid_excuse
+ not_appeared_by_valid_excuse
+
+
+ N
+ Y
+
+
+ 1392
+ 208
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_sent_summons
+ has_sent_summons_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_served_summons
+ has_served_summons_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ appeared_to_recruitment_center
+ has_appeared_to_recruitment_center_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ not_appeared_by_valid_excuse
+ has_not_appeared_by_valid_excuse_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1168
+ 208
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl
new file mode 100644
index 0000000..7a050d5
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl
@@ -0,0 +1,630 @@
+
+
+
+ subpoena_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 13:25:52.319
+ -
+ 2025/08/08 13:25:52.319
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Table input
+ Insert / update
+ Y
+
+
+ Group by
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ User defined Java expression
+ Y
+
+
+ User defined Java expression
+ Update
+ Y
+
+
+ Insert / update
+ Group by
+ Y
+
+
+ Update
+ Change job status on error
+ Y
+
+
+ Update
+ Detect empty stream
+ Y
+
+
+ Update
+ Filter rows
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1312
+ 400
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1312
+ 208
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1776
+ 64
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (
+ id,
+ job_name,
+ status,
+ execution_datetime,
+ error_description,
+ recruitment_id
+)
+VALUES (
+ DEFAULT,
+ '${JOB_NAME}',
+ 'PROCESSING',
+ DEFAULT,
+ NULL,
+ '${IDM_ID}'
+)
+ON CONFLICT (job_name, recruitment_id)
+DO UPDATE SET
+ status = 'PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+
+
+
+ 272
+ 208
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1568
+ 64
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1568
+ 176
+
+
+
+ Group by
+ GroupBy
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+ ${java.io.tmpdir}
+
+
+ has_sent_summons_raw
+ is_sent_summons
+ MAX
+
+
+ has_served_summons_raw
+ is_served_summons
+ MAX
+
+
+ has_appeared_to_recruitment_center_raw
+ is_appeared_to_recruitment_center
+ MAX
+
+
+ has_not_appeared_by_valid_excuse_raw
+ is_not_appeared_by_valid_excuse
+ MAX
+
+
+ N
+
+
+ recruit_id
+
+
+ N
+ grp
+
+
+ 672
+ 64
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 864
+ 64
+
+
+
+ Insert / update
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ id
+ id
+
+ ervu_dashboard
+
subpoena
+
+ id
+ id
+ N
+
+
+ recruit_id
+ recruit_id
+ Y
+
+
+ send_date
+ send_date
+ Y
+
+
+ series
+ series
+ Y
+
+
+ number
+ number
+ Y
+
+
+ reason_id
+ reason_id
+ Y
+
+
+ full_name_responsible_user
+ full_name_responsible_user
+ Y
+
+
+ sig_info
+ sig_info
+ Y
+
+
+ recruitment_name
+ recruitment_name
+ Y
+
+
+ recruitment_address
+ recruitment_address
+ Y
+
+
+ visit_date
+ visit_date
+ Y
+
+
+ status_id
+ status_id
+ Y
+
+
+ create_date
+ create_date
+ Y
+
+
+ status_change_date
+ status_change_date
+ Y
+
+
+ N
+
+
+ 672
+ 208
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ postgres.subpoena
+ N
+
+ SELECT
+ s.id, --id повестки
+ CASE
+ WHEN s.send_date is not null THEN 1
+ ELSE 0
+ END AS is_sent_summons, --факт направления повестки///Признак наличия направленной повестки
+ CASE
+ WHEN s.system_stages->'subpoenaAwarded' != 'true' THEN 1
+ ELSE 0
+ END AS is_served_summons, --has_served_summons//Признак наличия врученной повестки
+ CASE
+ WHEN s.system_stages->'recruitAttendanceConfirm' != 'true' THEN 1
+ ELSE 0
+ END AS is_appeared_to_recruitment_center, -- appeared_to_recruitment_center//Признак явки в военный комиссариат
+ CASE
+ WHEN ss.code = '5.1' THEN 1
+ ELSE 0
+ END AS is_not_appeared_by_valid_excuse, -- not_appeared_by_valid_excuse//Признак неявки в военкомат по уважительной причине
+ s.recruit_id,
+ s.send_date, --дата направления повестки
+ s.series, --серия повестки
+ s.number, --новер повестки
+ s.reason_id AS subpoena_reason, --причина вызова по повестке /// код передавать или сразу наименование?
+ s.full_name_responsible_user, --фио военного комиссара(фио пользователя сформировавшео повестку)
+ s.sig_info, --сертификат ключа проверки ЭП
+ s.recruitment_name, --наименование ВК
+ s.recruitment_address, --адрес, по которому необходимо явиться
+ s.visit_date, --дата и время явки
+ --, --способ направления // искать в subpoena_send_info
+ --, --УН заказного почтового отправления // искать в subpoena_send_info
+ s.status_id, --статус // ссылка на справочник subpoena_status/// AS subpoena_status
+ s.create_date, --дата создания // для загрузки данных
+ s.status_change_date --дата обновления // для загрузки данных (timestamp without time zone)
+
+-- поля для карточки, раздел "Сведения о направлении повестки военного комиссариата"
+
+FROM public.subpoena s
+join public.subpoena_status ss on s.status_id = ss.id
+WHERE
+ '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND s.department_id = '${IDM_ID}'
+ AND '${M_R_CR_DATE}' >= s.create_date
+
+${LIMIT_FW}
+ Y
+
+
+ 480
+ 208
+
+
+
+ Update
+ Update
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+ Y
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
citizen
+
+ has_sent_summons
+ has_sent_summons
+
+
+ has_served_summons
+ has_served_summons
+
+
+ appeared_to_recruitment_center
+ appeared_to_recruitment_center
+
+
+ not_appeared_by_valid_excuse
+ not_appeared_by_valid_excuse
+
+
+ N
+ Y
+
+
+ 1312
+ 64
+
+
+
+ User defined Java expression
+ Janino
+
+ Y
+
+ 1
+
+ none
+
+
+
+ has_sent_summons
+ has_sent_summons_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ has_served_summons
+ has_served_summons_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ appeared_to_recruitment_center
+ has_appeared_to_recruitment_center_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+ not_appeared_by_valid_excuse
+ has_not_appeared_by_valid_excuse_raw == 1
+ Boolean
+ -1
+ -1
+
+
+
+
+ 1088
+ 64
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+ Update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_delta.hpl
new file mode 100644
index 0000000..e69b190
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_delta.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:16:11.204
+ -
+ 2025/08/11 13:16:11.204
+
+
+
+
+
+ Table input
+ subpoena_flow_delta.hpl
+ Y
+
+
+ Table input
+ subpoena_flow_delta.hpl 2
+ Y
+
+
+ Table input
+ subpoena_flow_delta.hpl 3
+ Y
+
+
+ Table input
+ subpoena_flow_delta.hpl 4
+ Y
+
+
+ Table input
+ subpoena_flow_delta.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'subpoena_job'
+where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');
+ N
+
+
+ 352
+ 288
+
+
+
+ subpoena_flow_delta.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 640
+ 128
+
+
+
+ subpoena_flow_delta.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 640
+ 208
+
+
+
+ subpoena_flow_delta.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 640
+ 288
+
+
+
+ subpoena_flow_delta.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 640
+ 368
+
+
+
+ subpoena_flow_delta.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 640
+ 448
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_on_error.hpl
new file mode 100644
index 0000000..b6fa112
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/subpoena/recruitment_five_flow_on_error.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_on_error
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 12:54:50.126
+ -
+ 2025/08/05 12:54:50.126
+
+
+
+
+
+ Table input
+ subpoena_flow_repeat.hpl
+ Y
+
+
+ Table input
+ subpoena_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ subpoena_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ subpoena_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ subpoena_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'subpoena_job'
+where je.status is null or je.status in('ERROR', 'PROCESSING');
+ N
+
+
+ 272
+ 368
+
+
+
+ subpoena_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 528
+ 208
+
+
+
+ subpoena_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 528
+ 288
+
+
+
+ subpoena_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 528
+ 368
+
+
+
+ subpoena_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 528
+ 448
+
+
+
+ subpoena_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 528
+ 528
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/subpoena/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/subpoena/recruitments_five_flow.hpl
new file mode 100644
index 0000000..6bd1738
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/subpoena/recruitments_five_flow.hpl
@@ -0,0 +1,373 @@
+
+
+
+ recruitments_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/04/18 09:48:01.970
+ -
+ 2025/04/18 09:48:01.970
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ subpoena_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ subpoena_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ subpoena_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ subpoena_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ subpoena_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+idm_id AS recruitment
+FROM ervu_dashboard.recruitment
+${COMMENT}/*
+where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a',
+'cff66da8-2be0-4839-bd8e-332b1a150031',
+'34c8685e-f08a-4877-afb1-a0589800a21c',
+'0e10678c-f272-41c3-94dd-c15830321f9a',
+'9703f108-761a-467a-aad3-89617e5539ed',
+'55eae374-9bb5-4295-9e3a-5fbcdaba870d',
+'dad6c101-34be-45c3-8173-57190cb69dfb',
+'fc10523f-af31-4f6b-b0e2-00799758f634',
+'61807cc2-9913-4060-8802-0672877c28c8',
+'eba7fd7d-e3da-49a7-8e65-8fc85e47190e',
+'f59afe6d-c166-4196-a489-6d17f02fc05e',
+'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9',
+'0fe2bdf0-afbb-402d-93da-67e511799afa',
+'6139de3b-2378-496f-9fca-7df7dab90832',
+'50ba73dd-1726-48f1-8b7c-7a77ff965299')
+${COMMENT}*/
+ Y
+
+
+ 432
+ 304
+
+
+
+ subpoena_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 144
+
+
+
+ subpoena_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 224
+
+
+
+ subpoena_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 304
+
+
+
+ subpoena_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 384
+
+
+
+ subpoena_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/parallel/subpoena_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ subpoena_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 464
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/subpoena/subpoena_job.hwf b/mappings/info_recruits/citizen_tables/subpoena/subpoena_job.hwf
new file mode 100644
index 0000000..4773d5e
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/subpoena/subpoena_job.hwf
@@ -0,0 +1,366 @@
+
+
+ subpoena_job
+ Y
+
+
+
+ 0
+ -
+ 2025/08/05 12:45:28.561
+ -
+ 2025/08/05 12:45:28.561
+
+
+ COMMENT
+
+
+
+
+ LIMIT_FW
+ ;
+
+
+
+ M_R_CR_DATE
+ 3001-01-01 00:00:00
+
+
+
+ M_R_UP_DATE
+ 0001-01-01 00:00:00
+
+
+
+
+
+ Start
+
+ SPECIAL
+
+ 1
+ 12
+ 60
+ 0
+ 0
+ N
+ 0
+ 1
+ N
+ 224
+ 304
+
+
+
+ check_if_subpoena_job_exists.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/checkpoints/check_if_subpoena_job_exists.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 416
+ 304
+
+
+
+ subpoena_job_exists_check
+
+ SIMPLE_EVAL
+
+ boolean
+ false
+ equal
+ equal
+ N
+ variable
+ JOB_EXECUTED_FLAG
+ N
+ 688
+ 304
+
+
+
+ recruitments_five_flow.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/recruitments_five_flow.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ Y
+ 928
+ 304
+
+
+
+ recruitment_five_flow_on_error.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/recruitment_five_flow_on_error.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 928
+ 608
+
+
+
+ check_if_need_to_repeat_job.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/check_if_need_to_repeat_job.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 688
+ 464
+
+
+
+ Simple evaluation
+
+ SIMPLE_EVAL
+
+ boolean
+ true
+ equal
+ equal
+ N
+ variable
+ NEED_TO_REPEAT_JOB
+ N
+ 688
+ 608
+
+
+
+ recruitment_five_flow_delta.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/subpoena/recruitment_five_flow_delta.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 688
+ 800
+
+
+
+
+
+ Start
+ check_if_subpoena_job_exists.hpl
+ Y
+ Y
+ Y
+
+
+ check_if_subpoena_job_exists.hpl
+ subpoena_job_exists_check
+ Y
+ Y
+ N
+
+
+ subpoena_job_exists_check
+ recruitments_five_flow.hpl
+ Y
+ Y
+ N
+
+
+ subpoena_job_exists_check
+ check_if_need_to_repeat_job.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat_job.hpl
+ Simple evaluation
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_on_error.hpl
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_delta.hpl
+ Y
+ N
+ N
+
+
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 800
+ 256
+ Первичка
+ 65
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 800
+ 560
+ Повторка
+ 64
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 608
+ 720
+ Дельта
+ 49
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ Segoe UI
+ 9
+ 150
+ 1200
+ 80
+ subpoena_job
+
+M_R_UP_DATE
+
+M_R_CR_DATE
+
+0001-01-01 00:00:00
+
+3001-01-01 00:00:00
+ 114
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/check_if_need_to_repeat_job.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/check_if_need_to_repeat_job.hpl
new file mode 100644
index 0000000..fa60b99
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/temporary_measures/check_if_need_to_repeat_job.hpl
@@ -0,0 +1,86 @@
+
+
+
+ check_if_need_to_repeat_job
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 12:27:51.630
+ -
+ 2025/08/08 12:27:51.630
+
+
+
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ need_to_repeat_job
+ NEED_TO_REPEAT_JOB
+ ROOT_WORKFLOW
+
+
+ Y
+
+
+ 624
+ 288
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (SELECT 1
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'temporary_measures_job'
+where je.status is null or je.status in ('ERROR', 'PROCESSING')
+limit 1
+) as need_to_repeat_job;
+ N
+
+
+ 336
+ 288
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/checkpoints/check_if_temporary_measures_job_exists.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/checkpoints/check_if_temporary_measures_job_exists.hpl
new file mode 100644
index 0000000..acb1487
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/temporary_measures/checkpoints/check_if_temporary_measures_job_exists.hpl
@@ -0,0 +1,113 @@
+
+
+
+ check_if_temporary_measures_job_exists
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 13:28:46.661
+ -
+ 2025/08/05 13:28:46.661
+
+
+
+
+
+ Set variables
+ Write to log
+ N
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ job_executed_flag
+ JOB_EXECUTED_FLAG
+ PARENT_WORKFLOW
+
+
+ Y
+
+
+ 672
+ 336
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'recruits_info_job'
+ limit 1
+ ) AS job_executed_flag;
+ N
+
+
+ 384
+ 336
+
+
+
+ Write to log
+ WriteToLog
+
+ Y
+
+ 1
+
+ none
+
+
+ Y
+
+
+ N
+ 0
+ Basic
+ ${STATUS}
+
+
+ 944
+ 224
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl
new file mode 100644
index 0000000..8592bb1
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl
@@ -0,0 +1,380 @@
+
+
+
+ temporary_measures_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 14:31:22.799
+ -
+ 2025/08/05 14:31:22.799
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Table input
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ Table output
+ Y
+
+
+ Table output
+ Filter rows
+ Y
+
+
+ Table output
+ Change job status on error
+ Y
+
+
+ Table output
+ Detect empty stream
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1376
+ 512
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1024
+ 512
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1632
+ 160
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id)
+VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}');
+
+
+
+
+ 288
+ 320
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1632
+ 320
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1024
+ 160
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 752
+ 320
+
+
+
+ Table input
+ TableInput
+
+ N
+
+ 1
+
+ none
+
+
+ ervu_person_registry
+ N
+ SELECT
+ r.system_create_date AS created_at,
+ r.system_update_date AS updated_at,
+ ri.recruit_id,
+ ri.info,
+ ri.gir_import_data_version_id,
+ r.current_recruitment_id,
+ r.target_recruitment_id,
+ r.full_name,
+ r.addresses
+FROM recruits_info ri
+JOIN recruits r ON r.id = ri.recruit_id
+WHERE
+ '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(current_recruitment_id, target_recruitment_id) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}' >= r.system_create_date
+ --AND '${CR_DATE}' < ri.created_at
+--ORDER BY ri.created_at ASC;
+
+${LIMIT_FW}
+ Y
+
+
+ 496
+ 320
+
+
+
+ Table output
+ TableOutput
+
+ N
+
+ 1
+
+ none
+
+
+ 1000
+ ervu-dashboard
+
+
+ recruit_id
+ recruit_id
+
+
+ created_at
+ created_at
+
+
+ updated_at
+ updated_at
+
+
+ info
+ info
+
+
+ gir_import_data_version_id
+ gir_import_data_version_id
+
+
+ current_recruitment_id
+ current_recruitment_id
+
+
+ target_recruitment_id
+ target_recruitment_id
+
+
+ full_name
+ full_name
+
+
+ addresses
+ addresses
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
recruits_info
+ N
+ Y
+ N
+ Y
+
+
+ 1024
+ 320
+
+
+
+
+ Table output
+ Change job status on error
+ Y
+
+ error_description
+
+ error_code
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl
new file mode 100644
index 0000000..bf8cff6
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl
@@ -0,0 +1,389 @@
+
+
+
+ temporary_measures_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:22:56.048
+ -
+ 2025/08/11 13:22:56.048
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Table input
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ Insert / update
+ Y
+
+
+ Insert / update
+ Filter rows
+ Y
+
+
+ Insert / update
+ Detect empty stream
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1168
+ 400
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 944
+ 400
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1248
+ 64
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 336
+ 224
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1248
+ 224
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 944
+ 64
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 736
+ 224
+
+
+
+ Insert / update
+ InsertUpdate
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
recruits_info
+
+ recruit_id
+ recruit_id
+ N
+
+
+ created_at
+ created_at
+ Y
+
+
+ updated_at
+ updated_at
+ Y
+
+
+ info
+ info
+ Y
+
+
+ gir_import_data_version_id
+ gir_import_data_version_id
+ Y
+
+
+ current_recruitment_id
+ current_recruitment_id
+ Y
+
+
+ target_recruitment_id
+ target_recruitment_id
+ Y
+
+
+ full_name
+ full_name
+ Y
+
+
+ addresses
+ addresses
+ Y
+
+
+ N
+
+
+ 944
+ 224
+
+
+
+ Table input
+ TableInput
+
+ N
+
+ 1
+
+ none
+
+
+ ervu_person_registry
+ N
+
+ SELECT
+ r.system_create_date AS created_at,
+ r.system_update_date AS updated_at,
+ ri.recruit_id,
+ ri.info,
+ ri.gir_import_data_version_id,
+ r.current_recruitment_id,
+ r.target_recruitment_id,
+ r.full_name,
+ r.addresses
+FROM recruits_info ri
+JOIN recruits r ON r.id = ri.recruit_id
+WHERE
+ '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(current_recruitment_id, target_recruitment_id) = '${IDM_ID}'
+ --AND '${M_R_CR_DATE}' >= r.system_create_date
+ AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp
+ --AND '${CR_DATE}' < ri.created_at
+--ORDER BY ri.created_at ASC;
+
+${LIMIT_FW}
+ Y
+
+
+ 544
+ 224
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl
new file mode 100644
index 0000000..d4041f8
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl
@@ -0,0 +1,402 @@
+
+
+
+ temporary_measures_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/08 13:25:52.319
+ -
+ 2025/08/08 13:25:52.319
+
+
+
+
+
+ Create job execution record
+ Table input
+ Y
+
+
+ Table input
+ Identify last row in a stream
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Identify last row in a stream
+ Insert / update
+ Y
+
+
+ Insert / update
+ Filter rows
+ Y
+
+
+ Insert / update
+ Detect empty stream
+ Y
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT_WITH_ERROR
+ Y
+ 0
+
+
+ 1248
+ 400
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 960
+ 400
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1440
+ 48
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (
+ id,
+ job_name,
+ status,
+ execution_datetime,
+ error_description,
+ recruitment_id
+)
+VALUES (
+ DEFAULT,
+ '${JOB_NAME}',
+ 'PROCESSING',
+ DEFAULT,
+ NULL,
+ '${IDM_ID}'
+)
+ON CONFLICT (job_name, recruitment_id)
+DO UPDATE SET
+ status = 'PROCESSING',
+ execution_datetime = DEFAULT,
+ error_description = NULL
+
+
+
+ 272
+ 208
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 1440
+ 208
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 960
+ 48
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ Y
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 720
+ 208
+
+
+
+ Insert / update
+ InsertUpdate
+
+ N
+
+ 1
+
+ none
+
+
+ 100
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+
recruits_info
+
+ recruit_id
+ recruit_id
+ N
+
+
+ created_at
+ created_at
+ Y
+
+
+ updated_at
+ updated_at
+ Y
+
+
+ info
+ info
+ Y
+
+
+ gir_import_data_version_id
+ gir_import_data_version_id
+ Y
+
+
+ current_recruitment_id
+ current_recruitment_id
+ Y
+
+
+ target_recruitment_id
+ target_recruitment_id
+ Y
+
+
+ full_name
+ full_name
+ Y
+
+
+ addresses
+ addresses
+ Y
+
+
+ N
+
+
+ 960
+ 208
+
+
+
+ Table input
+ TableInput
+
+ N
+
+ 1
+
+ none
+
+
+ ervu_person_registry
+ N
+ SELECT
+ r.system_create_date AS created_at,
+ r.system_update_date AS updated_at,
+ ri.recruit_id,
+ ri.info,
+ ri.gir_import_data_version_id,
+ r.current_recruitment_id,
+ r.target_recruitment_id,
+ r.full_name,
+ r.addresses
+FROM recruits_info ri
+JOIN recruits r ON r.id = ri.recruit_id
+WHERE
+ '${IDM_ID}' != '' -- Проверка на пустую строку
+ AND COALESCE(current_recruitment_id, target_recruitment_id) = '${IDM_ID}'
+ AND '${M_R_CR_DATE}' >= r.system_create_date
+ --AND '${CR_DATE}' < ri.created_at
+--ORDER BY ri.created_at ASC;
+
+${LIMIT_FW}
+ Y
+
+
+ 480
+ 208
+
+
+
+
+ Insert / update
+ Change job status on error
+ Y
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_delta.hpl
new file mode 100644
index 0000000..2679e8a
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_delta.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/11 13:16:11.204
+ -
+ 2025/08/11 13:16:11.204
+
+
+
+
+
+ Table input
+ temporary_measures_flow_delta.hpl
+ Y
+
+
+ Table input
+ temporary_measures_flow_delta.hpl 2
+ Y
+
+
+ Table input
+ temporary_measures_flow_delta.hpl 3
+ Y
+
+
+ Table input
+ temporary_measures_flow_delta.hpl 4
+ Y
+
+
+ Table input
+ temporary_measures_flow_delta.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'recruits_info_job'
+where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');
+ N
+
+
+ 352
+ 288
+
+
+
+ temporary_measures_flow_delta.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 656
+ 128
+
+
+
+ temporary_measures_flow_delta.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 656
+ 208
+
+
+
+ temporary_measures_flow_delta.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 656
+ 288
+
+
+
+ temporary_measures_flow_delta.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 656
+ 368
+
+
+
+ temporary_measures_flow_delta.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 656
+ 448
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_on_error.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_on_error.hpl
new file mode 100644
index 0000000..f5c77e6
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_on_error.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_on_error
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/05 12:54:50.126
+ -
+ 2025/08/05 12:54:50.126
+
+
+
+
+
+ Table input
+ temporary_measures_flow_repeat.hpl
+ Y
+
+
+ Table input
+ temporary_measures_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ temporary_measures_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ temporary_measures_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ temporary_measures_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+ r.idm_id as recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'temporary_measures_job'
+where je.status is null or je.status in('ERROR', 'PROCESSING');
+ N
+
+
+ 272
+ 368
+
+
+
+ temporary_measures_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 528
+ 208
+
+
+
+ temporary_measures_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 528
+ 288
+
+
+
+ temporary_measures_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 528
+ 368
+
+
+
+ temporary_measures_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 528
+ 448
+
+
+
+ temporary_measures_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 528
+ 528
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/recruitments_five_flow.hpl b/mappings/info_recruits/citizen_tables/temporary_measures/recruitments_five_flow.hpl
new file mode 100644
index 0000000..d6e1612
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/temporary_measures/recruitments_five_flow.hpl
@@ -0,0 +1,373 @@
+
+
+
+ recruitments_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/04/18 09:48:01.970
+ -
+ 2025/04/18 09:48:01.970
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ temporary_measures_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ temporary_measures_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ temporary_measures_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ temporary_measures_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ temporary_measures_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT
+idm_id AS recruitment
+FROM ervu_dashboard.recruitment
+${COMMENT}/*
+where idm_id in ('110686b2-4a01-4976-885b-d26a2980f53a',
+'cff66da8-2be0-4839-bd8e-332b1a150031',
+'34c8685e-f08a-4877-afb1-a0589800a21c',
+'0e10678c-f272-41c3-94dd-c15830321f9a',
+'9703f108-761a-467a-aad3-89617e5539ed',
+'55eae374-9bb5-4295-9e3a-5fbcdaba870d',
+'dad6c101-34be-45c3-8173-57190cb69dfb',
+'fc10523f-af31-4f6b-b0e2-00799758f634',
+'61807cc2-9913-4060-8802-0672877c28c8',
+'eba7fd7d-e3da-49a7-8e65-8fc85e47190e',
+'f59afe6d-c166-4196-a489-6d17f02fc05e',
+'22c64b79-f8e4-41e7-a2f3-1aa9df424fd9',
+'0fe2bdf0-afbb-402d-93da-67e511799afa',
+'6139de3b-2378-496f-9fca-7df7dab90832',
+'50ba73dd-1726-48f1-8b7c-7a77ff965299')
+${COMMENT}*/
+ Y
+
+
+ 432
+ 304
+
+
+
+ temporary_measures_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 144
+
+
+
+ temporary_measures_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 224
+
+
+
+ temporary_measures_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 304
+
+
+
+ temporary_measures_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 384
+
+
+
+ temporary_measures_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/parallel/temporary_measures_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment
+
+
+
+ JOB_NAME
+
+ temporary_measures_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 704
+ 464
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/temporary_measures/temporary_measures_job.hwf b/mappings/info_recruits/citizen_tables/temporary_measures/temporary_measures_job.hwf
new file mode 100644
index 0000000..65fc996
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/temporary_measures/temporary_measures_job.hwf
@@ -0,0 +1,358 @@
+
+
+ temporary_measures_job
+ Y
+
+
+
+ 0
+ -
+ 2025/08/05 12:45:28.561
+ -
+ 2025/08/05 12:45:28.561
+
+
+ COMMENT
+
+
+
+
+ LIMIT_FW
+ ;
+
+
+
+ M_R_CR_DATE
+ 3001-01-01 00:00:00
+
+
+
+ M_R_UP_DATE
+ 0001-01-01 00:00:00
+
+
+
+
+
+ Start
+
+ SPECIAL
+
+ 1
+ 12
+ 60
+ 0
+ 0
+ N
+ 0
+ 1
+ N
+ 224
+ 304
+
+
+
+ check_if_temporary_measures_job_exists.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/checkpoints/check_if_temporary_measures_job_exists.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 416
+ 304
+
+
+
+ temporary_measures_job_exists_check
+
+ SIMPLE_EVAL
+
+ boolean
+ false
+ equal
+ equal
+ N
+ variable
+ JOB_EXECUTED_FLAG
+ N
+ 768
+ 304
+
+
+
+ recruitments_five_flow.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/recruitments_five_flow.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ Y
+ 1088
+ 304
+
+
+
+ recruitment_five_flow_on_error.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_on_error.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 1088
+ 608
+
+
+
+ check_if_need_to_repeat_job.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/check_if_need_to_repeat_job.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 768
+ 464
+
+
+
+ Simple evaluation
+
+ SIMPLE_EVAL
+
+ boolean
+ true
+ equal
+ equal
+ N
+ variable
+ NEED_TO_REPEAT_JOB
+ N
+ 768
+ 608
+
+
+
+ recruitment_five_flow_delta.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/temporary_measures/recruitment_five_flow_delta.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 768
+ 800
+
+
+
+
+
+ Start
+ check_if_temporary_measures_job_exists.hpl
+ N
+ Y
+ Y
+
+
+ check_if_temporary_measures_job_exists.hpl
+ temporary_measures_job_exists_check
+ Y
+ Y
+ N
+
+
+ temporary_measures_job_exists_check
+ recruitments_five_flow.hpl
+ Y
+ Y
+ N
+
+
+ temporary_measures_job_exists_check
+ check_if_need_to_repeat_job.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat_job.hpl
+ Simple evaluation
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_on_error.hpl
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_delta.hpl
+ Y
+ N
+ N
+
+
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 880
+ 256
+ Первичка
+ 65
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 880
+ 560
+ Повторка
+ 64
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ -1
+ 26
+ 688
+ 720
+ Дельта
+ 49
+
+
+ 251
+ 232
+ 201
+ 90
+ 58
+ 14
+ N
+ 90
+ 58
+ 14
+ N
+ Segoe UI
+ 9
+ 150
+ 1200
+ 80
+ temporary_measures_job
+
+M_R_UP_DATE
+
+M_R_CR_DATE
+
+0001-01-01 00:00:00
+
+3001-01-01 00:00:00
+ 143
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/employer/employer_job.hwf b/mappings/info_recruits/citizen_tables/work/employer/employer_job.hwf
new file mode 100644
index 0000000..8c0ba80
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/employer/employer_job.hwf
@@ -0,0 +1,252 @@
+
+
+ employer_job
+ Y
+
+
+
+ -
+ 2025/08/18 20:08:04.495
+ -
+ 2025/08/18 20:08:04.495
+
+
+
+
+ Start
+
+ SPECIAL
+
+ 1
+ 12
+ 60
+ 0
+ 0
+ N
+ 0
+ 1
+ N
+ 48
+ 48
+
+
+
+ check_if_employer_job_execution_exists.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/support/check_if_employer_job_execution_exists.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 272
+ 48
+
+
+
+ employer_job_execution_exists_check
+
+ SIMPLE_EVAL
+
+ boolean
+ false
+ equal
+ equal
+ N
+ variable
+ JOB_EXECUTED_FLAG
+ N
+ 576
+ 48
+
+
+
+ recruitment_five_flow.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/recruitment_five_flow.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ Y
+ 896
+ 48
+
+
+
+ recruitment_five_flow_repeat.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/recruitment_five_flow_repeat.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 816
+ 352
+
+
+
+ check_if_need_to_repeat.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/support/check_if_need_to_repeat.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 576
+ 192
+
+
+
+ Simple evaluation
+
+ SIMPLE_EVAL
+
+ boolean
+ true
+ equal
+ equal
+ N
+ variable
+ NEED_TO_REPEAT_JOB
+ N
+ 576
+ 352
+
+
+
+ recruitment_five_flow_delta.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/recruitment_five_flow_delta.hpl
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 576
+ 544
+
+
+
+
+
+ check_if_employer_job_execution_exists.hpl
+ employer_job_execution_exists_check
+ Y
+ Y
+ N
+
+
+ employer_job_execution_exists_check
+ recruitment_five_flow.hpl
+ Y
+ Y
+ N
+
+
+ employer_job_execution_exists_check
+ check_if_need_to_repeat.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat.hpl
+ Simple evaluation
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_repeat.hpl
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_delta.hpl
+ Y
+ N
+ N
+
+
+ Start
+ check_if_employer_job_execution_exists.hpl
+ Y
+ Y
+ Y
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl
new file mode 100644
index 0000000..e519d93
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl
@@ -0,0 +1,432 @@
+
+
+
+ employer_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/18 18:28:13.561
+ -
+ 2025/08/18 18:28:13.561
+
+
+
+
+
+ Create job execution record
+ employer_input
+ Y
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ employer_input
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ employer_output
+ Y
+
+
+ employer_output
+ Change job status on error
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ employer_output
+ Filter rows
+ Y
+
+
+ Identify last row in a stream
+ Detect empty stream
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT
+ Y
+ 0
+
+
+ 944
+ 448
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 720
+ 448
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 944
+ 112
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id)
+VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}');
+
+
+
+
+ 176
+ 288
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 528
+ 112
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ String
+
+
+
+ Change job status on success
+
+
+ 944
+ 288
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ N
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 528
+ 288
+
+
+
+ employer_input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ with filteredData as (select ri.recruit_id,
+ (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id,
+ ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'aktRabotodat' as rabotodat,
+ true as actual_employer
+ from recruits_info ri
+ where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'aktRabotodat' != 'null'
+ and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+
+ union all
+
+ select ri.recruit_id,
+ (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id,
+ ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'predRabotodat' as rabotodat,
+ false as actual_employer
+ from recruits_info ri
+ where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'predRabotodat' != 'null'
+ and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}')
+select fd.source_id,
+ fd.recruit_id,
+ to_date(rabotodat ->> 'dataSved', 'YYYY-MM-DD') as source_update_date,
+ COALESCE(rabotodat -> 'extend' ->> 'status', '0') = '1' AS status,
+ rabotodat -> 'extend' ->> 'adresRabotodat' as address,
+ rabotodat -> 'extend' ->> 'tipPodrazdRabotodat' as separate_unit_type,
+ rabotodat -> 'extend' ->> 'adresPodrazdRabotodat' as separate_unit_address,
+ case
+ when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null'
+ then 'Индивидуальный предприниматель'
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' then 'Юридическое лицо'
+ when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null' then 'Глава КФХ'
+ when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null' then 'Физическое лицо'
+ end as employer_category_name,
+ rabotodat -> 'svedYUL' -> 'naimOrg' as name,
+ case
+ when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null'
+ then rabotodat -> 'svedIP' ->> 'innfl'
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null'
+ then rabotodat -> 'svedYUL' ->> 'innyul'
+ when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null'
+ then rabotodat -> 'svedGlKFH' ->> 'innfl'
+ when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null'
+ then rabotodat -> 'svedPlatFL' ->> 'innfl'
+ end as inn,
+ case
+ when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null'
+ then rabotodat -> 'extend' -> 'svedYUL' ->> 'ogrn'
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null'
+ then rabotodat -> 'svedIP' ->> 'ogrnip'
+ end as ogrn,
+ case
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null'
+ then rabotodat -> 'extend' -> 'svedYUL' ->> 'kpp'
+ end as kpp,
+ coalesce(rabotodat -> 'svedYUL' -> 'extend' ->> 'priznakOpk', '0') = '1' as is_opk_org,
+ actual_employer
+from filteredData fd;
+ Y
+
+
+ 352
+ 288
+
+
+
+ employer_output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ 10000
+ ervu-dashboard
+
+
+ recruit_id
+ recruit_id
+
+
+ source_id
+ source_id
+
+
+ source_update_date
+ source_update_date
+
+
+ address
+ address
+
+
+ separate_unit_type_code
+ separate_unit_type
+
+
+ separate_unit_address
+ separate_unit_address
+
+
+ employer_category_name
+ employer_category_name
+
+
+ name
+ name
+
+
+ inn
+ inn
+
+
+ ogrn
+ ogrn
+
+
+ kpp
+ kpp
+
+
+ actual_employer
+ actual_employer
+
+
+ is_opk_org
+ is_opk_org
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
employer
+ N
+ Y
+ N
+ Y
+
+
+ 720
+ 288
+
+
+
+
+ employer_output
+ Change job status on error
+ Y
+
+ error_description
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl
new file mode 100644
index 0000000..79fcd74
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl
@@ -0,0 +1,452 @@
+
+
+
+ employer_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/18 19:01:58.918
+ -
+ 2025/08/18 19:01:58.918
+
+
+
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Create job execution record
+ employer_input
+ Y
+
+
+ employer_upsert
+ Filter rows
+ Y
+
+
+ Identify last row in a stream
+ employer_upsert
+ Y
+
+
+ employer_upsert
+ Change job status on error
+ Y
+
+
+ employer_input
+ Identify last row in a stream
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Identify last row in a stream
+ Detect empty stream
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT
+ Y
+ 0
+
+
+ 1040
+ 544
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 864
+ 544
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1040
+ 240
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = current_timestamp,
+ error_description = NULL
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 320
+ 384
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 672
+ 240
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1040
+ 384
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ N
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 672
+ 384
+
+
+
+ employer_input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ with filteredData as (select ri.recruit_id,
+ (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id,
+ ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'aktRabotodat' as rabotodat,
+ true as actual_employer
+ from recruits_info ri
+ where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'aktRabotodat' != 'null'
+ and to_date(ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'aktRabotodat' ->>
+ 'dataSved', 'YYYY-MM-DD') > '${MAX_SOURCE_UPDATE_DATE}'
+ and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+
+ union all
+
+ select ri.recruit_id,
+ (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id,
+ ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'predRabotodat' as rabotodat,
+ false as actual_employer
+ from recruits_info ri
+ where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'predRabotodat' != 'null'
+ and to_date(ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'predRabotodat' ->>
+ 'dataSved', 'YYYY-MM-DD') > '${MAX_SOURCE_UPDATE_DATE}'
+ and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}')
+select fd.source_id,
+ fd.recruit_id,
+ to_date(rabotodat ->> 'dataSved', 'YYYY-MM-DD') as source_update_date,
+ COALESCE(rabotodat -> 'extend' ->> 'status', '0') = '1' AS status,
+ rabotodat -> 'extend' ->> 'adresRabotodat' as address,
+ rabotodat -> 'extend' ->> 'tipPodrazdRabotodat' as separate_unit_type,
+ rabotodat -> 'extend' ->> 'adresPodrazdRabotodat' as separate_unit_address,
+ case
+ when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null'
+ then 'Индивидуальный предприниматель'
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' then 'Юридическое лицо'
+ when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null' then 'Глава КФХ'
+ when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null' then 'Физическое лицо'
+ end as employer_category_name,
+ rabotodat -> 'svedYUL' -> 'naimOrg' as name,
+ case
+ when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null'
+ then rabotodat -> 'svedIP' ->> 'innfl'
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null'
+ then rabotodat -> 'svedYUL' ->> 'innyul'
+ when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null'
+ then rabotodat -> 'svedGlKFH' ->> 'innfl'
+ when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null'
+ then rabotodat -> 'svedPlatFL' ->> 'innfl'
+ end as inn,
+ case
+ when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null'
+ then rabotodat -> 'extend' -> 'svedYUL' ->> 'ogrn'
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null'
+ then rabotodat -> 'svedIP' ->> 'ogrnip'
+ end as ogrn,
+ case
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null'
+ then rabotodat -> 'extend' -> 'svedYUL' ->> 'kpp'
+ end as kpp,
+ coalesce(rabotodat -> 'svedYUL' -> 'extend' ->> 'priznakOpk', '0') = '1' as is_opk_org,
+ actual_employer
+from filteredData fd;
+ Y
+
+
+ 496
+ 384
+
+
+
+ employer_upsert
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 10000
+ ervu-dashboard
+
+
+ =
+ source_id
+ source_id
+
+
+ =
+ actual_employer
+ actual_employer
+
+ ervu_dashboard
+
employer
+
+ source_id
+ source_id
+ N
+
+
+ recruit_id
+ recruit_id
+ N
+
+
+ source_update_date
+ source_update_date
+ Y
+
+
+ address
+ address
+ Y
+
+
+ separate_unit_type_code
+ separate_unit_type
+ Y
+
+
+ separate_unit_address
+ separate_unit_address
+ Y
+
+
+ employer_category_name
+ employer_category_name
+ Y
+
+
+ name
+ name
+ Y
+
+
+ inn
+ inn
+ Y
+
+
+ ogrn
+ ogrn
+ Y
+
+
+ kpp
+ kpp
+ Y
+
+
+ actual_employer
+ actual_employer
+ Y
+
+
+ is_opk_org
+ is_opk_org
+ Y
+
+
+ N
+
+
+ 864
+ 384
+
+
+
+
+ employer_upsert
+ Change job status on error
+ Y
+
+ error_description
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl
new file mode 100644
index 0000000..24d9cec
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl
@@ -0,0 +1,453 @@
+
+
+
+ employer_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/18 18:47:26.553
+ -
+ 2025/08/18 18:47:26.553
+
+
+
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Create job execution record
+ employer_input
+ Y
+
+
+ employer_input
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ employer_upsert
+ Y
+
+
+ employer_upsert
+ Filter rows
+ Y
+
+
+ employer_upsert
+ Change job status on error
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ Identify last row in a stream
+ Detect empty stream
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT
+ Y
+ 0
+
+
+ 1072
+ 560
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 896
+ 560
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1072
+ 256
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+
+ N
+
+ N
+
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id)
+VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}')
+ON CONFLICT (job_name, recruitment_id)
+DO UPDATE
+SET status = 'PROCESSING',
+ error_description = null,
+ execution_datetime = current_timestamp;
+
+
+
+ 352
+ 400
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 704
+ 256
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+ Change job status on success
+
+
+ 1072
+ 400
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ N
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 704
+ 400
+
+
+
+ employer_input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ with filteredData as (select ri.recruit_id,
+ (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id,
+ ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'aktRabotodat' as rabotodat,
+ true as actual_employer
+ from recruits_info ri
+ where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'aktRabotodat' != 'null'
+ and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+
+ union all
+
+ select ri.recruit_id,
+ (ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'id') as source_id,
+ ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' -> 'predRabotodat' as rabotodat,
+ false as actual_employer
+ from recruits_info ri
+ where ri.info -> 'svedFL' -> 'svedRabotodat' -> 'rabotodat' ->> 'predRabotodat' != 'null'
+ and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}')
+select fd.source_id,
+ fd.recruit_id,
+ to_date(rabotodat ->> 'dataSved', 'YYYY-MM-DD') as source_update_date,
+ COALESCE(rabotodat -> 'extend' ->> 'status', '0') = '1' AS status,
+ rabotodat -> 'extend' ->> 'adresRabotodat' as address,
+ rabotodat -> 'extend' ->> 'tipPodrazdRabotodat' as separate_unit_type,
+ rabotodat -> 'extend' ->> 'adresPodrazdRabotodat' as separate_unit_address,
+ case
+ when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null'
+ then 'Индивидуальный предприниматель'
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null' then 'Юридическое лицо'
+ when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null' then 'Глава КФХ'
+ when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null' then 'Физическое лицо'
+ end as employer_category_name,
+ rabotodat -> 'svedYUL' -> 'naimOrg' as name,
+ case
+ when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null'
+ then rabotodat -> 'svedIP' ->> 'innfl'
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null'
+ then rabotodat -> 'svedYUL' ->> 'innyul'
+ when rabotodat ->> 'svedGlKFH' is not null and rabotodat ->> 'svedGlKFH' != 'null'
+ then rabotodat -> 'svedGlKFH' ->> 'innfl'
+ when rabotodat ->> 'svedPlatFL' is not null and rabotodat ->> 'svedPlatFL' != 'null'
+ then rabotodat -> 'svedPlatFL' ->> 'innfl'
+ end as inn,
+ case
+ when rabotodat ->> 'svedIP' is not null and rabotodat ->> 'svedIP' != 'null'
+ then rabotodat -> 'extend' -> 'svedYUL' ->> 'ogrn'
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null'
+ then rabotodat -> 'svedIP' ->> 'ogrnip'
+ end as ogrn,
+ case
+ when rabotodat ->> 'svedYUL' is not null and rabotodat ->> 'svedYUL' != 'null'
+ then rabotodat -> 'extend' -> 'svedYUL' ->> 'kpp'
+ end as kpp,
+ coalesce(rabotodat -> 'svedYUL' -> 'extend' ->> 'priznakOpk', '0') = '1' as is_opk_org,
+ actual_employer
+from filteredData fd;
+ Y
+
+
+ 544
+ 400
+
+
+
+ employer_upsert
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 10000
+ ervu-dashboard-test
+
+
+ =
+ source_id
+ source_id
+
+
+ =
+ actual_employer
+ actual_employer
+
+ ervu_dashboard
+
employer
+
+ source_id
+ source_id
+ N
+
+
+ recruit_id
+ recruit_id
+ N
+
+
+ source_update_date
+ source_update_date
+ Y
+
+
+ address
+ address
+ Y
+
+
+ separate_unit_type_code
+ separate_unit_type
+ Y
+
+
+ separate_unit_address
+ separate_unit_address
+ Y
+
+
+ employer_category_name
+ employer_category_name
+ Y
+
+
+ name
+ name
+ Y
+
+
+ inn
+ inn
+ Y
+
+
+ ogrn
+ ogrn
+ Y
+
+
+ kpp
+ kpp
+ Y
+
+
+ actual_employer
+ actual_employer
+ Y
+
+
+ is_opk_org
+ is_opk_org
+ Y
+
+
+ N
+
+
+ 896
+ 400
+
+
+
+
+ employer_upsert
+ Change job status on error
+ Y
+
+ error_description
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow.hpl b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow.hpl
new file mode 100644
index 0000000..15d97f9
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow.hpl
@@ -0,0 +1,355 @@
+
+
+
+ recruitment_five_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/18 20:11:33.772
+ -
+ 2025/08/18 20:11:33.772
+
+
+
+
+
+ Get all recruitments ordered by created_date
+ employer_flow.hpl
+ Y
+
+
+ Get all recruitments ordered by created_date
+ employer_flow.hpl 2
+ Y
+
+
+ Get all recruitments ordered by created_date
+ employer_flow.hpl 3
+ Y
+
+
+ Get all recruitments ordered by created_date
+ employer_flow.hpl 4
+ Y
+
+
+ Get all recruitments ordered by created_date
+ employer_flow.hpl 5
+ Y
+
+
+
+ Get all recruitments ordered by created_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard-test
+ N
+ SELECT
+idm_id
+FROM ervu_dashboard.recruitment;
+ N
+
+
+ 416
+ 416
+
+
+
+ employer_flow.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ idm_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 688
+ 256
+
+
+
+ employer_flow.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ idm_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 688
+ 336
+
+
+
+ employer_flow.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ idm_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 688
+ 416
+
+
+
+ employer_flow.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ idm_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 688
+ 496
+
+
+
+ employer_flow.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ idm_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 688
+ 576
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_delta.hpl
new file mode 100644
index 0000000..cbf15f2
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_delta.hpl
@@ -0,0 +1,423 @@
+
+
+
+ recruitment_five_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/18 20:19:19.424
+ -
+ 2025/08/18 20:19:19.424
+
+
+
+
+
+ Table input
+ employer_flow_delta.hpl
+ Y
+
+
+ get_max_source_update_date
+ Table input
+ Y
+
+
+ Table input
+ employer_flow_delta.hpl 2
+ Y
+
+
+ Table input
+ employer_flow_delta.hpl 3
+ Y
+
+
+ Table input
+ employer_flow_delta.hpl 4
+ Y
+
+
+ Table input
+ employer_flow_delta.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard-test
+ N
+ 0
+ get_max_source_update_date
+ SELECT
+ r.idm_id,
+ ? max_source_update_date
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'employer_job'
+ JOIN recruits_info ri
+ ON COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = r.idm_id
+ AND ri.updated_at > (
+ SELECT MAX(execution_datetime)
+ FROM etl.job_execution
+ WHERE job_name = 'employer_job'
+ AND recruitment_id = r.idm_id
+ )
+where je.status in ('SUCCESS', 'DELTA_ERROR', 'DELTA_SUCCESS', 'DELTA_PROCESSING');
+ N
+
+
+ 576
+ 336
+
+
+
+ get_max_source_update_date
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ select max(source_update_date)
+from employer;
+ N
+
+
+ 400
+ 336
+
+
+
+ employer_flow_delta.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ idm_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+
+ MAX_SOURCE_UPDATE_DATE
+ max_source_update_date
+
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 768
+ 176
+
+
+
+ employer_flow_delta.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ idm_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+
+ MAX_SOURCE_UPDATE_DATE
+ max_source_update_date
+
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 768
+ 256
+
+
+
+ employer_flow_delta.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ idm_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+
+ MAX_SOURCE_UPDATE_DATE
+ max_source_update_date
+
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 768
+ 336
+
+
+
+ employer_flow_delta.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ idm_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+
+ MAX_SOURCE_UPDATE_DATE
+ max_source_update_date
+
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 768
+ 416
+
+
+
+ employer_flow_delta.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_delta.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ idm_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+
+ MAX_SOURCE_UPDATE_DATE
+ max_source_update_date
+
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 768
+ 496
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_repeat.hpl b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_repeat.hpl
new file mode 100644
index 0000000..fd60da1
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/employer/recruitment_five_flow_repeat.hpl
@@ -0,0 +1,360 @@
+
+
+
+ recruitment_five_flow_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/18 20:16:58.135
+ -
+ 2025/08/18 20:16:58.135
+
+
+
+
+
+ Table input
+ employer_flow_repeat.hpl
+ Y
+
+
+ Table input
+ employer_flow_repeat.hpl 2
+ Y
+
+
+ Table input
+ employer_flow_repeat.hpl 3
+ Y
+
+
+ Table input
+ employer_flow_repeat.hpl 4
+ Y
+
+
+ Table input
+ employer_flow_repeat.hpl 5
+ Y
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard-test
+ N
+ 0
+ SELECT r.idm_id AS recruitment_id
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ AND je.job_name = 'employer_job'
+WHERE je.id IS NULL
+ OR je.status IN ('ERROR', 'PROCESSING');
+ N
+
+
+ 528
+ 432
+
+
+
+ employer_flow_repeat.hpl
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 272
+
+
+
+ employer_flow_repeat.hpl 2
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 352
+
+
+
+ employer_flow_repeat.hpl 3
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 432
+
+
+
+ employer_flow_repeat.hpl 4
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 512
+
+
+
+ employer_flow_repeat.hpl 5
+ PipelineExecutor
+
+ Y
+
+ 1
+
+ none
+
+
+ local
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/employer/parallel/employer_flow_repeat.hpl
+ N
+
+ 1
+
+
+
+
+ IDM_ID
+ recruitment_id
+
+
+
+ JOB_NAME
+
+ employer_job
+
+ Y
+
+
+ ExecutionTime
+ ExecutionResult
+ ExecutionNrErrors
+ ExecutionLinesRead
+ ExecutionLinesWritten
+ ExecutionLinesInput
+ ExecutionLinesOutput
+ ExecutionLinesRejected
+ ExecutionLinesUpdated
+ ExecutionLinesDeleted
+ ExecutionFilesRetrieved
+ ExecutionExitStatus
+ ExecutionLogText
+ ExecutionLogChannelId
+
+
+ FileName
+
+
+
+ 736
+ 592
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/employer/support/check_if_employer_job_execution_exists.hpl b/mappings/info_recruits/citizen_tables/work/employer/support/check_if_employer_job_execution_exists.hpl
new file mode 100644
index 0000000..548f683
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/employer/support/check_if_employer_job_execution_exists.hpl
@@ -0,0 +1,83 @@
+
+
+
+ check_if_employer_job_execution_exists
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/18 20:08:41.981
+ -
+ 2025/08/18 20:08:41.981
+
+
+
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ job_executed_flag
+ JOB_EXECUTED_FLAG
+ PARENT_WORKFLOW
+
+
+ Y
+
+
+ 816
+ 336
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (
+ SELECT 1
+ FROM etl.job_execution
+ WHERE job_name = 'employer_job'
+) AS job_executed_flag;
+ N
+
+
+ 528
+ 336
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/employer/support/check_if_need_to_repeat.hpl b/mappings/info_recruits/citizen_tables/work/employer/support/check_if_need_to_repeat.hpl
new file mode 100644
index 0000000..9e14dda
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/employer/support/check_if_need_to_repeat.hpl
@@ -0,0 +1,85 @@
+
+
+
+ check_if_need_to_repeat
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/18 20:14:41.794
+ -
+ 2025/08/18 20:14:41.794
+
+
+
+
+
+ Table input
+ Set variables
+ Y
+
+
+
+ Set variables
+ SetVariable
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ need_to_repeat_job
+ NEED_TO_REPEAT_JOB
+ ROOT_WORKFLOW
+
+
+ Y
+
+
+ 816
+ 336
+
+
+
+ Table input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ SELECT EXISTS (SELECT 1
+FROM ervu_dashboard.recruitment r
+ LEFT JOIN etl.job_execution je
+ ON r.idm_id = je.recruitment_id
+ and job_name = 'employer_job'
+where je.status is null or je.status in ('ERROR', 'PROCESSING')
+) as need_to_repeat_job;
+ N
+
+
+ 528
+ 336
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/individual_entrepreneur_job.hwf b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/individual_entrepreneur_job.hwf
new file mode 100644
index 0000000..e230637
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/individual_entrepreneur_job.hwf
@@ -0,0 +1,262 @@
+
+
+ individual_entrepreneur_job
+ Y
+
+
+
+ -
+ 2025/08/19 08:47:49.108
+ -
+ 2025/08/19 08:47:49.108
+
+
+
+
+ Start
+
+ SPECIAL
+
+ 1
+ 12
+ 60
+ 0
+ 0
+ N
+ 0
+ 1
+ N
+ 0
+ 224
+
+
+
+ check_if_individual_entrepreneur_execution_exists.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/support/check_if_individual_entrepreneur_execution_exists.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 256
+ 224
+
+
+
+ employer_job_execution_exists_check
+
+ SIMPLE_EVAL
+
+ boolean
+ false
+ equal
+ equal
+ N
+ variable
+ JOB_EXECUTED_FLAG
+ N
+ 592
+ 224
+
+
+
+ recruitment_five_flow.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ Y
+ 912
+ 224
+
+
+
+ recruitment_five_flow_repeat.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow_repeat.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 832
+ 528
+
+
+
+ check_if_need_to_repeat.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/support/check_if_need_to_repeat.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 592
+ 384
+
+
+
+ Simple evaluation
+
+ SIMPLE_EVAL
+
+ boolean
+ true
+ equal
+ equal
+ N
+ variable
+ NEED_TO_REPEAT_JOB
+ N
+ 592
+ 528
+
+
+
+ recruitment_five_flow_delta.hpl
+
+ PIPELINE
+
+ N
+ N
+ N
+ N
+ N
+ N
+ ${PROJECT_HOME}/info_recruits/citizen_tables/work/individual_entrepreneur/recruitment_five_flow_delta.hpl
+
+
+ Basic
+
+ Y
+
+ N
+ local
+ N
+ N
+ Y
+ N
+ 592
+ 720
+
+
+
+
+
+ Start
+ check_if_individual_entrepreneur_execution_exists.hpl
+ Y
+ Y
+ Y
+
+
+ check_if_individual_entrepreneur_execution_exists.hpl
+ employer_job_execution_exists_check
+ Y
+ Y
+ N
+
+
+ employer_job_execution_exists_check
+ recruitment_five_flow.hpl
+ Y
+ Y
+ N
+
+
+ employer_job_execution_exists_check
+ check_if_need_to_repeat.hpl
+ Y
+ N
+ N
+
+
+ check_if_need_to_repeat.hpl
+ Simple evaluation
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_repeat.hpl
+ Y
+ Y
+ N
+
+
+ Simple evaluation
+ recruitment_five_flow_delta.hpl
+ Y
+ N
+ N
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow.hpl b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow.hpl
new file mode 100644
index 0000000..a34334f
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow.hpl
@@ -0,0 +1,522 @@
+
+
+
+ individual_entrepreneur_flow
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/19 08:50:19.851
+ -
+ 2025/08/19 08:50:19.851
+
+
+
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Create job execution record
+ individual_entrepreneur_input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Identify last row in a stream
+ individual_entrepreneur_output
+ Y
+
+
+ individual_entrepreneur_output
+ Filter rows
+ Y
+
+
+ individual_entrepreneur_input
+ Identify last row in a stream
+ Y
+
+
+ Identify last row in a stream
+ Detect empty stream
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+ filter_null_npd_dates
+ unique_by_rec_id
+ Y
+
+
+ unique_by_rec_id
+ individual_entrepreneur_npd_output
+ Y
+
+
+ individual_entrepreneur_npd_output
+ Change job status on error
+ Y
+
+
+ individual_entrepreneur_output
+ Change job status on error
+ Y
+
+
+ Identify last row in a stream
+ filter_null_npd_dates
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT
+ Y
+ 0
+
+
+ 1648
+ 576
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1440
+ 576
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1440
+ 288
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ INSERT INTO etl.job_execution (id, job_name, status, execution_datetime, error_description, recruitment_id)
+VALUES (DEFAULT, '${JOB_NAME}', 'PROCESSING', DEFAULT, null, '${IDM_ID}');
+
+
+
+
+ 384
+ 448
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 800
+ 288
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1440
+ 448
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ N
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 800
+ 448
+
+
+
+ filter_null_npd_dates
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ IS NOT NULL
+ reg_npd_date
+ N
+ -
+
+
+ unique_by_rec_id
+
+
+ 800
+ 576
+
+
+
+ individual_entrepreneur_input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ with filtered_data as (select ri.recruit_id,
+ ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'id' as source_id,
+ ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP' -> 0 as ip_elem,
+ to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataUchNPD',
+ 'YYYY-MM-DD') as reg_npd_date,
+ to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataSnUchNPD',
+ 'YYYY-MM-DD') as dereg_npd_date,
+ true as actual
+ from recruits_info ri
+ where ri.info -> 'svedFL' -> 'svedRegIP' ->> 'regIP' != 'null'
+ and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+
+ union all
+ select ri.recruit_id,
+ ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'id' as source_id,
+ ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'predRegIP' as ip_elem,
+ to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataUchNPD',
+ 'YYYY-MM-DD') as reg_npd_date,
+ to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataSnUchNPD',
+ 'YYYY-MM-DD') as dereg_npd_date,
+ false as actual
+ from recruits_info ri
+ where ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'predRegIP' != 'null'
+ and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}')
+select fd.recruit_id,
+ fd.source_id,
+ ip_elem ->> 'ogrnip' as ogrnip,
+ to_date(ip_elem ->> 'dataSved', 'YYYY-MM-DD') as source_update_date,
+ to_date(ip_elem ->> 'dataRegIP', 'YYYY-MM-DD') as registration_date,
+ to_date(ip_elem ->> 'dataINNNed', 'YYYY-MM-DD') as deregistration_date,
+ reg_npd_date,
+ dereg_npd_date,
+ fd.actual as actual
+from filtered_data fd;
+ Y
+
+
+ 592
+ 448
+
+
+
+ individual_entrepreneur_npd_output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ 10000
+ ervu-dashboard
+
+
+ recruit_id
+ recruit_id
+
+
+ source_id
+ source_id
+
+
+ register_date
+ reg_npd_date
+
+
+ deregistration_date
+ dereg_npd_date
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
individual_entrepreneur_npd
+ N
+ Y
+ N
+ Y
+
+
+ 1184
+ 576
+
+
+
+ individual_entrepreneur_output
+ TableOutput
+
+ Y
+
+ 1
+
+ none
+
+
+ 10000
+ ervu-dashboard-test
+
+
+ recruit_id
+ recruit_id
+
+
+ source_id
+ source_id
+
+
+ ogrnip
+ ogrnip
+
+
+ source_update_date
+ source_update_date
+
+
+ registration_date
+ registration_date
+
+
+ deregistration_date
+ deregistration_date
+
+
+ actual
+ actual
+
+
+ N
+ N
+ N
+ N
+ Y
+ N
+ ervu_dashboard
+ Y
+
individual_entrepreneur
+ N
+ Y
+ N
+ Y
+
+
+ 1232
+ 448
+
+
+
+ unique_by_rec_id
+ UniqueRowsByHashSet
+
+ Y
+
+ 1
+
+ none
+
+
+ N
+ N
+
+
+
+ recruit_id
+
+
+
+
+ 976
+ 576
+
+
+
+
+ individual_entrepreneur_npd_output
+ Change job status on error
+ Y
+
+ error_description
+
+
+
+
+
+
+
+ individual_entrepreneur_output
+ Change job status on error
+ Y
+
+ error_description
+
+
+
+
+
+
+
+
+
diff --git a/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_delta.hpl b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_delta.hpl
new file mode 100644
index 0000000..686b0be
--- /dev/null
+++ b/mappings/info_recruits/citizen_tables/work/individual_entrepreneur/parallel/individual_entrepreneur_flow_delta.hpl
@@ -0,0 +1,530 @@
+
+
+
+ individual_entrepreneur_flow_delta
+ Y
+
+
+
+ Normal
+
+
+ N
+ 1000
+ 100
+ -
+ 2025/08/19 09:17:38.141
+ -
+ 2025/08/19 09:17:38.141
+
+
+
+
+
+ Change job status on error
+ Abort
+ Y
+
+
+ Create job execution record
+ individual_entrepreneur_input
+ Y
+
+
+ Filter rows
+ Change job status on success
+ Y
+
+
+ Identify last row in a stream
+ individual_entrepreneur_upsert
+ Y
+
+
+ individual_entrepreneur_input
+ Identify last row in a stream
+ Y
+
+
+ individual_entrepreneur_upsert
+ Filter rows
+ Y
+
+
+ filter_null_npd_dates
+ unique_by_rec_id
+ Y
+
+
+ unique_by_rec_id
+ individual_entrepreneur_npd_upsert
+ Y
+
+
+ Identify last row in a stream
+ Detect empty stream
+ Y
+
+
+ Identify last row in a stream
+ filter_null_npd_dates
+ Y
+
+
+ individual_entrepreneur_upsert
+ Change job status on error
+ Y
+
+
+ individual_entrepreneur_npd_upsert
+ Change job status on error
+ Y
+
+
+ Detect empty stream
+ Change job status on success
+ Y
+
+
+
+ Abort
+ Abort
+
+ Y
+
+ 1
+
+ none
+
+
+ ABORT
+ Y
+ 0
+
+
+ 1616
+ 592
+
+
+
+ Change job status on error
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ error_description
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ Y
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_ERROR',
+ error_description = ?
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1328
+ 592
+
+
+
+ Change job status on success
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ Y
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET status = 'DELTA_SUCCESS'
+WHERE job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+
+
+ 1616
+ 272
+
+
+
+ Create job execution record
+ ExecSql
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ ervu-dashboard
+ N
+ N
+ Y
+ N
+ N
+ UPDATE etl.job_execution
+SET
+ status = 'DELTA_PROCESSING',
+ execution_datetime = current_timestamp,
+ error_description = NULL
+where job_name = '${JOB_NAME}'
+and recruitment_id = '${IDM_ID}';
+
+
+ 272
+ 448
+
+
+
+ Detect empty stream
+ DetectEmptyStream
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+ 736
+ 272
+
+
+
+ Filter rows
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ =
+ last_row
+ N
+ -
+
+ N
+ -1
+ constant
+ -1
+ Y
+ Boolean
+
+
+
+ Change job status on success
+
+
+ 1616
+ 448
+
+
+
+ Identify last row in a stream
+ DetectLastRow
+
+ N
+
+ 1
+
+ none
+
+
+ last_row
+
+
+ 736
+ 448
+
+
+
+ filter_null_npd_dates
+ FilterRows
+
+ Y
+
+ 1
+
+ none
+
+
+
+
+
+
+ IS NOT NULL
+ reg_npd_date
+ N
+ -
+
+
+ unique_by_rec_id
+
+
+ 736
+ 592
+
+
+
+ individual_entrepreneur_input
+ TableInput
+
+ Y
+
+ 1
+
+ none
+
+
+ ervu-dashboard
+ N
+ 0
+ with filtered_data as (select ri.recruit_id,
+ ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'id' as source_id,
+ ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP' -> 0 as ip_elem,
+ to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataUchNPD',
+ 'YYYY-MM-DD') as reg_npd_date,
+ to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataSnUchNPD',
+ 'YYYY-MM-DD') as dereg_npd_date,
+ true as actual
+ from recruits_info ri
+ where ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'aktRegIP' != 'null'
+ and to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'aktRegIP' ->> 'dataSved',
+ 'YYYY-MM-DD') > '${MAX_SOURCE_UPDATE_DATE}'
+ and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}'
+
+ union all
+ select ri.recruit_id,
+ ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'id' as source_id,
+ ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'predRegIP' as ip_elem,
+ to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataUchNPD',
+ 'YYYY-MM-DD') as reg_npd_date,
+ to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'extend' ->> 'dataSnUchNPD',
+ 'YYYY-MM-DD') as dereg_npd_date,
+ false as actual
+ from recruits_info ri
+ where ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' ->> 'predRegIP' != 'null'
+ and to_date(ri.info -> 'svedFL' -> 'svedRegIP' -> 'regIP' -> 'predRegIP' ->> 'dataSved',
+ 'YYYY-MM-DD') > '${MAX_SOURCE_UPDATE_DATE}'
+ and COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${IDM_ID}')
+select fd.recruit_id,
+ fd.source_id,
+ ip_elem ->> 'ogrnip' as ogrnip,
+ to_date(ip_elem ->> 'dataSved', 'YYYY-MM-DD') as source_update_date,
+ to_date(ip_elem ->> 'dataRegIP', 'YYYY-MM-DD') as registration_date,
+ to_date(ip_elem ->> 'dataINNNed', 'YYYY-MM-DD') as deregistration_date,
+ reg_npd_date,
+ dereg_npd_date,
+ fd.actual as actual
+from filtered_data fd;
+ Y
+
+
+ 496
+ 448
+
+
+
+ individual_entrepreneur_npd_upsert
+ InsertUpdate
+
+ Y
+
+ 1
+
+ none
+
+
+ 10000
+ ervu-dashboard
+
+
+ =
+ recruit_id
+ recruit_id
+
+ ervu_dashboard
+