изменен путь в json при обращении в таблицу recruits_info
This commit is contained in:
parent
0909342380
commit
e4d154abf7
8 changed files with 158 additions and 54 deletions
103
v1_apache-hop dash mapping/connections/db_uat_to_here.json
Normal file
103
v1_apache-hop dash mapping/connections/db_uat_to_here.json
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
{
|
||||
"variables" : [ {
|
||||
"name" : "DB_PERSON_HOST",
|
||||
"value" : "10.65.244.45",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_PERSON_PORT",
|
||||
"value" : "6432",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_PERSON_NAME",
|
||||
"value" : "ervu_person_registry",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_PERSON_USERNAME",
|
||||
"value" : "readonly",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_PERSON_PASSWORD",
|
||||
"value" : "readonly",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_DASHBOARD_HOST",
|
||||
"value" : "10.10.31.119",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_DASHBOARD_PORT",
|
||||
"value" : "5432",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_DASHBOARD_NAME",
|
||||
"value" : "ervu-dashboard-recr",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_DASHBOARD_USERNAME",
|
||||
"value" : "ervu-dashboard",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_DASHBOARD_PASSWORD",
|
||||
"value" : "ervu-dashboard",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_APPEAL_HOST",
|
||||
"value" : "10.65.244.45",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_APPEAL_PORT",
|
||||
"value" : "6432",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_APPEAL_NAME",
|
||||
"value" : "ervu_appeal_document",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_APPEAL_USERNAME",
|
||||
"value" : "readonly",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_APPEAL_PASSWORD",
|
||||
"value" : "readonly",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_DECISION_HOST",
|
||||
"value" : "10.65.244.45",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_DECISION_PORT",
|
||||
"value" : "6432",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_DECISION_NAME",
|
||||
"value" : "ervu_decision_document",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_DECISION_USERNAME",
|
||||
"value" : "readonly",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_DECISION_PASSWORD",
|
||||
"value" : "readonly",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_SUBPOENA_HOST",
|
||||
"value" : "10.65.244.45",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_SUBPOENA_PORT",
|
||||
"value" : "6432",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_SUBPOENA_NAME",
|
||||
"value" : "ervu_subpoena_registry",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_SUBPOENA_USERNAME",
|
||||
"value" : "readonly",
|
||||
"description" : ""
|
||||
}, {
|
||||
"name" : "DB_SUBPOENA_PASSWORD",
|
||||
"value" : "readonly",
|
||||
"description" : ""
|
||||
} ]
|
||||
}
|
||||
|
|
@ -296,9 +296,9 @@ vse AS (
|
|||
extracted_children AS (
|
||||
SELECT
|
||||
ri.recruit_id,
|
||||
jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child
|
||||
jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child
|
||||
FROM vse ri
|
||||
WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array'
|
||||
WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'
|
||||
),
|
||||
children_birth_dates AS (
|
||||
SELECT
|
||||
|
|
|
|||
|
|
@ -297,9 +297,9 @@ vse AS (
|
|||
extracted_children AS (
|
||||
SELECT
|
||||
ri.recruit_id,
|
||||
jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child
|
||||
jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child
|
||||
FROM vse ri
|
||||
WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array'
|
||||
WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'
|
||||
),
|
||||
children_birth_dates AS (
|
||||
SELECT
|
||||
|
|
|
|||
|
|
@ -288,10 +288,10 @@ status_info AS (
|
|||
-- Проверка на обучение в вузе (есть информация и обучается)
|
||||
(
|
||||
CASE
|
||||
WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN
|
||||
WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz
|
||||
FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz
|
||||
WHERE vuz->>'kodStatus' = '1'
|
||||
)
|
||||
ELSE false
|
||||
|
|
@ -301,10 +301,10 @@ status_info AS (
|
|||
-- Проверка на обучение в колледже (есть информация и обучается)
|
||||
(
|
||||
CASE
|
||||
WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN
|
||||
WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh
|
||||
FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh
|
||||
WHERE kolledzh->>'kodStatus' = '1'
|
||||
)
|
||||
ELSE false
|
||||
|
|
@ -314,10 +314,10 @@ status_info AS (
|
|||
-- Проверка на работу (есть информация и работает)
|
||||
(
|
||||
CASE
|
||||
WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN
|
||||
WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud
|
||||
FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud
|
||||
WHERE trud->>'prAktMestRab' = '1'
|
||||
)
|
||||
ELSE false
|
||||
|
|
@ -325,13 +325,13 @@ status_info AS (
|
|||
) AS is_working,
|
||||
|
||||
-- Проверка на отсутствие сведений о вузе
|
||||
info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz,
|
||||
info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz,
|
||||
|
||||
-- Проверка на отсутствие сведений о колледже
|
||||
info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college,
|
||||
info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college,
|
||||
|
||||
-- Проверка на отсутствие сведений о работе
|
||||
info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work,
|
||||
info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work,
|
||||
coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id,
|
||||
r.gender,
|
||||
CASE
|
||||
|
|
@ -353,10 +353,10 @@ status_info AS (
|
|||
-- Проверка на обучение в вузе (есть информация и обучается)
|
||||
(
|
||||
CASE
|
||||
WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN
|
||||
WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz
|
||||
FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz
|
||||
WHERE vuz->>'kodStatus' = '1'
|
||||
)
|
||||
ELSE false
|
||||
|
|
@ -366,10 +366,10 @@ status_info AS (
|
|||
-- Проверка на обучение в колледже (есть информация и обучается)
|
||||
(
|
||||
CASE
|
||||
WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN
|
||||
WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh
|
||||
FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh
|
||||
WHERE kolledzh->>'kodStatus' = '1'
|
||||
)
|
||||
ELSE false
|
||||
|
|
@ -379,10 +379,10 @@ status_info AS (
|
|||
-- Проверка на работу (есть информация и работает)
|
||||
(
|
||||
CASE
|
||||
WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN
|
||||
WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud
|
||||
FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud
|
||||
WHERE trud->>'prAktMestRab' = '1'
|
||||
)
|
||||
ELSE false
|
||||
|
|
@ -390,13 +390,13 @@ status_info AS (
|
|||
) AS is_working,
|
||||
|
||||
-- Проверка на отсутствие сведений о вузе
|
||||
info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz,
|
||||
info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz,
|
||||
|
||||
-- Проверка на отсутствие сведений о колледже
|
||||
info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college,
|
||||
info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college,
|
||||
|
||||
-- Проверка на отсутствие сведений о работе
|
||||
info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work,
|
||||
info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work,
|
||||
coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id,
|
||||
r.gender,
|
||||
CASE
|
||||
|
|
|
|||
|
|
@ -298,9 +298,9 @@ vse AS (
|
|||
extracted_children AS(
|
||||
SELECT
|
||||
ri.recruit_id,
|
||||
jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child
|
||||
jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child
|
||||
FROM vse ri
|
||||
WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array'
|
||||
WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array'
|
||||
),
|
||||
children_count AS (
|
||||
SELECT
|
||||
|
|
|
|||
|
|
@ -295,15 +295,15 @@ categorized AS (
|
|||
WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT'
|
||||
ELSE 'ALL'
|
||||
END AS convicts,
|
||||
MAX(CASE WHEN cat->>'kategoriya' like '%A%' THEN 1 ELSE 0 END) AS has_A,
|
||||
MAX(CASE WHEN cat->>'kategoriya' like '%B%' THEN 1 ELSE 0 END) AS has_B,
|
||||
MAX(CASE WHEN cat->>'kategoriya' like '%C%' THEN 1 ELSE 0 END) AS has_C,
|
||||
MAX(CASE WHEN cat->>'kategoriya' like '%D%' THEN 1 ELSE 0 END) AS has_D,
|
||||
MAX(CASE WHEN cat->>'kategoriya' like '%E%' THEN 1 ELSE 0 END) AS has_E
|
||||
MAX(CASE WHEN cat->>'naimKatTS' like '%A%' THEN 1 ELSE 0 END) AS has_A,
|
||||
MAX(CASE WHEN cat->>'naimKatTS' like '%B%' THEN 1 ELSE 0 END) AS has_B,
|
||||
MAX(CASE WHEN cat->>'naimKatTS' like '%C%' THEN 1 ELSE 0 END) AS has_C,
|
||||
MAX(CASE WHEN cat->>'naimKatTS' like '%D%' THEN 1 ELSE 0 END) AS has_D,
|
||||
MAX(CASE WHEN cat->>'naimKatTS' like '%E%' THEN 1 ELSE 0 END) AS has_E
|
||||
FROM public.recruits AS r
|
||||
JOIN public.recruits_info ri ON ri.recruit_id = r.id
|
||||
JOIN public.recruits_history rh on rh.recruit_id=r.id
|
||||
LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true
|
||||
LEFT JOIN jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true
|
||||
WHERE
|
||||
r.id in (SELECT recruit_id FROM registered) and
|
||||
rh.id in (SELECT recruit_history_id FROM registered)
|
||||
|
|
|
|||
|
|
@ -280,13 +280,13 @@ education_status AS (
|
|||
(
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array'
|
||||
FROM jsonb_array_elements(ri.info->'svedFL'->'svedRObr'->'robr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedFL'->'svedRObr'->'robr') = 'array'
|
||||
AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5')
|
||||
) OR EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array'
|
||||
FROM jsonb_array_elements(ri.info->'svedFL'->'svedInObr'->'inObr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array'
|
||||
AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5')
|
||||
)
|
||||
) AS has_higher,
|
||||
|
|
@ -295,13 +295,13 @@ education_status AS (
|
|||
(
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array'
|
||||
FROM jsonb_array_elements(ri.info->'svedFL'->'svedRObr'->'robr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedFL'->'svedRObr'->'robr') = 'array'
|
||||
AND education->>'kodUrObr' = '10'
|
||||
) OR EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array'
|
||||
FROM jsonb_array_elements(ri.info->'svedFL'->'svedInObr'->'inObr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array'
|
||||
AND education->>'kodUrObr' = '10'
|
||||
)
|
||||
) AS has_average_prof,
|
||||
|
|
@ -310,13 +310,13 @@ education_status AS (
|
|||
(
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array'
|
||||
FROM jsonb_array_elements(ri.info->'svedFL'->'svedRObr'->'robr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedFL'->'svedRObr'->'robr') = 'array'
|
||||
AND education->>'kodUrObr' IN ('7', '9')
|
||||
) OR EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array'
|
||||
FROM jsonb_array_elements(ri.info->'svedFL'->'svedInObr'->'inObr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array'
|
||||
AND education->>'kodUrObr' IN ('7', '9')
|
||||
)
|
||||
) AS has_only_general,
|
||||
|
|
@ -327,17 +327,17 @@ education_status AS (
|
|||
(
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedRObr'->'robr') = 'array'
|
||||
FROM jsonb_array_elements(ri.info->'svedFL'->'svedRObr'->'robr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedFL'->'svedRObr'->'robr') = 'array'
|
||||
) OR EXISTS (
|
||||
SELECT 1
|
||||
FROM jsonb_array_elements(ri.info->'svedInObr'->'inObr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedInObr'->'inObr') = 'array'
|
||||
FROM jsonb_array_elements(ri.info->'svedFL'->'svedInObr'->'inObr') AS education
|
||||
WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array'
|
||||
)
|
||||
)
|
||||
) AND (
|
||||
ri.info->'svedRObr'->>'prOtsRObr' = '1'
|
||||
OR ri.info->'svedInObr'->>'prOtsInObr' = '1'
|
||||
ri.info->'svedFL'->'svedRObr'->>'prOtsRObr' = '1'
|
||||
OR ri.info->'svedFL'->'svedInObr'->>'prOtsInObr' = '1'
|
||||
)
|
||||
) AS has_no_data
|
||||
|
||||
|
|
|
|||
|
|
@ -258,7 +258,8 @@ registered as (
|
|||
),
|
||||
recruit_data AS (
|
||||
SELECT
|
||||
ri.info->'svedSemPolozh'->>'semPolozhNaim' AS sem_pol,
|
||||
ri.recruit_id,
|
||||
ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol,
|
||||
r.gender,
|
||||
CASE
|
||||
WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT'
|
||||
|
|
@ -281,12 +282,12 @@ married_counts AS (
|
|||
rd.recruitment_id,
|
||||
rd.gender,
|
||||
rd.convicts,
|
||||
COUNT(rd.recruitment_id) FILTER (WHERE rd.sem_pol IN ('Вдова/Вдовец', 'В разводе', 'Вдовец', 'Холост')) AS not_married,
|
||||
COUNT(rd.recruitment_id) FILTER (WHERE rd.sem_pol = 'В браке') AS married,
|
||||
COUNT(rd.recruitment_id) FILTER (WHERE rd.sem_pol IS NULL OR rd.sem_pol = 'Отсутствуют сведения о семейном положении') AS other,
|
||||
COUNT(rd.recruitment_id) AS total
|
||||
COUNT(rd.recruit_id) FILTER (WHERE rd.sem_pol IN ('2', '3')) AS not_married, -- в расзводе/вдова/вдовец
|
||||
COUNT(rd.recruit_id) FILTER (WHERE rd.sem_pol = '1') AS married, -- статус в браке
|
||||
COUNT(rd.recruit_id) FILTER (WHERE rd.sem_pol IS NULL) AS other,
|
||||
COUNT(rd.recruit_id) AS total
|
||||
FROM recruit_data rd
|
||||
GROUP BY rd.recruitment_id, rd.gender, rd.convicts
|
||||
GROUP BY rd.recruitment_id, rd.gender, rd.convicts -- изменено 12.03.2025
|
||||
),
|
||||
all_counts AS (
|
||||
-- Считаем значения для ALL, суммируя данные по всем гендерам
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue