diff --git a/v1_apache-hop dash mapping/mil_com/main_dashboard.total_registered(m_c).hpl b/v1_apache-hop dash mapping/mil_com/main_dashboard.total_registered(m_c).hpl index ad2f1b4..3da82c5 100644 --- a/v1_apache-hop dash mapping/mil_com/main_dashboard.total_registered(m_c).hpl +++ b/v1_apache-hop dash mapping/mil_com/main_dashboard.total_registered(m_c).hpl @@ -252,9 +252,9 @@ registered as ( rh.id as recruit_history_id from recruits_history rh join last_status ls on rh.recruit_id=ls. recruit_id and rh.date_time=ls.max_date_time - where rh.status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + where rh.status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') -- критерии от 03.06.2025 --and rh.source is not null - ) , + ), vse AS ( SELECT distinct @@ -268,6 +268,16 @@ vse AS ( r.gender, r.birth_date, r.conscription, + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedPND'->'svedUchetDisp'->'svedUchet') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedPND'->'svedUchetDisp'->'svedUchet') AS uchet_pnd + WHERE uchet_pnd->>'dataSnyatUchet' <= current_date::text + ) + ELSE + false + END AS uchet_pnd, ri.info FROM public.recruits AS r JOIN public.recruits_info AS ri @@ -309,22 +319,25 @@ recruit_data AS ( COUNT(*) FILTER (WHERE gender = 'MALE') AS male_count, COUNT(*) FILTER (WHERE gender = 'FEMALE') AS female_count, COUNT(*) FILTER ( - WHERE (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 70 AND gender = 'MALE') - OR (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 45 AND gender = 'FEMALE') - AND (conscription IS NULL OR conscription = false) + WHERE (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 30 AND 50 AND gender = 'MALE') -- мужчины от 30 до 50 лет + OR (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 30 AND 45 AND gender = 'FEMALE') -- женщины от 30 до 45 лет AND COALESCE(cc.children_under_16, 0) < 5 - ) AS mobilization_criterion, + ) AS mobilization_criterion, -- критерии от 03.06.2025 + COUNT(*) FILTER ( WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 AND gender = 'MALE' - AND (conscription IS NULL OR conscription = false) - ) AS volunteer_criterion, + AND (conscription IS NULL OR conscription = false) -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + COUNT(*) FILTER ( WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 AND gender = 'MALE' - AND (conscription IS NULL OR conscription = false) - AND ri.info->'svedSudim'->>'prOtsSvedSudim' = '1' - ) AS contract_criterion + AND (ri.info->'svedFL'->'svedPND'->>'prOtsSvedPND' = '1' + OR uchet_pnd is false) + AND ri.info->'svedFL'->'svedUchetVICH'->>'prOtsSvedUchetVICH' = '1' -- признак отсутствия сведений о заболевании ВИЧ + --AND ri.info->'svedSudim'->>'prOtsSvedSudim' = '1' + ) AS contract_criterion -- критерии от 03.06.2025 FROM vse AS ri LEFT JOIN children_count AS cc ON ri.recruit_id = cc.recruit_id GROUP BY ri.r_current_recruitment_id, ri.convicts diff --git a/v1_apache-hop dash mapping/mil_com/main_dashboard.waiting_registration(m_c).hpl b/v1_apache-hop dash mapping/mil_com/main_dashboard.waiting_registration(m_c).hpl index e2eb3e5..d27c176 100644 --- a/v1_apache-hop dash mapping/mil_com/main_dashboard.waiting_registration(m_c).hpl +++ b/v1_apache-hop dash mapping/mil_com/main_dashboard.waiting_registration(m_c).hpl @@ -268,6 +268,16 @@ vse AS ( r.gender, r.birth_date, r.conscription, + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedPND'->'svedUchetDisp'->'svedUchet') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedPND'->'svedUchetDisp'->'svedUchet') AS uchet_pnd + WHERE uchet_pnd->>'dataSnyatUchet' <= current_date::text + ) + ELSE + false + END AS uchet_pnd, ri.info FROM public.recruits AS r JOIN public.recruits_info AS ri @@ -309,22 +319,25 @@ recruit_data AS ( COUNT(*) FILTER (WHERE gender = 'MALE') AS male_count, COUNT(*) FILTER (WHERE gender = 'FEMALE') AS female_count, COUNT(*) FILTER ( - WHERE (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 70 AND gender = 'MALE') - OR (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 45 AND gender = 'FEMALE') - AND (conscription IS NULL OR conscription = false) - AND COALESCE(cc.children_under_16, 0) < 5 - ) AS mobilization_criterion, + WHERE (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 30 AND 50 AND gender = 'MALE') -- мужчины от 30 до 50 лет + OR (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 30 AND 45 AND gender = 'FEMALE') -- женщины от 30 до 45 лет + AND COALESCE(cc.children_under_16, 0) < 5 + ) AS mobilization_criterion, -- критерии от 03.06.2025 + COUNT(*) FILTER ( WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 AND gender = 'MALE' - AND (conscription IS NULL OR conscription = false) - ) AS volunteer_criterion, + AND (conscription IS NULL OR conscription = false) -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + COUNT(*) FILTER ( WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 AND gender = 'MALE' - AND (conscription IS NULL OR conscription = false) - AND ri.info->'svedSudim'->>'prOtsSvedSudim' = '1' - ) AS contract_criterion + AND (ri.info->'svedFL'->'svedPND'->>'prOtsSvedPND' = '1' + OR uchet_pnd is false) + AND ri.info->'svedFL'->'svedUchetVICH'->>'prOtsSvedUchetVICH' = '1' -- признак отсутствия сведений о заболевании ВИЧ + --AND ri.info->'svedSudim'->>'prOtsSvedSudim' = '1' + ) AS contract_criterion -- критерии от 03.06.2025 FROM vse AS ri LEFT JOIN children_count AS cc ON ri.recruit_id = cc.recruit_id GROUP BY ri.r_target_recruitment_id diff --git a/v1_apache-hop dash mapping/mil_com/total_registered.age(m_c).hpl b/v1_apache-hop dash mapping/mil_com/total_registered.age(m_c).hpl index b3640fa..d0d776c 100644 --- a/v1_apache-hop dash mapping/mil_com/total_registered.age(m_c).hpl +++ b/v1_apache-hop dash mapping/mil_com/total_registered.age(m_c).hpl @@ -318,9 +318,9 @@ registered as ( --and rh.source is not null ), last_status_n as (select recruit_id, - max(date_time) filter (where status in ('1', '1.1', '12.2', '12.10')) max_date_time + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time from recruits_history - where status in ('1', '1.1', '12.2', '12.10') + where status in ('1', '12.7', '8.2', '8.3') group by recruit_id ), notregistered as ( @@ -329,7 +329,7 @@ notregistered as ( rh.id as recruit_history_id from recruits_history rh join last_status_n ls on rh.recruit_id=ls. recruit_id and rh.date_time=ls.max_date_time - where rh.status in ('1', '1.1', '12.2', '12.10') + where rh.status in ('1', '12.7', '8.2', '8.3') --and rh.source is not null ), recruit_data AS ( @@ -373,6 +373,7 @@ recruit_data AS ( r.id in (SELECT recruit_id FROM notregistered) and rh.id in (SELECT recruit_history_id FROM notregistered) and coalesce(r.target_recruitment_id,rh.target_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) + AND r.current_recruitment_id is null ), total_count AS ( SELECT diff --git a/v1_apache-hop dash mapping/mil_com/total_registered.busyness(m_c).hpl b/v1_apache-hop dash mapping/mil_com/total_registered.busyness(m_c).hpl index a18a69a..de62e24 100644 --- a/v1_apache-hop dash mapping/mil_com/total_registered.busyness(m_c).hpl +++ b/v1_apache-hop dash mapping/mil_com/total_registered.busyness(m_c).hpl @@ -268,9 +268,9 @@ registered as ( --and rh.source is not null ), last_status_n as (select recruit_id, - max(date_time) filter (where status in ('1', '1.1', '12.2', '12.10')) max_date_time + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time from recruits_history - where status in ('1', '1.1', '12.2', '12.10') + where status in ('1', '12.7', '8.2', '8.3') group by recruit_id ), notregistered as ( @@ -279,7 +279,7 @@ notregistered as ( rh.id as recruit_history_id from recruits_history rh join last_status_n ls on rh.recruit_id=ls. recruit_id and rh.date_time=ls.max_date_time - where rh.status in ('1', '1.1', '12.2', '12.10') + where rh.status in ('1', '12.7', '8.2', '8.3') --and rh.source is not null ), status_info AS ( @@ -412,6 +412,7 @@ status_info AS ( AND rh.id in (SELECT recruit_history_id FROM notregistered) --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' AND coalesce(r.target_recruitment_id,rh.target_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) + AND r.current_recruitment_id is null ), summary AS ( SELECT diff --git a/v1_apache-hop dash mapping/ratings/ratings.appear_subpoena.hpl b/v1_apache-hop dash mapping/ratings/ratings.appear_subpoena.hpl index 15b1525..6de0ac2 100644 --- a/v1_apache-hop dash mapping/ratings/ratings.appear_subpoena.hpl +++ b/v1_apache-hop dash mapping/ratings/ratings.appear_subpoena.hpl @@ -80,7 +80,6 @@ = id_region REG_ID - ratings appear_subppoena
@@ -177,9 +176,9 @@ total AS ( ) SELECT '${REG_ID}' AS region_id, - COUNT(*) FILTER (WHERE tt.code IN ('4.1', '4.2', '4')) AS appear_mil_com, + COUNT(*) FILTER (WHERE tt.code IN ('4.1', '4.2')) AS appear_mil_com, ROUND( - COUNT(*) FILTER (WHERE tt.code IN ('4.1', '4.2', '4'))::NUMERIC / NULLIF(COUNT(*), 0) * 100, 2 + COUNT(*) FILTER (WHERE tt.code IN ('4.1', '4.2'))::NUMERIC / NULLIF(COUNT(*), 0) * 100, 2 ) AS appear_mil_com_percent FROM total tt; Y